
"Bob the Smuggler": 一款利用 HTML 走私攻击的工具,允许你创建嵌入 7z/zip 存档的 HTML 文件。该工具会将你的二进制文件(EXE/DLL)压缩为 7z/zip 格式,然后对存档进行 XOR 加密,并将其隐藏在 PNG/GIF 图像文件格式(图像多语种文件)中。

2024年1月15日 - 已添加多文件压缩支持。如果你有多个文件用于最终载荷(例如,DLL侧加载文件或多阶段投递文件),现在可以使用 '-i' 选项指定目录路径。如果提供了目录路径,BobTheSmuggler 将自动归档该目录中的所有文件,对归档文件进行 XOR 加密,并将其嵌入 PNG/GIF 中。
查看我的博客,深入了解如何使用该工具:BobTheSmuggler:用于不可检测载荷投递的隐秘网络瑞士军刀。
"Bob the Smuggler" 是一款利用 HTML 走私攻击并允许你创建包含嵌入式 7z/zip 归档文件的 HTML 文件的工具。该工具会将你的二进制文件(EXE/DLL)压缩成 7z/zip 格式,然后对归档文件进行 XOR 加密,并将其隐藏在 PNG/GIF 图像文件格式中(图像多语言文件)。嵌入在 HTML 中的 JavaScript 将下载 PNG/GIF 文件并存储在缓存中。随后,JavaScript 将提取 PNG/GIF 中嵌入的数据、组装、执行 XOR 解密,然后将其存储为内存中的 blob。

该工具目前支持以下载荷投递链:
在运行该工具之前,你需要满足以下先决条件:
pip install python-magic py7zr pyminizip
注意: 要安装 python-magic,你需要在系统上安装 libmagic 库。请按照以下 URL 安装 libmagic 库:https://pypi.org/project/python-magic/
安装所需库后,你可以使用以下命令继续安装该工具:
git clone https://github.com/TheCyb3rAlpha/BobTheSmuggler.git
cd BobTheSmuggler
安装后,你可以通过执行以下命令来使用该工具:
python3 BobTheSmuggler.py -h

======================================================================
██████╗ ██████╗ ██████╗ ████████╗██╗ ██╗███████╗
██╔══██╗██╔═══██╗██╔══██╗ ╚══██╔══╝██║ ██║██╔════╝
██████╔╝██║ ██║██████╔╝ ██║ ███████║█████╗
██╔══██╗██║ ██║██╔══██╗ ██║ ██╔══██║██╔══╝
██████╔╝╚██████╔╝██████╔╝ ██║ ██║ ██║███████╗
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝
███████╗███╗ ███╗██╗ ██╗ ██████╗ ██████╗ ██╗ ███████╗██████╗
██╔════╝████╗ ████║██║ ██║██╔════╝ ██╔════╝ ██║ ██╔════╝██╔══██╗
███████╗██╔████╔██║██║ ██║██║ ███╗██║ ███╗██║ █████╗ ██████╔╝
╚════██║██║╚██╔╝██║██║ ██║██║ ██║██║ ██║██║ ██╔══╝ ██╔══██╗
███████║██║ ╚═╝ ██║╚██████╔╝╚██████╔╝╚██████╔╝███████╗███████╗██║ ██║
╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝
======================================================================
用法: 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]
将 EXE/DLL 文件隐藏到 HTML/SVG 文件中。
可选参数:
-h, --help 显示此帮助信息并退出
-i EXE_FILE EXE/DLL 文件的路径。
-p PASSWORD 压缩密码。
-f OUTPUT_HTML HTML 走私文件 (.html)
-o OUTPUT_FILENAME 下载文件名(你的载荷在此文件中。)
-t {html,svg,png,gif} 嵌入模板的类型。
-c {7z,zip} 压缩格式:7z 或 zip(默认:zip)
-u PNG_URL 嵌入的 PNG 图像的 URL。
-png PNG_FILE 用于嵌入 EXE/DLL 的 PNG 文件路径。
-gif GIF_FILE 用于嵌入 EXE/DLL 的 GIF 文件路径。
-e CUSTOM_FILE 要克隆作为模板的 HTML 文件。
-v, --verbose 启用详细日志。
如果要将 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 <存储在 HTML 中的输出 7z/zip 文件名> -t png test.png

注意: 确保将 PNG/GIF 文件托管在 CDN 上。(建议:使用 -u 选项提供托管 PNG/GIF 文件的 CDN URL)。为了测试目的,你可以使用 flask 应用(app.py),该应用将在 localhost:8000 上托管 banner.gif 和 banner.png。
类似地,你可以使用以下命令创建一个带有嵌入 GIF 文件中的隐藏载荷的 HTML 文件:
python3 BobTheSmuggler.py -i <输入文件路径> -p <加密密码> -f <输出 HTML 文件名> -o <存储在 HTML 中的输出 7z/zip 文件名> -t gif test.gif

生成最终图像(PNG/GIF)后,图像的大小将会增加,因为它将包含你的嵌入文件。

一种采用不同方法的简单链。你的 EXE/DLL 被压缩为 .7z/.zip 文件,然后存储在 PNG/GIF 文件中。PNG/GIF 被嵌入 HTML 中的 SVG 文件内的 JS 调用。一旦 JS 被调用,它会下载 PNG/ZIP 文件,从图像块中提取 XOR 加密的压缩数据,解密文件并调用下载功能。
python3 BobTheSmuggler.py -i <输入文件路径> -p <加密密码> -f <输出 HTML 文件名> -o <存储在 HTML 中的输出 7z/zip 文件名> -t svg -e <自定义 SVG 模板>
该项目已添加以下模板:

此工具仅供教育目的。建议用户仅以促进学习和理解的方式使用。该工具的作者明确否认在其教育环境之外使用的任何责任。选择将此工具用于教育以外的目的的用户需自行承担风险和责任,作者不对因这种使用而产生的任何后果负责。