Packages and Binaries:

raven

This package contains a Python tool that extends the capabilities of the http.server Python module by offering a self-contained file upload web server. While the common practice is to use python3 -m http.server 80 to serve files for remote client downloads, Raven addresses the need for a similar solution when you need the ability to receive files from remote clients. This becomes especially valuable in scenarios such as penetration testing and incident response procedures when protocols such as SMB may not be a viable option.

Installed size: 46 KB
How to install: sudo apt install raven

Dependencies:
  • python3
raven
root@kali:~# raven -h
usage: raven [lhost] [lport] [--allowed-ip <allowed_client_ip>] [--upload-dir <upload_directory>] [--organize-uploads]

A lightweight file upload service used for penetration testing and incident response.

positional arguments:
  lhost                 The IP address for our HTTP handler to listen on
                        (default: listen on all interfaces)
  lport                 The port for our HTTP handler to listen on (default:
                        8080)

options:
  -h, --help            show this help message and exit
  --allowed-ip ALLOWED_IP
                        Restrict access to our HTTP handler by IP address
                        (optional)
  --upload-dir UPLOAD_DIR
                        Designate the directory to save uploaded files to
                        (default: current working directory)
  --organize-uploads    Organize file uploads into subfolders by remote client
                        IP

examples:
  Start the HTTP server on all available network interfaces, listening on port 443
  raven 0.0.0.0 443

  Bind the HTTP server to a specific address (192.168.0.12), listening on port 443, and restrict access to 192.168.0.4
  raven 192.168.0.12 443 --allowed-ip 192.168.0.4

  Bind the HTTP server to a specific address (192.168.0.12), listening on port 443, restrict access to 192.168.0.4, and save uploaded files to /tmp
  raven 192.168.0.12 443 --allowed-ip 192.168.0.4 --upload-dir /tmp

  Bind the HTTP server to a specific address (192.168.0.12), listening on port 443, restrict access to 192.168.0.4, and save uploaded files to /tmp organized by remote client IP
  raven 192.168.0.12 443 --allowed-ip 192.168.0.4 --upload-dir /tmp --organize-uploads

Updated on: 2025-May-20