AndC100101100/AI-Assisted-Red-Team-Tool-Development
GitHub: AndC100101100/AI-Assisted-Red-Team-Tool-Development
记录 AI 辅助开发 Shellcode 加载器的工作坊方法论与实验架构,解决红队工具可控生成与验证问题。
Stars: 0 | Forks: 0
# [SANS Workshop: AI 辅助的 Shellcode 加载器生成器](https://www.sans.org/webcasts/vibe-coding-evasion-framework-ai-assisted-red-team-tool-development)
Vibe coding 工作坊 — 使用 AI(Google Antigravity / 任意 LLM)迭代构建一个具有可配置规避技术的 Docker 化 Shellcode 加载器生成器。遵循 **“先思考后行动”** 的方法论:先编写产品需求文档(PRD),再分阶段实施并在每一步进行验证。
## 工作坊目标
- 应用“先思考后行动”的方法论进行 AI 辅助安全工具开发
- 编写有效的提示词,使用明确的约束和具体示例来最小化 LLM 幻觉
- 使用 AI 创建定制安全工具的产品需求文档(PRD)
- 实现常见规避技术:负载膨胀、睡眠延迟、反沙箱检查和环境密钥
- 理解进程内 Shellcode 执行与进程注入技术的区别
- 验证 AI 生成的 P/Invoke 签名是否符合权威来源([pinvoke.net](http://pinvoke.net))
## 实验室架构
```
┌─────────────────────────────────────────────────────────┐
│ HOST MACHINE (Windows) │
│ 32GB RAM │
│ │
│ ┌───────────────────────────────────────────────────┐ │
│ │ Google Antigravity IDE │ │
│ │ (AI-assisted development) │ │
│ │ │ │
│ │ Code written here → transferred to Parrot VM │ │
│ │ via shared folder / git / scp │ │
│ └───────────────────────────────────────────────────┘ │
│ │
│ VMware Workstation │
│ ┌───────────────────┐ ┌──────────────────────┐ │
│ │ Parrot Sec VM │ │ Windows 10 VM │ │
│ │ (Attacker) │ │ (Target) │ │
│ │ │ │ │ │
│ │ - Empire C2 │ │ - Defender OFF │ │
│ │ - Docker │ │ - Firewall OFF │ │
│ │ - Shellcode Loader│ │ - Payload execution │ │
│ │ Generator (app) │ │ - Agent callbacks │ │
│ │ │ │ │ │
│ │ NIC 1: NAT │ │ NIC 1: NAT │ │
│ │ NIC 2: VMnet1 │◄─────►│ NIC 2: VMnet1 │ │
│ │ (Host-Only) │ │ (Host-Only) │ │
│ └───────────────────┘ └──────────────────────┘ │
│ │
│ VMnet1 Host-Only Network (192.168.x.0/24) │
└─────────────────────────────────────────────────────────┘
```
### 工作流程
1. 在 **Antigravity**(主机)上编写/生成代码
2. 将项目传输到 **Parrot VM** → 构建并运行 Docker 容器
3. **Empire C2** 在 Parrot 上生成原始 Shellcode
4. **加载器生成器**(Docker 化 Web 应用)将 Shellcode 包装为带有规避技术的 C# 载荷
5. 在 **Windows VM** 上测试载荷 — Shellcode 执行并通过主机仅网络回调到 Empire
## 设置说明
### 1. Google Antigravity(主机机器)
AI 辅助的 IDE,所有编码在此完成。运行在主机上,不在任何虚拟机内。
**安装(Windows):**
从 [antigravity.google/download](https://antigravity.google/download) 下载 `.exe` 安装程序并运行。
**安装(Linux):**
```
# Debian/Ubuntu — APT 仓库
curl -fsSL https://us-central1-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/antigravity-repo-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/antigravity-repo-key.gpg] https://us-central1-apt.pkg.dev/projects/antigravity-auto-updater-dev/ antigravity-debian main" | sudo tee /etc/apt/sources.list.d/antigravity.list > /dev/null
sudo apt update && sudo apt install antigravity
# 或者独立安装:从 antigravity.google/download/linux 下载 .deb
# sudo dpkg -i antigravity-*.deb
```
**首次启动配置:**
- 导入 VS Code/Cursor 设置或全新开始
- 选择 **Agent-assisted development** 模式(你主导,AI 辅助)
- 使用 **个人 Gmail 账户**登录(工作区账户在预览版中不支持)
- 内置 Gemini 3 Pro,无需 API 密钥
### 2. VMware 主机仅网络
两个虚拟机需要通过私有网络进行 C2 回调通信。
**验证/创建主机仅网络:**
1. 在 VMware Workstation 中:**编辑 → 虚拟网络编辑器**
2. 点击 **更改设置**(需要管理员权限)
3. 确认 **VMnet1** 存在并设置为 **主机仅模式**
4. 记下子网(例如 `192.168.x.0/24`)— 默认启用 DHCP,这没问题
**为每个 VM 添加第二个网卡:**
对于 Parrot 和 Windows VM:
1. **VM → 设置 → 硬件 → 添加 → 网络适配器**
2. 将新适配器设置为 **自定义:VMnet1**
3. 保留原有的 NAT 适配器(需要互联网访问)
### 3. Parrot VM(攻击机)
任何基于 Debian 的渗透测试发行版均可(Parrot、Kali 等)— Empire 官方支持 ParrotOS。这也是我当前已安装且懒得更换的系统。
**VM 规格(现有主力机):** 按上述说明添加第二个主机仅网卡。
**验证 Docker 是否已安装:**
```
docker --version
# 如果没有安装:
sudo apt update
sudo apt install -y docker.io docker-compose
sudo usermod -aG docker $USER
# 注销并重新登录
```
**安装 Empire C2(推荐使用 Docker):**
```
docker pull bcsecurity/empire:latest
docker run -it \
-p 1337:1337 \
-p 5000:5000 \
bcsecurity/empire:latest
```
端口 1337 = REST API,端口 5000 = Starkiller Web GUI。
**运行 CLI 客户端连接正在运行的服务器:**
```
docker container ls # grab the container ID
docker exec -it ./ps-empire client
```
### 4. Windows 10 VM(目标机)
用于测试生成载荷的被攻击机器。
**ISO:** 从 [Microsoft Evaluation Center](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise) 下载免费的 90 天评估版(Windows 10 企业版,64 位)。
**VM 规格:**
| 资源 | 推荐 |
|------|------|
| RAM | 8 GB |
| CPU | 1 处理器 × 4 核心 |
| 磁盘 | 100 GB(精简配置) |
| 网卡 1 | NAT(互联网访问) |
| 网卡 2 | VMnet1 主机仅模式 |
**安装后 — 关闭所有防御:**
Windows Defender:
- Windows 安全中心 → 病毒和威胁防护 → 管理设置
- 关闭:实时保护、云提供的保护、自动样本提交、篡改保护
Windows 防火墙:
- Windows 安全中心 → 防火墙和网络保护 → 关闭所有配置文件
或通过提升的命令提示符执行:
```
netsh advfirewall set allprofiles state off
```
**在此处拍摄 VMware 快照** — 在安装其他工具前建立干净的基线。
### 5. 验证连通性
从 **Parrot**,获取主机仅 IP:
```
ip a # look for the VMnet1 adapter IP, e.g., 192.168.x.128
```
从 **Windows**,获取主机仅 IP:
```
ipconfig # look for the second Ethernet adapter, e.g., 192.168.x.129
```
双向测试:
```
# 来自 Parrot
ping 192.168.x.129
# 来自 Windows
ping 192.168.x.128
```
两者都应成功。如果 Windows 无响应,说明防火墙未完全关闭。
### 6. Empire 冒烟测试(可选)
验证 C2 回调在实验室网络中是否正常工作的快速端到端测试。
**在 Parrot(Empire 客户端)上:**
```
uselistener http
set Host http://:80
set Port 80
execute
usestager multi/launcher
set Listener http
generate
```
复制生成的 PowerShell 单行命令。在 Windows VM 上运行它,你应该会在 Empire 控制台上看到代理上线。
## 涵盖的规避技术
该工作坊构建一个 Web 应用程序,用于生成带有可配置选项的 C# 载荷:
| 技术 | 描述 |
|------|------|
| **负载膨胀** | 膨胀二进制体积以规避沙箱文件大小限制 |
| **睡眠延迟** | 延迟执行以绕过沙箱分析超时 |
| **反沙箱检查** | 在执行载荷前检测虚拟机/沙箱特征 |
| **环境密钥** | 仅在满足特定环境条件(主机名、域、用户名等)时执行 |
| **熵减少** | 降低二进制熵以避免统计检测 |
## 工具与资源
- [Google Antigravity](https://antigravity.google/) — 面向代理的 AI IDE
- [Empire C2 (BC Security)](https://github.com/BC-SECURITY/Empire) — 后渗透框架
- [Starkiller](https://github.com/BC-SECURITY/Starkiller) — Empire Web GUI
- [pinvoke.net](http://pinvoke.net) — Win32 P/Invoke 签名参考
- [Microsoft Evaluation Center](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise) — 免费 Windows 10 镜像下载
标签:AI合规, AI辅助安全, ATT&CK技术, Docker化工具, LLM提示工程, Python开发, SANS培训, SEO: AI安全工具, SEO: 壳代码生成, SEO: 提示词工程, SEO: 红队开发, SSH蜜罐, T1028, T1050, T1055, Workshop, 产品需求文档, 代码混淆, 反沙箱技术, 漏洞利用开发, 红队工具开发, 请求拦截, 进程注入