BenjiTrapp/boxed-remnux
GitHub: BenjiTrapp/boxed-remnux
基于 Docker 和 noVNC 将 REMnux 恶意软件分析工具包容器化,让用户通过浏览器即可使用完整的图形化分析桌面环境。
Stars: 2 | Forks: 0
Boxed REMnux in your Browser
在你的浏览器中使用 REMnux 恶意软件分析工具包 —— 一个通过 noVNC 访问的 Docker 化 XFCE 桌面。
基于官方 [`remnux/remnux-distro:noble`](https://hub.docker.com/r/remnux/remnux-distro) 镜像构建,并在其上叠加了 XFCE4、TigerVNC 和 noVNC。
## 前置条件
- [Docker](https://docs.docker.com/get-docker/)
- 一个浏览器
- 约 15 GB 的磁盘空间用于存放镜像
- 至少分配 4 GB 内存给 Docker
## 快速开始
```
git clone
boxed-remnux
cd boxed-remnux
# 构建 image
make build
# 启动 container
make start
# 在 browser 中打开
make browser
```
或者手动执行:
```
docker build -t boxed-remnux .
docker run --rm -d -p 9020:8080 -p 5901:5900 --name boxed-remnux boxed-remnux
```
然后打开 **http://localhost:9020/vnc.html** 并使用密码 `remnux` 连接。
## 命令
| 命令 | 描述 |
|---------|-------------|
| `make build` | 构建 Docker 镜像 |
| `make start` | 在后台启动容器 |
| `make stop` | 停止并移除容器 |
| `make browser` | 在默认浏览器中打开 noVNC |
| `make logs` | 查看容器日志 |
| `make shell` | 在正在运行的容器中打开一个 bash shell |
| `make clean` | 移除 Docker 镜像 |
## 配置
在构建时设置这些环境变量,或在运行时覆盖:
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `VNCPWD` | `remnux` | VNC 身份验证密码 |
| `VNCDISPLAY` | `1920x1080` | 桌面分辨率 |
| `VNCDEPTH` | `16` | 颜色深度(16 或 24) |
| `VNCPORT` | `5900` | VNC 服务器端口(容器) |
| `NOVNCPORT` | `8080` | noVNC 代理端口(容器) |
| `VNCEXPOSE` | `1` | 设置为 `0` 则仅限 localhost 访问 VNC |
在运行时覆盖:
```
docker run --rm -d \
-p 9020:8080 -p 5901:5900 \
-e VNCPWD=mysecret \
-e VNCDISPLAY=2560x1440 \
-e VNCDEPTH=24 \
--name boxed-remnux boxed-remnux
```
## 共享文件
将本地目录挂载到容器中:
```
docker run --rm -d \
-p 9020:8080 -p 5901:5900 \
-v /path/to/your/files:/home/remnux/files \
--name boxed-remnux boxed-remnux
```
## 更改端口
如果默认端口冲突,请以不同方式映射它们:
```
docker run --rm -d -p 9022:8080 -p 5902:5900 --name boxed-remnux boxed-remnux
# 通过 http://localhost:9022/vnc.html 访问
```
## 包含内容
来自 [REMnux 发行版](https://remnux.org/) 的所有工具,以及下面列出的附加工具。
### REMnux 基础工具
这些随官方 REMnux 发行版镜像附带:
| 工具 | 描述 |
|------|-------------|
| [Ghidra](https://ghidra-sre.org/) | NSA 的软件逆向工程框架,支持反编译器 |
| [radare2](https://rada.re/n/) | 开源逆向工程框架和命令行工具集 |
| [Rizin](https://rizin.re/) | radare2 的分支,专注于逆向工程的易用性 |
| [Wireshark](https://www.wireshark.org/) / tshark | 用于深度数据包检测的 GUI 和 CLI 网络协议分析器 |
| [Volatility](https://www.volatilityfoundation.org/) | 用于事件响应的高级内存取证框架 |
| [YARA](https://virustotal.github.io/yara/) | 供恶意软件研究人员对样本进行分类的模式匹配工具 |
| [olevba / oledump](https://github.com/decalage2/oletools) | 分析 Microsoft Office 文档中的 VBA 宏和 OLE 对象 |
| [ClamAV](https://www.clamav.net/) | 用于检测恶意软件特征码的开源防病毒引擎 |
| [pdfid / pdf-parser](https://blog.didierstevens.com/programs/pdf-tools/) | 对 PDF 文件进行分类筛选和解析,以查找可疑元素 |
| [PEframe](https://github.com/guelfoweb/peframe) | 针对 PE(Portable Executable)恶意软件的静态分析工具 |
| [Cutter](https://cutter.re/) | rizin 的 GUI —— 带反编译器的可视化逆向工程 |
| [Autopsy](https://www.autopsy.com/) | 用于磁盘镜像分析的数字取证平台 |
| [Exiftool](https://exiftool.org/) | 读取、写入和编辑文件和图像中的元数据 |
### 新增:静态分析
| 工具 | 描述 |
|------|-------------|
| [binwalk](https://github.com/ReFirmLabs/binwalk) | 固件分析工具,用于扫描、提取和逆向工程二进制镜像 |
| [foremost](https://foremost.sourceforge.net/) | 根据文件头、文件尾和数据结构恢复文件的文件雕刻工具 |
| [hexedit](https://github.com/pixel/hexedit) | 用于查看和编辑二进制文件的基于终端的十六进制编辑器 |
| [Bless](https://github.com/afrantzis/bless) | 功能齐全的 GUI 十六进制编辑器,支持多标签页 |
| [flasm](http://flasm.sourceforge.net/) | 用于 Flash ActionScript 字节码的反汇编器和汇编器 |
| [NASM](https://www.nasm.us/) | Netwide Assembler —— 用于编写 shellcode 的可移植 x86/x64 汇编器 |
| [pefile](https://github.com/erocarrera/pefile) | 用于读取和处理 PE(Portable Executable)文件的 Python 模块 |
| [Capstone](https://www.capstone-engine.org/) | 轻量级多架构反汇编框架 |
| [Unicorn](https://www.unicorn-engine.org/) | 用于跨架构模拟机器代码的 CPU 模拟器框架 |
| [Keystone](https://www.keystone-engine.org/) | 多架构汇编器框架(Capstone 的配套工具) |
| [Ropper](https://github.com/sashs/Ropper) | 用于漏洞利用开发的 ROP gadget 查找器和二进制分析工具 |
| [angr](https://angr.io/) | 具有符号执行和 CFG 恢复功能的二进制分析平台 |
| [dnfile](https://github.com/malwarefrank/dnfile) | .NET PE 文件解析器 —— 分析托管程序集 |
| [pyelftools](https://github.com/eliben/pyelftools) | 用于解析和分析 ELF 二进制文件的 Python 库 |
| [oletools](https://github.com/decalage2/oletools) | 用于分析 Microsoft OLE2 文件(Office 文档、VBA 宏)的工具包 |
### 新增:动态分析与沙箱
| 工具 | 描述 |
|------|-------------|
| [strace](https://strace.io/) | 跟踪进程发出的系统调用和信号 |
| [ltrace](https://www.ltrace.org/) | 跟踪进程在运行时发出的库调用 |
| [GDB](https://www.sourceware.org/gdb/) | GNU Debugger —— 在源码或汇编级别调试程序 |
| [Frida](https://frida.re/) | 用于 hook 运行进程中函数的动态插桩工具包 |
| [Speakeasy](https://github.com/mandiant/speakeasy) | 用于恶意软件分析的 Windows 内核和用户模式模拟器(由 Mandiant 提供) |
| [Malduck](https://github.com/CERT-Polska/malduck) | 用于配置文件提取和解包的恶意软件分析辅助库 |
### 新增:网络分析与监控
| 工具 | 描述 |
|------|-------------|
| [Sniffnet](https://sniffnet.net/) | 跨平台 GUI 网络监控器,带有实时图表、地理位置、协议识别和自定义通知功能。使用 Rust 编写。([GitHub](https://github.com/GyulyVGC/sniffnet)) |
| [Snitch](https://github.com/karol-broda/snitch) | 更美观的 `ss`/`netstat` 替代品 —— 具有交互式 TUI 和样式化表格,用于检查网络连接。使用 Go 编写。 |
| [ngrep](https://github.com/jpr5/ngrep) | 网络 grep —— 实时匹配数据包 payload 中的 regex 模式 |
| [tcpflow](https://github.com/simsong/tcpflow) | 捕获并重组 TCP 流以进行内容分析 |
| [dnsutils](https://www.isc.org/bind/) | 用于域名调查的 DNS 查询工具(`dig`、`nslookup`、`host`) |
| [mitmproxy](https://mitmproxy.org/) | 用于拦截、检查和修改流量的交互式 HTTPS 代理 |
| [proxychains4](https://github.com/haad/proxychains) | 透明地将任何 TCP 连接通过 SOCKS/HTTP 代理进行路由 |
| [netcat](https://nmap.org/ncat/) | 用于读取、写入和隧道传输网络数据的 TCP/UDP 瑞士军刀 |
| [socat](http://www.dest-unreach.org/socat/) | 用于在两个通道之间进行双向数据传输的多用途中继工具 |
### 新增:OSINT 与威胁情报
| 工具 | 描述 |
|------|-------------|
| [ioc-finder](https://github.com/fhightower/ioc-finder) | 从文本中提取危害指标(IP、域名、哈希、URL) |
| [vt-py](https://github.com/VirusTotal/vt-py) | 官方的 VirusTotal Python 客户端,用于查询文件/URL/域名信誉 |
| [STIX2](https://github.com/oasis-open/cti-python-stix2) | 创建和解析 STIX 2.x 威胁情报对象 |
| [taxii2-client](https://github.com/oasis-open/cti-taxii-client) | 用于使用 TAXII 2.x 威胁情报源的客户端库 |
| [whois](https://github.com/rfc1036/whois) | 查询 WHOIS 数据库以获取域名和 IP 注册详情 |
### 新增:生产力与脚本
| 工具 | 描述 |
|------|-------------|
| [tmux](https://github.com/tmux/tmux) | 终端复用器 —— 支持分屏和持久会话 |
| [vim](https://www.vim.org/) | 高度可配置的文本编辑器 |
| [jq](https://jqlang.github.io/jq/) | 用于解析和转换数据的命令行 JSON 处理器 |
| [CyberChef CLI](https://github.com/gchq/CyberChef) | GCHQ 数据转换工具包的命令行界面 |
| [SQLite3](https://www.sqlite.org/) | 轻量级 SQL 数据库引擎 —— 适用于查询恶意软件数据库 |
| [p7zip](https://github.com/p7zip-project/p7zip) | 支持多种格式(7z、RAR、ZIP、CAB 等)的 7-Zip 归档工具 |
| [curl](https://curl.se/) / [wget](https://www.gnu.org/software/wget/) | 命令行 HTTP 客户端,用于下载样本和与 API 交互 |
| [git](https://git-scm.com/) | 版本控制 —— 克隆 YARA 规则仓库、工具源码等 |
## 架构说明
基础的 REMnux 镜像为 `linux/amd64`。在 Apple Silicon(M 系列)Mac 上,Docker 将通过模拟(Rosetta)运行它。预期性能会稍慢。
## 致谢
- [REMnux](https://remnux.org/),由 Lenny Zeltser 及其贡献者开发
- 灵感来源于 BenjiTrapp 的 [boxed-kali](https://github.com/BenjiTrapp/boxed-kali)标签:DAST, Docker, NIDS, VNC, 安全防御评估, 容器化, 恶意软件分析, 网络信息收集, 请求拦截, 远程桌面, 逆向工具