Skip to main content

PFTP - Pentest File Transfer Protocols - CLI Tool

Project description

PFTP - Pentest File Transfer Protocols

A lightweight, multi-protocol file transfer CLI tool for penetration testers, ethical hackers, and CTF players. PFTP manages a dockerized server that runs HTTP, FTP, and SMB simultaneously, making it easy to transfer tools and exfiltrate data during security assessments.

Docker Image: ahmadalawneh3/pftp
GitHub: github.com/AhmadAlawneh3/PFTP

Table of Contents

Features

  • Multi-Protocol Support: HTTP, FTP, and SMB running simultaneously
  • Interactive Setup: Wizard-based installation and configuration
  • Web UI: Download command generation for PowerShell, wget, curl, bitsadmin, and base64
  • File Upload/Exfiltration: Built-in support for receiving files
  • Optional Authentication: Secure access across all protocols
  • Auto Network Detection: Prioritizes VPN/tun interfaces
  • Live Activity Logs: Real-time monitoring via SSE
  • Docker-Powered: Isolated, reproducible environment with configurable restart policies

Installation

Recommended (with pipx):

pipx install pftp

With pip:

pip install pftp

Requirements:

  • Python 3.8+
  • Docker

Usage

Initial Setup

Install and configure PFTP with the interactive wizard:

pftp install

The wizard will guide you through:

  • Directory configuration
  • Protocol selection (HTTP, FTP, SMB)
  • Authentication settings
  • Docker restart policy

Starting the Server

pftp start

Output:

✓ Server started

Server URLs:
  • HTTP:  http://192.168.1.100:1234
  • FTP:   ftp://192.168.1.100:21

Adding Tools

Add single files:

pftp add-tool /path/to/linpeas.sh

Add directories with categorization:

pftp add-tool /path/to/windows-tools/ --recursive --category windows
pftp add-tool /path/to/linux-tools/ --recursive --category linux

Checking Status

pftp status

Shows running status, enabled protocols, URLs, and configuration.

Managing the Server

# Stop the server
pftp stop

# Restart the server
pftp restart

# View live logs
pftp logs

# Reconfigure settings
pftp configure

Commands

Command Description
pftp install Install and configure PFTP (interactive wizard)
pftp start Start the server
pftp stop Stop the server
pftp restart Restart the server
pftp status Show server status and configuration
pftp configure Reconfigure settings (interactive or via flags)
pftp add-tool <path> Add files/directories to tools
pftp logs View server logs (live by default)
pftp update Update to latest version
pftp remove Uninstall PFTP
pftp version Show version information
pftp --help Show help for any command

Common Options

Configuration flags (for non-interactive setup):

pftp install --yes --http-port 8080 --enable-ftp --auth --auth-username admin
pftp configure --disable-smb --http-port 9000

Add-tool options:

pftp add-tool <file> [--category <name>] [--recursive]

Logs options:

pftp logs [--follow] [--lines <n>]

Requirements

  • Python: 3.8 or higher
  • Docker: Running Docker daemon
  • Operating System: Linux, macOS, or Windows with WSL2

License

MIT License - See LICENSE for details


Author: Ahmad Alawneh
Repository: github.com/AhmadAlawneh3/PFTP

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pftp-2.0.4.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pftp-2.0.4-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file pftp-2.0.4.tar.gz.

File metadata

  • Download URL: pftp-2.0.4.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for pftp-2.0.4.tar.gz
Algorithm Hash digest
SHA256 65dd2f714bf0be579d4645a4847b0c5b80337c9d703840fd9549a6fd5982a201
MD5 9f54275505ec9e856808447074d6cbea
BLAKE2b-256 7f742d4b9a06aa38aa12168ad6e45f164c5bc94e51f7477fd150c3eafdae0324

See more details on using hashes here.

File details

Details for the file pftp-2.0.4-py3-none-any.whl.

File metadata

  • Download URL: pftp-2.0.4-py3-none-any.whl
  • Upload date:
  • Size: 15.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for pftp-2.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1c1b58119190a56139bb1ec6961d6c5851050c4a62df518499a634b1451d1fba
MD5 ac653553ab24eb9d2062c6132e001b66
BLAKE2b-256 616482f62c7a6d217c59e0c3cb84c26121378e8633c5afebe43a82b258da66da

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page