TheCyb3rAlpha/BobTheSmuggler
GitHub: TheCyb3rAlpha/BobTheSmuggler
一款将二进制文件加密隐藏于图像并封装进 HTML 的隐蔽投递工具,用于绕过网络层安全检测。
Stars: 579 | Forks: 68


[](https://twitter.com/TheCyb3rAlpha)
[](https://github.com/TheCyb3rAlpha/BobTheSmuggler)

# BobTheSmuggler

## 快速更新
_2024年1月15日 - **已增加对多文件压缩的支持**。如果你有多个为最终 payload 生成的文件(例如 DLL-Sideloading 文件或多阶段投递文件),你现在可以使用 '-i' 选项来指定目录路径。如果提供了目录路径,BobTheSmuggler 将自动将该目录中的所有文件打包归档,进行 XOR 加密,并将其嵌入到 PNG/GIF 中。_
## 项目简介
请查看我的博客以深入了解如何使用此工具:[BobTheSmuggler: Your Covert Cyber Swiss Knife for Undetectable Payload Delivery](https://medium.com/@TheCyb3rAlpha/bobthesmuggler-your-covert-cyber-swiss-knife-for-undetectable-payload-delivery-bc84f3037522)。
**"Bob the Smuggler"** 是一个利用 HTML Smuggling Attack 的工具,允许你创建嵌入了 7z/zip 归档的 HTML 文件。该工具会将你的二进制文件(EXE/DLL)压缩成 7z/zip 格式,然后对归档进行 XOR 加密,并将其隐藏在 PNG/GIF 图像文件格式中(Image Polyglots)。HTML 中嵌入的 JavaScript 会下载 PNG/GIF 文件并将其存储在缓存中。随后,JavaScript 会提取嵌入在 PNG/GIF 中的数据,对其进行组装,执行 XOR 解密,然后将其存储为内存中的 blob。

该工具目前支持以下 payload 投递链:
- .EXE/.DLL --> .7z/.Zip (密码保护) --> .JS --> .HTML
- .EXE/.DLL --> .7z/.Zip (密码保护) --> .JS --> .SVG --> .HTML
- .EXE/.DLL --> .7z/.Zip (密码保护) --> .PNG/.GIF --> .JS --> .HTML
- .EXE/.DLL --> .7z/.Zip (密码保护) --> .PNG/.GIF --> JS --> .SVG --> .HTML
## 主要特性
- **隐蔽的文件隐藏:** 将任何文件类型(EXE/DLL)安全地嵌入到 HTML 页面、PNG、GIF 和 SVG 文件中,确保数据在眼皮底下隐藏。
- **多样化的嵌入方式:** 提供将文件嵌入不同格式的灵活性,以满足各种需求和场景。
- **高级混淆:** 利用复杂的技术对嵌入的数据进行混淆,进一步增强安全性并降低被检测的风险。
- **自定义模板支持:** 允许使用自定义 HTML 和 SVG 模板进行嵌入,提供个性化和特定情境的隐藏方案。
- **直观的界面:** 具有易于使用的命令行界面,技术用户和非技术用户均可轻松上手。
- **可视化验证:** 包含 PNG 文件的可视化工具,为用户提供一种确认数据成功嵌入的方法。
## 前置条件
在运行该工具之前,你需要满足以下前置条件:
```
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
```

```
======================================================================
██████╗ ██████╗ ██████╗ ████████╗██╗ ██╗███████╗
██╔══██╗██╔═══██╗██╔══██╗ ╚══██╔══╝██║ ██║██╔════╝
██████╔╝██║ ██║██████╔╝ ██║ ███████║█████╗
██╔══██╗██║ ██║██╔══██╗ ██║ ██╔══██║██╔══╝
██████╔╝╚██████╔╝██████╔╝ ██║ ██║ ██║███████╗
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝
███████╗███╗ ███╗██╗ ██╗ ██████╗ ██████╗ ██╗ ███████╗██████╗
██╔════╝████╗ ████║██║ ██║██╔════╝ ██╔════╝ ██║ ██╔════╝██╔══██╗
███████╗██╔████╔██║██║ ██║██║ ███╗██║ ███╗██║ █████╗ ██████╔╝
╚════██║██║╚██╔╝██║██║ ██║██║ ██║██║ ██║██║ ██╔══╝ ██╔══██╗
███████║██║ ╚═╝ ██║╚██████╔╝╚██████╔╝╚██████╔╝███████╗███████╗██║ ██║
╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝
======================================================================
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
```

### 将 payload 嵌入 PNG 文件中:
要创建一个嵌入了隐藏在 PNG 文件中的 payload 的 HTML 文件,你可以使用以下命令:
```
python3 BobTheSmuggler.py -i 标签:DNS 反向解析, ESC8, HTML走私, PE文件, XOR加密, 二进制文件, 初始访问, 命令执行, 图片藏毒, 多模态安全, 多语言文件, 安全测试, 攻击性安全, 数据可视化, 数据隐藏, 社会工程学, 私有化部署, 绕过检测, 网络信息收集, 载荷投递, 逆向工具, 防御规避, 隐写术