ebx32/higgsc2
GitHub: ebx32/higgsc2
一个基于 Rust beacon 和 Python Flask 服务端的概念验证级 C2 框架,提供 Web 界面来管理 beacon、下发命令并追踪执行结果。
Stars: 0 | Forks: 0
# Higgs C2 文档

## 设置环境
1. 安装系统依赖
对于 Fedora 44:
```
sudo dnf install python3 python3-pip python3-venv rust cargo mingw64-gcc mingw64-binutils -y
```
2. 添加 rust Windows 交叉编译目标
在你的 `Cargo.toml` 所在目录(默认:`/beacon-rs`)运行此命令。
```
rustup target add x86_64-pc-windows-gnu
```
3. 在 `config.toml` 中添加 linker
```
[target.x86_64-pc-windows-gnu]
linker = "x86_64-w64-mingw32-gcc"
```
4. 为服务器安装 python 依赖
在你的 `app.py` 所在的服务器子目录中运行此命令。
```
cd server
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
```
5. 构建 beacon 并将其下载到你的虚拟机上
这可以通过运行 `scripts/` 中的 bash 脚本来完成
```
chmod +x scripts/build.sh
./scripts/build.sh
```
或者也可以手动完成。
```
cargo build --release --target x86_64-pc-windows-gnu
```
Windows 可执行 beacon 文件存储在 `assets/beacons.exe` 中。为了演示,你可以运行 `assets/host_file.sh` 将其移动到你的虚拟机中,该脚本会运行一个 python 服务器供你的 VM 连接。
```
assets
├── beacon.exe <--
├── host_file.sh
├── Screenshot_20260520_133727.png
└── Screenshot_20260520_133842.png
```
`scripts/build.sh` 会通过 `grep` 扫描 `ip addr show wlo1` 的标准输出(STDOUT),并使用 `sed` 命令行工具将 `beacon-rs/src/config.rs` 中的 IP 地址替换为你当前的 IP 地址。
如果无法通过 VM 连接,你可能需要在防火墙中开放该端口。
```
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
```
## 附加信息
你可能需要关闭 Windows Defender,它很可能会阻止下载或运行该可执行文件。
数据库 (c2.db) 会持久化所有内容;beacons、tasks 和 results 在服务器重启后依然会保留。
重启 VM 并不会使重启前运行的 beacon 失效。每台机器只会被分配一个 beacon,该 beacon 存储在:
```
C:\Users\Alder\AppData\Local\Temp\.beacon_id
```
你可以通过运行 `scripts/restart.sh` 并删除位于 VM 上的 UUID 文件(路径为 `del %USERPROFILE%\AppData\Local\Temp\.beacon_id`)来重新启动一次测试任务。每次你在目标主机上运行 `beacon.exe` 时,该文件都会被重新创建。
## 如何运行模拟
1. 运行 flask 服务器
```
cd server
source venv/bin/activate
python app.py
```
这将启动一个开发服务器,为 Higgs C2 提供 Web 应用程序接口。
## 浏览 Higgs C2 Web 界面
你可以使用左侧的导航面板浏览 Web 界面,该面板包含了控制已部署 beacon 所需的一切功能。
1. 已注册的 beacons 会显示在 `Beacons` 标签页中

你可以查看 beacon 的信息,例如运行它的目标 OS 及架构、它的 UUID 以及它的任务队列。你也可以在这里查看已完成任务的结果。
2. 命令可以通过 `Commands` 标签页发送

要发送命令,你必须从下拉菜单中选择一个 beacon。然后你可以:
1. 输入并发送你自己的命令
2. 使用现有的或创建一个预设命令
未来这里还有更多功能可以开发。
3. beacon 的命令历史记录显示在 `History` 中

你可以查看 beacon 的命令历史记录及其各自的结果,前提是它们已成功完成。
标签:C2框架, Gophish, IP 地址批量处理, Python, Rust, TGT, 可视化界面, 安全学习资源, 攻防演练, 无后门, 网络信息收集, 网络流量审计, 跨平台编译, 逆向工具