Raven
Raven is a Python tool that extends the http.server module to provide a self-contained file upload web server. It enables receiving files from remote clients, useful when protocols like SMB are not viable.
Description
Raven addresses the need for a lightweight file upload service in penetration testing and incident response scenarios. While python3 -m http.server is commonly used for serving files for remote downloads, Raven provides the complementary functionality for receiving uploads from remote clients.
This becomes especially valuable when alternative protocols such as SMB are not available or practical. The tool offers a simple HTTP handler that can be configured to listen on specific interfaces and ports, with options for access control and file organization.
Raven is designed for quick deployment in operational contexts where file transfer capabilities are required without complex setup.
How It Works
Raven operates as an HTTP server extending Python's http.server module, specifically handling file uploads via HTTP POST requests. It listens on a specified IP (lhost) and port (lport), accepts uploads to a designated directory, and supports IP restrictions and client-based organization into subfolders. Files are saved to the upload directory or current working directory by default.
Installation
sudo apt install ravenFlags
Examples
raven 0.0.0.0 443raven 192.168.0.12 443 --allowed-ip 192.168.0.4raven 192.168.0.12 443 --allowed-ip 192.168.0.4 --upload-dir /tmpraven 192.168.0.12 443 --allowed-ip 192.168.0.4 --upload-dir /tmp --organize-uploadsravenraven 0.0.0.0 8080