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, 产品需求文档, 代码混淆, 反沙箱技术, 漏洞利用开发, 红队工具开发, 请求拦截, 进程注入