
"Bob the Smuggler": Ein Tool, das den HTML Smuggling Attack nutzt und es Ihnen ermöglicht, HTML-Dateien mit eingebetteten 7z/zip-Archiven zu erstellen. Das Tool komprimiert Ihre Binärdatei (EXE/DLL) in das 7z/zip-Dateiformat, verschlüsselt das Archiv dann mit XOR und versteckt es innerhalb des PNG/GIF-Bilddateiformats (Image Polyglots).

15. Januar 2024 – Unterstützung für Multi-Datei-Kompression hinzugefügt. Wenn Sie mehrere Dateien für Ihre endgültige Payload generiert haben (z. B. DLL-Sideloading-Dateien oder Dateien für mehrstufige Zustellung), können Sie jetzt die Option '-i' verwenden, um den Verzeichnispfad anzugeben. Wenn ein Verzeichnispfad angegeben wird, archiviert BobTheSmuggler automatisch alle Dateien in diesem Verzeichnis, verschlüsselt das Archiv per XOR und bettet es in PNG/GIF ein.
Schauen Sie sich meinen Blog an, um ein gründliches Verständnis der Nutzung dieses Tools zu erhalten: BobTheSmuggler: Your Covert Cyber Swiss Knife for Undetectable Payload Delivery.
„Bob the Smuggler“ ist ein Tool, das den HTML-Smuggling-Angriff nutzt und Ihnen ermöglicht, HTML-Dateien mit eingebetteten 7z/zip-Archiven zu erstellen. Das Tool komprimiert Ihre Binärdatei (EXE/DLL) in das 7z/zip-Dateiformat, verschlüsselt das Archiv dann per XOR und versteckt es im PNG/GIF-Bilddateiformat (Image Polyglots). Das in das HTML eingebettete JavaScript lädt die PNG/GIF-Datei herunter und speichert sie im Cache. Anschließend extrahiert das JavaScript die in der PNG/GIF eingebetteten Daten, setzt sie zusammen, führt XOR-Entschlüsselung durch und speichert sie als In-Memory-Blob.

Dieses Tool unterstützt derzeit die folgenden Payload-Zustellungsketten:
Bevor Sie das Tool ausführen, benötigen Sie die folgenden Voraussetzungen:
pip install python-magic py7zr pyminizip
Hinweis: Um python-magic zu installieren, müssen Sie die libmagic-Bibliothek auf Ihrem System installieren. Folgen Sie dieser URL, um die libmagic-Bibliothek zu installieren: https://pypi.org/project/python-magic/
Sobald die erforderlichen Bibliotheken installiert sind, können Sie mit der Installation des Tools fortfahren, indem Sie die folgenden Befehle verwenden:
git clone https://github.com/TheCyb3rAlpha/BobTheSmuggler.git
cd BobTheSmuggler
Nach der Installation können Sie das Tool mit dem folgenden Befehl verwenden:
python3 BobTheSmuggler.py -h

======================================================================
██████╗ ██████╗ ██████╗ ████████╗██╗ ██╗███████╗
██╔══██╗██╔═══██╗██╔══██╗ ╚══██╔══╝██║ ██║██╔════╝
██████╔╝██║ ██║██████╔╝ ██║ ███████║█████╗
██╔══██╗██║ ██║██╔══██╗ ██║ ██╔══██║██╔══╝
██████╔╝╚██████╔╝██████╔╝ ██║ ██║ ██║███████╗
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝
███████╗███╗ ███╗██╗ ██╗ ██████╗ ██████╗ ██╗ ███████╗██████╗
██╔════╝████╗ ████║██║ ██║██╔════╝ ██╔════╝ ██║ ██╔════╝██╔══██╗
███████╗██╔████╔██║██║ ██║██║ ███╗██║ ███╗██║ █████╗ ██████╔╝
╚════██║██║╚██╔╝██║██║ ██║██║ ██║██║ ██║██║ ██╔══╝ ██╔══██╗
███████║██║ ╚═╝ ██║╚██████╔╝╚██████╔╝╚██████╔╝███████╗███████╗██║ ██║
╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝
======================================================================
Verwendung: BobTheSmuggler.py [-h] -i EXE_DATEI [-p PASSWORT] -f AUSGABE_HTML -o AUSGABE_DATEINAME -t {html,svg,png,gif} [-c {7z,zip}] [-u PNG_URL] [-png PNG_DATEI] [-gif GIF_DATEI] [-e BENUTZERDEFINIERTE_DATEI] [-v]
Versteckt eine EXE/DLL-Datei in einer HTML/SVG-Datei.
optionale Argumente:
-h, --help Zeigt diese Hilfemeldung an und beendet das Programm.
-i EXE_DATEI Pfad zur EXE/DLL-Datei.
-p PASSWORT Passwort für die Komprimierung.
-f AUSGABE_HTML HTML-Smuggled-Datei (.html)
-o AUSGABE_DATEINAME Name der heruntergeladenen Datei (Ihre Payload ist in dieser Datei.)
-t {html,svg,png,gif} Typ der eingebetteten Vorlage.
-c {7z,zip} Komprimierungsformat: 7z oder zip (Standard: zip)
-u PNG_URL URL für das eingebettete PNG-Bild.
-png PNG_DATEI Pfad zur PNG-Datei zum Einbetten der EXE/DLL.
-gif GIF_DATEI Pfad zur GIF-Datei zum Einbetten der EXE/DLL.
-e BENUTZERDEFINIERTE_DATEI HTML-Datei, die als Vorlage geklont werden soll.
-v, --verbose Aktiviert ausführliche Protokollierung.
Wenn Sie SharpHound.exe in das 7z-Format komprimieren (passwortgeschützt) und in einer HTML-Datei speichern möchten, können Sie den folgenden Befehl verwenden:
python3 BobTheSmuggler.py -i path/to/SharpHound.exe -p 123456 -c 7z -f SharpHound.html -o SharpHound.7z -t html

Um eine HTML-Datei zu erstellen, bei der die eingebettete Payload in einer PNG-Datei versteckt ist, können Sie den folgenden Befehl verwenden:
python3 BobTheSmuggler.py -i <Eingabe_dateipfad> -p <Passwort_zum_Verschlüsseln> -f <Ausgabe_HTML_Dateiname> -o <Ausgabe_7z/zip_Dateiname_gespeichert_in_HTML> -t png test.png

HINWEIS: Stellen Sie sicher, dass Sie die PNG/GIF-Dateien auf einem CDN hosten. (Empfohlen: Sie sollten die Option -u verwenden, um die CDN-URL anzugeben, unter der Sie die PNG/GIF-Datei hosten werden). Zu Testzwecken können Sie die Flask-App (app.py) verwenden, die banner.gif und banner.png auf localhost:8000 bereitstellt.
Auf ähnliche Weise können Sie den folgenden Befehl verwenden, um eine HTML-Datei mit der eingebetteten Payload zu erstellen, die in einer GIF-Datei versteckt ist:
python3 BobTheSmuggler.py -i <Eingabe_dateipfad> -p <Passwort_zum_Verschlüsseln> -f <Ausgabe_HTML_Dateiname> -o <Ausgabe_7z/zip_Dateiname_gespeichert_in_HTML> -t gif test.gif

Sobald das endgültige Bild (PNG/GIF) erstellt ist, wird die Größe des Bildes zunehmen, da es Ihre eingebettete Datei enthält.

Eine einfache Kette mit einem anderen Ansatz. Ihre EXE/DLL wird in eine .7z/.zip-Datei komprimiert und dann in einer PNG/GIF-Datei gespeichert. Die PNG/GIF wird vom JS in der SVG-Datei aufgerufen, die in HTML eingebettet ist. Sobald das JS aufgerufen wird, lädt es die PNG/ZIP-Datei herunter, extrahiert die XOR-verschlüsselten komprimierten Daten aus den Bild-Chunks, entschlüsselt die Datei und ruft die Download-Funktionalität auf.
python3 BobTheSmuggler.py -i <Eingabe_dateipfad> -p <Passwort_zum_Verschlüsseln> -f <Ausgabe_HTML_Dateiname> -o <Ausgabe_7z/zip_Dateiname_gespeichert_in_HTML> -t svg -e <Benutzerdefinierte_SVG_Vorlage>
Folgende Vorlagen wurden zu diesem Projekt hinzugefügt:

Dieses Tool ist ausschließlich für Bildungszwecke bestimmt. Benutzern wird empfohlen, es nur in einer Weise zu verwenden, die das Lernen und Verständnis fördert. Der Autor dieses Tools lehnt ausdrücklich jede Haftung für die Verwendung außerhalb von Bildungskontexten ab. Benutzer, die sich dafür entscheiden, dieses Tool für andere als Bildungszwecke zu verwenden, tun dies auf eigenes Risiko und in eigener Verantwortung, und der Autor kann nicht für etwaige Konsequenzen aus einer solchen Nutzung haftbar gemacht werden.