capture0x/AdAgent
GitHub: capture0x/AdAgent
AdAgent 是一个 AI 驱动的 Active Directory 攻击代理,用于自动化执行渗透测试中的完整攻击链。
Stars: 2 | Forks: 0
AI 驱动的 Active Directory 攻击代理
59 种工具 · 139 种技术 · 自主攻击链执行 · Ollama + Claude
## 概述
**AdAgent** 是一个独立的自主代理,它使用 AI 后端(Ollama 或 Claude)自动链接 Active Directory 攻击技术。它驱动完整的攻击链——从初始枚举到域控沦陷——无需手动干预,同时跟踪证据、适应死路径,并生成结构化的渗透测试报告。
## 主菜单
主菜单显示了一个实时仪表板,包含目标、认证模式、攻击者 IP、发现结果严重性分布和会话统计信息——所有信息实时更新。绿色圆点表示就绪状态;菜单项根据当前配置显示 `READY` 或 `SESSION REQUIRED`。
## 快速开始
```
git clone https://github.com/capture0x/AdAgent.git
cd AdAgent
chmod +x install.sh run.sh
./install.sh
cp .env.example .env
nano .env # set DC_IP, DOMAIN, USERNAME, PASSWORD
./run.sh
```
## 如何使用
[](https://youtu.be/guLQGFbiNHw?si=7lcvTkYxGAxde4X-)
### AI 后端设置
**Ollama(本地,免费 — 推荐):**
```
ollama pull qwen2.5-coder:7b
ollama serve
```
**Claude API:**
```
# 添加到 .env:
ANTHROPIC_API_KEY=sk-ant-...
```
### 交互式菜单选项
```
./run.sh # interactive menu
./run.sh --agent # launch agent directly (skip menu)
./run.sh --session path/to/session.json
./run.sh --no-banner
```
## CLI 模式
完全跳过交互式菜单——将所有设置作为标志传递,代理将立即启动。
```
chmod +x adcli.sh run.sh
```
### 密码认证 — Ollama(本地,免费)
```
./run.sh --dc 10.10.10.10 --domain corp.local --user john --pass Password123 \
--attacker 10.10.14.5 --opsec normal
```
### NT 哈希 / Pass-the-Hash — Claude
```
./run.sh --dc 10.10.10.10 --domain corp.local --user administrator \
--hash aad3b435b51404eeaad3b435b51404ee:abc123def456... \
--backend claude --model sonnet --opsec loud
```
### Kerberos ccache
```
./run.sh --dc 10.10.10.10 --domain corp.local --user john \
--ccache /tmp/john.ccache --opsec stealth
```
### NULL 会话(无凭据)
```
./run.sh --dc 10.10.10.10 --domain corp.local --opsec normal
```
### 仅计划 — 生成攻击计划但不执行工具
```
./run.sh --dc 10.10.10.10 --domain corp.local --user john \
--pass Password123 --mode plan
```
### 所有 CLI 标志
| 标志 | 描述 | 默认值 |
|---|---|---|
| `--dc` | 域控制器 IP | **必需** |
| `--domain` | AD 域 (例如 `corp.local`) | **必需** |
| `--user` | 用户名 (NULL 会话时省略) | — |
| `--pass` | 明文密码 | — |
| `--hash` | NT 哈希 (`LM:NT` 或仅 `NT`) | — |
| `--ccache` | Kerberos ccache 文件路径 | — |
| `--attacker` | 你的监听器 / 攻击者 IP | — |
| `--engagement` | 用于报告的 engagement 名称 | — |
| `--backend` | `ollama` 或 `claude` | `ollama` |
| `--model` | 模型名称或别名 (Claude 可用 `opus`/`sonnet`/`haiku`) | 自动 |
| `--api-key` | Anthropic API 密钥 (或设置 `ANTHROPIC_API_KEY` 环境变量) | — |
| `--opsec` | `loud` · `normal` · `stealth` | `normal` |
| `--mode` | `auto` = 完整运行 · `plan` = 仅文本计划 | `auto` |
| `--rounds` | 覆盖最大代理轮次 | 内置限制 |
| `--yes` | 跳过 5 秒确认倒计时 | — |
| `--no-banner` | 禁用 ASCII 横幅 | — |
### CLI 模式文件结构
```
AdAgent/
├── adcli.sh ← standalone CLI launcher (alternative to run.sh)
└── cli/
├── adcli.py ← entry point
├── args.py ← argument parser
├── display.py ← banner, profile table, countdown
└── runner.py ← session injection + agent launch
```
## 截图
### 会话管理器
会话管理器显示当前目标、认证模式和 engagement 名称。提供五个选项:配置、显示、保存、加载和清除凭据。
### 代理设置 — 后端、模型和 OPSEC
清晰的设置流程:选择 AI 后端(推荐 Ollama / Claude API),输入目标凭据(从会话自动填充),选择工具调用模型,选择运行模式(全自动或仅计划),并配置 OPSEC 级别(Loud / Normal / Stealth)。启动摘要栏会在代理启动前确认所有设置。
### 代理运行 — 实时工具执行
代理逐轮执行工具,实时显示输入、命令和结果。颜色编码输出:**绿色**表示成功/发现,**紫色**表示错误,**黄色**表示警告。每一轮都会记录到实时 Markdown 报告中。
### 链规划器 — 攻击路径分析
枚举后,`chain_planner` 工具按置信度对发现的攻击向量进行排序,并为每条路径生成可运行的命令序列——Kerberoast、ACL 滥用、gMSA 接管、ADCS ESC 等。
### 任务完成 — 摘要
任务结束时,代理会显示结构化摘要:完成的轮次、按严重性分类的发现、已拥有的用户和主机、捕获的哈希,以及所有生成报告(HTML、Markdown、JSON、ATT&CK Navigator)的路径。
### HTML 报告 — 执行摘要和 MITRE ATT&CK 覆盖范围
专业的 HTML 报告以执行摘要开头:每个严重性级别的统计卡片、总发现数、已拥有的用户/主机和运行的命令。下面是自动生成的叙述段落。**MITRE ATT&CK® 覆盖范围**部分将每个发现映射到企业框架,突出显示观察到的战术。
### HTML 报告 — 附带 CVSS v3.1 的详细发现
每个发现卡片显示严重性徽章、**CVSS v3.1 分数和向量**、MITRE ATT&CK 技术 ID(指向 attack.mitre.org 的可点击链接)、描述、建议和时间戳。报告还包括受损资产、攻击时间线和一个 ATT&CK Navigator 层 JSON。
## 功能特性
| | |
|---|---|
| **59 种代理工具** | 完整攻击链:侦察 → 枚举 → 凭据 → 权限提升 → 横向移动 → 域控权限 |
| **139 种 SAST 技术** | 22 个 YAML 类别注入 AI 系统提示词 |
| **AI 后端** | Ollama (本地/免费) · Anthropic Claude (API) |
| **认证模式** | 密码 · NT 哈希 (PTH) · Kerberos ccache |
| **OPSEC 模式** | `loud` · `normal` · `stealth` |
| **死路径跟踪** | 基于主体的循环防止 |
| **自动报告** | 实时 Markdown + HTML + JSON + ATT&CK Navigator |
| **MITRE ATT&CK** | CVSS v3.1 评分、技术增强、战术覆盖地图 |
## 全部 59 种工具
侦察与发现
| 工具 | 描述 |
|---|---|
| `nmap_scan` | 端口扫描、操作系统、域、时钟偏移 |
| `kerbrute_enum` | 通过 Kerberos 进行用户名枚举 |
| `no_cred_surface_recon` | LDAP rootDSE、SMB null/guest、HTTP/ADCS/WSUS 攻击面 |
| `rediscover_target` | 在 engagement 中重新运行 LDAP/NXC/nmap 发现 |
枚举
| 工具 | 描述 |
|---|---|
| `enumerate_ldap` | 用户、组、GPO、信任、SPN、LAPS、委派 |
| `enumerate_shares` | SMB 共享、SYSVOL、GPP 密码文件 |
| `collect_bloodhound` | 收集 BloodHound 数据,带后备方案 |
| `query_bloodhound_paths` | Neo4j 最短路径查询 |
| `user_hunt` | 会话狩猎、PSRemoting 检查 |
凭据攻击
| 工具 | 描述 |
|---|---|
| `asrep_roast` | AS-REP 可 roast 账户的哈希 |
| `kerberoast` | SPN 账户 roast |
| `targeted_kerberoast` | 通过可写账户进行定向 SPN 滥用 |
| `password_spray` | 带抖动的凭据喷洒 |
| `timeroast` | MS-SNTP NTP 哈希提取 (无需凭据) |
| `pre2k_attack` | Pre-Windows 2000 默认密码滥用 |
权限提升
| 工具 | 描述 |
|---|---|
| `adcs_scan` | ADCS ESC1–ESC13 枚举和利用 |
| `shadow_credentials_attack` | msDS-KeyCredentialLink 注入 |
| `acl_abuse_scan` | GenericWrite/WriteDACL/ForceChangePassword 边缘 |
| `force_change_password_pivot` | 通过 ForceChangePassword ACE 重置用户 |
| `rbcd_attack` | RBCD 完整链 |
| `unconstrained_delegation` | 通过强制认证捕获 TGT |
| `local_privesc_chain` | Potato、AlwaysInstallElevated、未加引号路径 |
| `jea_enum` | JEA 端点、PSReadLine 历史记录 |
| `windows_privesc_recon` | Shell 后的本地权限提升侦察 |
横向移动和 Shell
| 工具 | 描述 |
|---|---|
| `evil_winrm` | WinRM shell (密码 / 哈希 / Kerberos) |
| `discover_winrm_access` | 查找可访问 WinRM 的主机 |
| `lateral_movement` | WMI / WinRM / PSExec 风格执行 |
| `mssql_abuse` | xp_cmdshell、链接服务器 RCE |
| `logon_script_abuse` | 可写 scriptPath 滥用 |
凭据访问
| 工具 | 描述 |
|---|---|
| `dcsync_attack` | 完整域哈希转储 |
| `credential_dump` | 远程 LSASS / SAM / NTDS |
| `credential_loot` | 后渗透凭据搜寻 |
| `laps_read` | LAPS 本地管理员密码 |
| `shadow_copies_dump` | 基于 VSS 的 NTDS.dit 和 SAM 提取 |
| `auto_loot_chain` | 共享 → 解析凭据 → 测试 → 转向 |
gMSA · 证书 · Kerberos
| 工具 | 描述 |
|---|---|
| `gmsa_read` | 读取 gMSA 托管密码 |
| `gmsa_takeover` | 修改 msDS-GroupMSAMembership → 转储哈希 |
| `bloodyad` | 通用 LDAP 对象操作 |
| `pass_the_cert` | PKINIT → NT 哈希 |
| `golden_ticket` | 使用 krbtgt 哈希伪造 TGT |
| `silver_ticket` | 使用服务账户哈希伪造 TGS |
| `request_tgt` | 获取 Kerberos TGT |
云 / 混合 / ADFS / SCCM / WSUS
| 工具 | 描述 |
|---|---|
| `adfs_attack` | DKM 证书、Golden SAML、MSOL DCSync |
| `sccm_abuse` | NAA 凭据、客户端推送中继 |
| `wsus_attack` | HTTP 漏洞检查、pywsus 注入 |
| `trust_attack` | 信任密钥、SID 历史、跨域 |
| `trust_chain_planner` | ExtraSID 计划、跨林 Kerberoast |
| `gpo_abuse` | GPO 创建 / 链接 / 执行 / 劫持 |
| `adidns_abuse` | DNS 通配符、WPAD、记录注入 |
| `rodc_attack` | RODC PRP、Key List、RODC Golden Ticket |
| `coercion_attack` | PrinterBug / PetitPotam / Coercer |
OPSEC 和实用工具
| 工具 | 描述 |
|---|---|
| `opsec_check` | EDR/AV/Sysmon/MDI/LAPS 检测 |
| `c2_stage` | Sliver / Havoc / MSF 载荷 + 投递 |
| `test_credential` | 测试 SMB/LDAP/WinRM 凭据 |
| `update_session` | 持久化发现的情报 |
| `chain_planner` | 根据证据对攻击链排序 |
| `generate_report` | HTML · Markdown · JSON · ATT&CK Navigator |
| `agent_complete` | 结束任务并生成摘要 |
## 配置 (`.env`)
```
DC_IP=10.10.10.10
DOMAIN=corp.local
USERNAME=john.doe
PASSWORD=Password123
# NT_HASH=aad3b435b51404ee... (PASSWORD 的替代)
ATTACKER_IP=10.10.14.5
ENGAGEMENT_NAME=Corp-Pentest-2026
ANTHROPIC_API_KEY= # leave blank for Ollama
ADSTRIKE_OPSEC=normal # loud | normal | stealth
```
## 输出
```
output/
├── session.json ← persistent session state
├── agent_logs/
│ ├── agent_
.md ← live Markdown round-by-round report
│ └── agent_.json ← JSON conversation log
└── reports/
├── adagent_report_.html ← full HTML pentest report
├── adagent_report_.md ← Markdown report
├── adagent_report_.json ← JSON findings export
└── adagent_report__navigator.json ← ATT&CK Navigator layer
```
## 前置条件
```
# 系统工具
sudo apt install -y impacket-scripts nxc evil-winrm bloodhound-python \
certipy-ad ldap-utils krb5-user nmap responder coercer seclists
# Python 包
pip install -r requirements.txt
# 可选项
pip install bloodyad lsassy dploot roadtx roadrecon sccmhunter pywsus
```
## 文档
完整操作员指南:[`docs/ADAGENT_GUIDE.md`](docs/ADAGENT_GUIDE.md)
涵盖内容:会话模型、全部 59 种工具、SAST 知识库、决策引擎优先级阶梯、gMSA/ADCS/BloodHound/ADFS/WSUS/信任工作流、循环保护、故障排除、开发指南和操作员检查清单。
## 与 AdStrike 的关系
AdAgent 是 **[AdStrike](https://github.com/capture0x/AdStrike)** 的仅代理提取版本——一个完整的 56 模块交互式 AD 攻击框架。
| | AdAgent | AdStrike |
|---|---|---|
| AI 代理 | ✅ 完整 (59 种工具) | ✅ 完整 |
| 交互式模块 | ❌ | ✅ 56 个模块 |
| 最佳适用场景 | 自主运行 | 手动 + AI 混合 |
## 免责声明
AdAgent 仅用于**授权的安全测试**、红队 engagement 和教育实验室使用。作者对滥用不承担任何责任。在测试任何您不拥有的系统之前,请始终获得书面许可。
密码喷洒可能导致账户锁定。DCSync、DCShadow、ADCS 利用和强制认证攻击具有高影响——仅在明确的范围批准下使用。
创建者: tmrswrr ·
GitHub: capture0x ·
框架: AdStrike v5.0 «AdStrike» ·
许可证: MIT
标签:Active Directory攻击, AI后端, AI风险缓解, AI驱动, Claude, CVE检测, kill-chain执行, LLM评估, Ollama, Python, SEO关键词, 功能工具, 协议分析, 反取证, 域妥协, 安全评估, 技术栈, 攻击模拟, 无后门, 权限提升, 横向移动, 编程规范, 网络安全, 自主代理, 自动攻击链, 证据跟踪, 逆向工具, 隐私保护, 驱动签名利用