A simple cross-platform GUI tool built with Python and pywebview to quickly serve a single file over HTTP. Designed with penetration testing and local network file transfers in mind.
HTTPipe provides a straightforward graphical interface to select a file and instantly start an HTTP server on a chosen IP address and port, making that specific file available for download. It automatically generates common download commands (curl, wget, Python, PowerShell) for the target machine. Additionally, it includes handy utilities for penetration testers, such as base64 encoding/decoding commands and file chunking capabilities.
- Single File Server: Serves only the selected file for security and simplicity.
- IP/Port Selection: Automatically detects local IP addresses and allows custom IP/port input.
- Download Command Generation: Creates ready-to-use
curl
,wget
,python
, andpowershell
download commands for the target machine. - Shell Prep Commands: Provides quick copy commands for upgrading limited shells (e.g., Python pty, script).
- File to Base64: Encodes the selected file to Base64 and generates corresponding decode commands (
base64
,certutil
). - File Chunker: Splits large files into smaller chunks and provides reassembly commands (
cat
,copy /b
). - Cross-Platform GUI: Built with
pywebview
for compatibility with Windows, macOS, and Linux. - Clean Interface: Simple and intuitive UI with status indicators and notifications.
-
Prerequisites:
- Python 3.6+
pip
(Python package installer)- OS Dependencies:
pywebview
relies on native web rendering engines.- Linux: Requires
python3-gi
,python3-gi-cairo
,gir1.2-gtk-3.0
,gir1.2-webkit2-4.0
. You might also need QT5 libraries (libqt5webkit5
,libqt5gui5
, etc.) depending on your system setup and the chosenpywebview
backend (qt
is specified inrequirements.txt
). Install using your package manager (e.g.,sudo apt update && sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 gir1.2-webkit2-4.0 libqt5webkit5
). - macOS: No specific OS dependencies usually required.
- Windows: No specific OS dependencies usually required.
- Linux: Requires
-
Clone the Repository:
git clone https://github.com/reschjonas/HTTPipe cd HTTPipe
-
Install Dependencies:
pip install -r requirements.txt
(Consider using a virtual environment:
python3 -m venv venv
,source venv/bin/activate
orvenv\Scripts\activate
, thenpip install ...
)
- Run the application:
python3 main.py
- Click "Select File" to choose the file you want to share.
- Verify or select the desired IP address and Port.
- Click "Start Server".
- The "Target Machine Commands" section will populate with download commands. Copy the appropriate command for the target machine.
- Use the "Pentest Utilities" section for Base64 encoding or file splitting if needed.
- Click "Stop Server" when finished.
- Python 3
- pywebview (with QT backend)
- HTML5
- CSS3
- JavaScript
Contributions are welcome! Please feel free to submit pull requests or open issues.
This project is licensed under the MIT License - see the LICENSE file for details.