WeaveSolicitor/AdStrike-150

GitHub: WeaveSolicitor/AdStrike-150

一款 AI 驱动的模块化 Active Directory 红队攻击框架,整合从侦察到持久化的完整攻击链并支持 MCP 服务器集成。

Stars: 0 | Forks: 0

AdStrike banner

AdStrike — v5.0 «AdStrike»

AI 驱动的专业 Active Directory 攻击框架

[![Python](https://img.shields.io/badge/Python-3.10%2B-blue?style=flat-square&logo=python)](https://python.org) [![Platform](https://img.shields.io/badge/Platform-Kali%20%7C%20Parrot-brightgreen?style=flat-square&logo=linux)](https://www.kali.org) [![Menu](https://img.shields.io/badge/Menu-58%20entries-purple?style=flat-square)](modules/) [![Phases](https://img.shields.io/badge/Kill--Chain-8%20Phases-red?style=flat-square)] [![Primitives](https://img.shields.io/badge/Tradecraft-400%2B%20Primitives-orange?style=flat-square)] [![License](https://img.shields.io/badge/License-GPLv3-yellow?style=flat-square)](LICENSE) [![Creator](https://img.shields.io/badge/Creator-tmrswrr-cyan?style=flat-square)](https://github.com/capture0x) **仅限授权使用。未经明确书面许可,请勿针对系统运行此工具。** 发布状态:beta/研究版本。菜单和导入健康检查已通过;各个模块仍取决于目标状态、凭据、网络可达性以及已安装的第三方工具。 AdStrike main menu
## 概述 AdStrike 是一个模块化的、基于终端的 Active Directory 攻击框架。它帮助操作人员完成发现、枚举、漏洞利用、凭据访问、横向移动、持久化和报告等步骤,同时将会话状态集中保存在一处。 该框架将目标详情、凭据、Kerberos 状态、发现结果、已执行的命令和输出路径存储在一个共享会话中。模块可以复用该上下文,而无需强制操作人员反复输入相同的数据。 核心功能: - 58 个交互式菜单项:52 个攻击模块、4 个实用程序、2 个管理功能 - 9 个 kill-chain 阶段组,从侦察到高级操作 - 针对 NTLM 被禁用和强制 LDAP 签名环境的 Kerberos 感知工作流 - 用于解析输出和对下一步操作进行排名的 Smart Analyst - 可选的 AdStrike Agent,用于 AI 辅助规划或工具编排 - **暴露所有 53 个工具的 MCP 服务器 — 无需 API key,由你现有的 MCP 主机(Claude Code / Cursor / Claude Desktop)驱动** - 生成 HTML、Markdown 和 JSON 格式的报告 - 封装了常见的 AD 工具,如 Impacket、NetExec、Certipy、Kerbrute、BloodHound、PowerView、Rubeus 及相关实用程序 ## 截图 | AD 枚举 | BloodHound 助手 | |---|---| | ![AD 枚举](https://raw.githubusercontent.com/WeaveSolicitor/AdStrike-150/main/assets/screenshots/3.png) | ![BloodHound 助手](https://raw.githubusercontent.com/WeaveSolicitor/AdStrike-150/main/assets/screenshots/4.png) | | AdStrike Agent | Smart Analyst | |---|---| | ![AdStrike Agent](https://raw.githubusercontent.com/WeaveSolicitor/AdStrike-150/main/assets/screenshots/5.png) | ![Smart Analyst](https://raw.githubusercontent.com/WeaveSolicitor/AdStrike-150/main/assets/screenshots/7.png) | ## 环境要求 | 项目 | 要求 | |---|---| | 操作系统 | 推荐 Kali Linux 2024+ 或 Parrot OS | | Python | 3.10 或更高版本 | | 权限 | 框架普通用户即可;仅在运行需要数据包捕获或特权网络操作的工具时需要 root | | 网络 | 可达范围内的 AD 服务,通常包括 88、389、443、445、636、5985 端口 | 关键外部工具: ``` impacket-scripts nxc / netexec bloodhound-python certipy-ad evil-winrm kerbrute responder ldap-utils hashcat john nmap / masscan krb5-user dnstool.py dig ldapsearch ``` 大多数依赖项由 `install.sh` 安装。一些可选工具会在可能的情况下由 `scripts/repair_tools.sh` 进行安装或修复。 ## 配置 安装程序会将 `.env.example` 复制为 `.env`。在执行任务前请编辑 `.env`: ``` DC_IP=10.10.10.10 DC_FQDN=dc1.corp.local DOMAIN=corp.local BASE_DN=DC=corp,DC=local USERNAME=user PASSWORD= NT_HASH= USE_KERBEROS=false KRB5_CCACHE= ATTACKER_IP=10.10.14.5 ATTACKER_IFACE=tun0 ENGAGEMENT_NAME=Corp-Internal-2026 ADSTRIKE_SHOW_SECRETS=false ``` 你也可以从 Session Manager 中交互式地输入这些值。会话会自动将它们传递给各个模块。 切勿提交真实的交战数据。请对 `.env`、`output/`、ticket 文件、hash、dump、报告和捕获的战利品保密并进行脱敏处理。 实用的环境标志: | 变量 | 默认值 | 用途 | |---|---:|---| | `ADSTRIKE_SHOW_SECRETS` | `false` | 除非明确启用,否则在日志和报告中隐藏密码、hash 和战利品 | | `ADSTRIKE_NO_ANIMATION` | 未设置 | 禁用启动动画,以获得更整洁的日志或适应缓慢的终端 | | `ADSTRIKE_PORT_CHECK` | 未设置 | 在会话设置期间强制执行快速的 nmap AD 端口检查 | | `TGT_AUTO_RENEW` | `true` | 在支持的条件下保持启用 Kerberos 更新行为 | | `ADSTRIKE_OPSEC` | `normal` | Agent 模式覆盖:`loud`、`normal` 或 `stealth` | | `ADSTRIKE_BH_HOST` | 未设置 | BloodHound/Agent 主机名覆盖 | | `ADSTRIKE_BH_DOMAIN` | 未设置 | BloodHound/Agent 域覆盖 | | `ADSTRIKE_BH_IP` | 未设置 | BloodHound/Agent DC IP 覆盖 | | `ANTHROPIC_API_KEY` | 未设置 | AdStrike Agent 的可选 Claude 后端密钥 | ## 模块地图 | 阶段 | 菜单范围 | 领域 | |---|---:|---| | 0 | 1-2 | 侦察 | | 1 | 3-9 | 初始访问 | | 2 | 10-16 | 枚举 | | 3 | 17-27 | 权限提升 | | 4 | 28-32 | 横向移动 | | 5 | 33-36 | 凭据访问 | | 6 | 37-42 | 持久化 | | 7 | 43-48 | 云 / 混合 | | 8 | 49-52 | 高级操作 | | 实用程序 | 53-58 | Agent、Analyst、Kerberos Manager、报告、会话、工具检查 | ### 侦察 | # | 模块 | 覆盖范围 | |---|---|---| | 1 | 侦察 & OSINT | DNS、WHOIS、电子邮件收集、证书透明度 | | 2 | 网络发现 | nmap、masscan、nbtscan、netdiscover、IPv6 扫描 | ### 初始访问 | # | 模块 | 覆盖范围 | |---|---|---| | 3 | 初始访问 (无凭据) | NTLM 捕获、relay、ARP、DHCPv6、RID 循环 | | 4 | CVE / AD 漏洞利用 | NoPac、PrintNightmare、Zerologon | | 5 | AMSI / 防御规避 | AMSI bypass、CLM bypass、AppLocker、混淆 | | 6 | EDR / AV 规避 | NanoDump、MockingJay、RWXfinder、BOF、syscalls | | 7 | UAC Bypass | fodhelper、eventvwr、CMSTP、token impersonation | | 8 | Pre2K & Timeroasting | Pre-Win2K 账户、MS-SNTP hash、MAQ 滥用 | | 9 | WSUS 攻击 | WSUS HTTP 欺骗、pywsus、SYSTEM 执行 | ### 枚举 | # | 模块 | 覆盖范围 | |---|---|---| | 10 | AD 枚举 | LDAP、SMB、GPO、DNS、trusts、SPN、LAPS、委派 | | 11 | PowerView 枚举 | PowerView cmdlet 参考和执行 | | 12 | BloodHound 助手 | SOAPHound、RustHound、ADExplorer、Neo4j 查询 | | 13 | 文件 & 共享搜寻器 | Snaffler、SYSVOL、GPP、spider_plus | | 14 | NetExec / NXC 套件 | SMB、LDAP、MSSQL、WinRM、RDP | | 15 | 用户搜寻 | SessionHunter、UserHunter、PSRemoting 管理员检查 | | 16 | ADIDNS 滥用 | Wildcard DNS、WPAD、记录注入、DNSAdmins | ### 权限提升 | # | 模块 | 覆盖范围 | |---|---|---| | 17 | 本地权限提升 | PowerUp、KrbRelayUp、Potato 攻击、JEA | | 18 | Kerberos 攻击 | AS-REP roast、Kerberoast、PtT、OPtH、ticket、PKINIT | | 19 | Rubeus 工具包 | TGT、TGS、roasting、PTT、S4U、监控模式 | | 20 | Shadow Credentials | msDS-KeyCredentialLink、pywhisker、PKINIT | | 21 | RBCD 全链路 | Powermad、S4U2Proxy、altservice、Bronze Bit | | 22 | ACL / ACE 滥用 | GenericAll、WriteDACL、ForceChangePassword、AddMember | | 23 | 证书滥用 (ADCS) | ESC1-ESC13、Certipy、CertSync、CA 枚举 | | 24 | RODC 攻击 | PRP 滥用、Key List Attack、RODC Golden Ticket | | 25 | Golden Certificate | CA 密钥窃取、UnPAC、PassTheCert | | 26 | UnPAC / PassTheCert | 针对性 Kerberoast、UnPAC、PassTheCert、SPN-Jack | | 27 | JEA 攻击 | JEA bypass、PSReadLine 历史、CLM 逃逸 | ### 横向移动 | # | 模块 | 覆盖范围 | |---|---|---| | 28 | 横向移动 | PSExec、WMIExec、SMBExec、DCOM、Evil-WinRM、WinRS | | 29 | 强制认证攻击 | PrinterBug、PetitPotam、DFSCoerce、relay 路径 | | 30 | MSSQL 滥用 | xp_cmdshell、PowerUpSQL、链接服务器、UNC 捕获 | | 31 | 密码攻击 | Spray、Kerbrute、凭据填充、relay 捕获 | | 32 | SCCM / MECM 滥用 | NAA 凭据窃取、relay、客户端推送、AdminService | ### 凭据访问 | # | 模块 | 覆盖范围 | |---|---|---| | 33 | 凭据导出 | LSASS、SAM、NTDS、lsassy、nanodump、pypykatz | | 34 | DPAPI & 凭据保管库 | dploot、SharpDPAPI、LaZagne、KeeThief、浏览器 | | 35 | DCSync / DCShadow | 域 hash 转储和恶意 DC 操作 | | 36 | 卷影副本滥用 | VSS、NTDS.dit、SAM、SYSTEM hive 提取 | ### 持久化 | # | 模块 | 覆盖范围 | |---|---|---| | 37 | 域内持久化 | Golden/Silver ticket、AdminSDHolder、NPPSPY、TTL 组成员身份 | | 38 | 本地持久化 | SharPersist、WMI 订阅、注册表、启动项 | | 39 | GPO 滥用 | GPO 创建、链接、计划任务执行、劫持 | | 40 | DNSAdmins 滥用 | 通过 DNS 服务配置进行 DLL 注入 | | 41 | Trust 攻击 | TrustKey、SID History、PAM trust、跨林提权 | | 42 | AD 杂项滥用 | Backup Operators、Skeleton Key、Exchange RBAC、DSRM | ### 云 / 混合 | # | 模块 | 覆盖范围 | |---|---|---| | 43 | Azure AD / Entra ID | AADConnect、PTA、PHS、PRT、token 窃取 | | 44 | Entra 混合攻击 | MSOL DCSync、设备代码流程、PTA 注入 | | 45 | gMSA 攻击 | 枚举、hash 提取、pass-the-hash、shadow credentials | | 46 | ADFS & Golden SAML | token 签名证书、Golden SAML、AADInternals | | 47 | AiTM / MFA Bypass | Evilginx2、Modlishka、EvilnoVNC、MFA 疲劳、cookie 重放、混合枢纽 | | 48 | M365 / Teams 攻击 | MailSniper、Graph API、Teams 钓鱼、SharePoint 窃取、Intune 滥用 | ### 高级操作 | # | 模块 | 覆盖范围 | |---|---|---| | 49 | 漏洞利用链 | 预先构建的完整攻击路径 | | 50 | C2 集成 | Sliver、Havoc、Metasploit、Cobalt Strike payload 投递 | | 51 | 战利品解析器和分析器 | 解析、去重、评分并出战利品 | | 52 | AD 高级手册 | WDAC、MDE/MDI、WMI 过滤器、trust、欺骗 | ### 实用程序 | # | 实用工具 | 用途 | |---|---|---| | 53 | AdStrike Agent (AI) | 可选的 AI 辅助规划器/编排器 | | 54 | Smart Analyst | 解析输出、构建攻击计划、可选择执行步骤 | | 55 | Kerberos Manager | TGT、PTT、S4U、ccache、kirbi、krb5.conf 管理 | | 56 | 生成报告 | HTML、Markdown 和 JSON 报告 | | 57 | Session Manager | 保存、加载、切换和清除会话 | | 58 | Tool Checker | 验证外部工具和模块导入 | ## 输出 运行时文件写入 `output/` 目录下: | 路径 | 用途 | |---|---| | `output/session.json` | 持久化的会话状态 | | `output/session_*.log` | 来自 `run.sh` 的启动器日志 | | `output/enum/` | LDAP、SMB、GPO 和枚举产物 | | `output/bloodhound/` | BloodHound 集合及相关数据 | | `output/audit/capability_audit.json` | Tool Checker 和模块健康状况快照 | | `output/agent_logs/` | AdStrike Agent 的 Markdown/JSON 运行日志 | | `output/agent_runtime/` | Kerberos 配置、ccache、hash 和临时的 agent 产物 | | `output/reports/` | 生成的报告 | 在分享之前,请审查并脱敏 `output/` 中的所有内容。 ## 自动目标发现 在首次运行的会话设置期间,输入 DC IP 会触发一次快速的发现过程: 强制端口检查: ``` ADSTRIKE_PORT_CHECK=true bash run.sh ``` 如果发现了 DC FQDN,AdStrike 会为 DNS 解析不可靠的环境打印出 `/etc/hosts` 映射条目。如果检测到时钟偏差,它会在处理重度依赖 Kerberos 的工作流之前打印时间同步提示。 ## Kerberos 和禁用 NTLM 的环境 对于禁用或不可靠 NTLM 的目标,请使用: ``` [18] Kerberos Attacks -> [A] NTLM-Disabled Attack Workflow ``` 此工作流可以: - 生成特定于目标的 `krb5.conf` - 添加 DC FQDN 映射指南 - 使用 Impacket 请求 TGT - 设置 `KRB5CCNAME` 和 `KRB5_CONFIG` - 为后续模块启用 Kerberos 模式 - 打印可供 NetExec、Impacket、BloodHound 和 Evil-WinRM 使用的 Kerberos 命令 常见的 Kerberos 检查: ``` date klist cat "$KRB5_CONFIG" echo "$KRB5CCNAME" ``` ## AdStrike Agent AdStrike Agent 是可选的。手动模块不需要 AI。 只想尝试 agent? → **[github.com/capture0x/AdAgent](https://github.com/capture0x/AdAgent)** 支持的后端: | 后端 | 用例 | 要求 | |---|---|---| | Ollama | 本地 / 私有 / 离线实验室使用 | `ollama serve`、本地模型、Python `requests` | | Claude | API 支持的推理 | `ANTHROPIC_API_KEY`、互联网 / API 访问权限 | Ollama 示例: ``` ollama serve ollama pull mistral bash run.sh # 选择 [51] AdStrike Agent (AI) # 选择 Backend [1] Ollama ``` ## 快速开始 ``` git clone https://github.com/WeaveSolicitor/AdStrike-150.git cd AdStrike-150 python setup.py ``` Claude 示例: ``` export ANTHROPIC_API_KEY="sk-ant-..." bash run.sh # 选择 [51] AdStrike Agent (AI) # 选择 Backend [2] Claude ``` Agent 模式: | 模式 | 含义 | |---|---| | Full Auto | Agent 执行工具调用并根据证据进行调整 | | Plan Only | Agent 生成一个优先级的计划,但不执行工具 | OPSEC 模式: | 模式 | 含义 | |---|---| | Loud | 快速的实验室/CTF 模式 | | Normal | 平衡的内部 pentest 模式;默认 | | Stealth | 在可能的情况下,采取更保守的原生优先行为 | ## MCP Server (无 API Key) 所有 **53 个工具**均已发布 — 52 个攻击工具(`nmap_scan`、`enumerate_ldap`、 `adcs_scan`、`evil_winrm`、`gmsa_read`、`dcsync_attack`、`kerberoast` 等)加上 `set_engagement` — 使用与独立 agent 完全相同的 schema (`modules/agent/_core.py`),因此只有一个事实来源,没有重复。 ![AdStrike MCP 服务器演示](https://raw.githubusercontent.com/WeaveSolicitor/AdStrike-150/main/assets/mcp-demo.gif) **1. 验证服务器是否可以加载**(使用项目 venv): ``` ./venv/bin/python3 -c "import mcp; from modules.agent._core import TOOLS; print('ok', len(TOOLS))" ``` **2. 在 Claude Code 中注册。** 仓库已经附带了一个项目 `.mcp.json`,其中包含 相对于仓库的路径,因此如果你从 AdStrike 文件夹启动 Claude Code(第 3 步), **你可以跳过这一步** — 它会被自动拾取: ``` { "mcpServers": { "adstrike": { "command": "venv/bin/python3", "args": ["mcp_server.py"] } } } ``` 要全局注册它(以便它可以从任何目录工作),请通过 CLI 使用绝对路径: ``` claude mcp add adstrike -- /path/to/AdStrike/venv/bin/python3 /path/to/AdStrike/mcp_server.py ``` Cursor 和 Claude Desktop 在其 MCP 配置中使用相同的 `command` + `args` 结构。 **3. 从 AdStrike 文件夹启动 Claude Code。** 项目 `.mcp.json` 仅在 `claude` 从包含它的目录中启动时才会被加载,因此请在那里运行它: ``` cd /path/to/AdStrike claude ``` 首次启动时,Claude Code 会要求你批准 `adstrike` MCP 服务器 — 接受 它。在 Claude Code 中使用 `/mcp`(或在 shell 中使用 `claude mcp list`) 确认工具已上线。Cursor 和 Claude Desktop 会在重启后拾取该服务器。 **4. 使用它。** 设置一次交战环境,然后让主机驱动: AdStrike 将目标和凭据存储在会话中,并**将它们注入 随后的每一次工具调用中**,因此宿主 LLM 永远不需要重复输入密码,并且不会 意外地针对错误的主机或账户。从那里开始,宿主读取每个 工具的输出并选择下一个工具 — nmap → LDAP 枚举 → BloodHound → 匹配的滥用原语 — 就像内置的 agent 循环一样,只是由 宿主订阅提供支持。 **示例提示** — 将其粘贴到 Claude Code 中(调整目标),只需设置一次 交战环境并让主机驱动标准的 AdStrike 工作流: ``` Use the adstrike MCP server. Call set_engagement with dc_ip 192.168.56.1, domain corp.local, username tester, password 'Pass123!'. Then run the same workflow as the AdStrike agent: 1. nmap_scan 2. no_cred_surface_recon 3. enumerate_ldap 4. enumerate_shares 5. collect_bloodhound 6. query_bloodhound_paths 7. adcs_scan 8. acl_abuse_scan 9. kerberoast 10. asrep_roast 11. discover_winrm_access 12. chain_planner After each tool result, analyze the output and choose the next best AdStrike MCP tool. Do not ask me for the password again — use the session credential injected by set_engagement. ``` 你只需在 `set_engagement` 中传递凭据;随后的每个工具都会复用 会话中的值,因此宿主不再需要它。 完整演练(要求、每个主机的配置、OPSEC 说明): **[docs/mcp.md](docs/mcp.md)**。 ## 性能 / GPU 加速 ### 为什么 Ollama agent 可能感觉很慢 该 agent 在大多数决策中使用规则引擎(无 LLM 调用)。需要 LLM 输入的回合会在本地调用 Ollama。如果 Ollama 在 CPU 而不是 GPU 上运行,每次调用将耗时 15–30 秒,而不是 2–5 秒。 验证 Ollama 正在使用哪个处理器: ``` ollama ps # PROCESSOR 列应显示 "GPU",而不是 "100% CPU" ``` ### 修复:Ollama 未检测到 GPU (Kali / systemd) 在某些 Kali Linux 环境中,`ollama` systemd 服务在 CUDA 库处于库路径之前启动,因此日志中会出现 `GPULayers:[]`,并且推理会回退到 CPU。 **第 1 步 — 向服务添加 CUDA 环境变量:** ``` sudo nano /etc/systemd/system/ollama.service ``` 在 `[Service]` 块中添加以下三行: ``` Environment="CUDA_VISIBLE_DEVICES=0" Environment="LD_LIBRARY_PATH=/usr/local/lib/ollama/cuda_v12:/usr/lib/x86_64-linux-gnu" Environment="OLLAMA_GPU_OVERHEAD=0" ``` 编辑后完整的 `[Service]` 块示例: ``` [Service] ExecStart=/usr/local/bin/ollama serve User=ollama Group=ollama Restart=always RestartSec=3 Environment="PATH=..." Environment="CUDA_VISIBLE_DEVICES=0" Environment="LD_LIBRARY_PATH=/usr/local/lib/ollama/cuda_v12:/usr/lib/x86_64-linux-gnu" Environment="OLLAMA_GPU_OVERHEAD=0" ``` **第 2 步 — 重新加载并重启:** ``` sudo systemctl daemon-reload sudo systemctl restart ollama ``` **第 3 步 — 确认正在使用 GPU:** ``` ollama ps # 预期:PROCESSOR = GPU(或百分比,而不是 "100% CPU") ``` ### 兼顾速度与质量的推荐 Ollama 模型 | 模型 | VRAM | 速度 | 工具调用质量 | |---|---|---|---| | `qwen2.5-coder:7b` | ~5 GB | 中等 | 最适合 AD agent | | `llama3.2:3b` | ~2 GB | 最快 | 适用于低 VRAM 机器 | | `mistral:latest` | ~4.5 GB | 中等 | 不错的备选方案 | 拉取模型: ``` ollama pull qwen2.5-coder:7b ``` ## 修复与故障排除 检查已安装的工具和模块导入: ``` python3 main.py --module 58 --no-banner ``` 在可能的情况下修复缺失的工具: ``` bash scripts/repair_tools.sh --check bash scripts/repair_tools.sh -y ``` 范围性修复: ``` bash scripts/repair_tools.sh --no-apt bash scripts/repair_tools.sh --no-pip bash scripts/repair_tools.sh --no-github ``` 如果缺少虚拟环境: ``` bash install.sh source adrt_venv/bin/activate python3 main.py --check ``` 如果 NetExec 或 Impacket 失败,请验证版本并重新运行修复脚本: ``` which nxc nxc --version which impacket-secretsdump bash scripts/repair_tools.sh -y ``` 如果报告包含敏感值,请确认已启用脱敏: ``` ADSTRIKE_SHOW_SECRETS=false ``` 然后在分享之前手动检查 `.env`、`output/session.json` 和生成的报告。 ## 文档 附加指南: - [AdStrike 和 Agent 指南](docs/ADSTRIKE_AND_AGENT_GUIDE.md) - [MCP Server — 无 API Key (Claude Code / Cursor / Claude Desktop)](docs/mcp.md) 安全策略: - [SECURITY.md](SECURITY.md) 许可证: - [GPLv3](LICENSE) ## 法律免责声明 本软件仅用于授权的安全测试、红队交战和教育目的。 未经系统所有者明确书面授权而针对系统使用本软件是非法的,并可能违反《计算机欺诈和滥用法》(CFAA)、《计算机滥用法》(CMA) 以及您所在司法管辖区的同等法律。 对于因滥用造成的损害、数据丢失、服务中断或法律后果,作者不承担任何责任。 ## 开发者 **tmrswrr** - GitHub: [capture0x](https://github.com/capture0x)
**联系** - 邮件 : tmrswrr -at- gmail.com 专为授权的攻击性安全研究、实验室验证和专业的红队操作而维护。
标签:Active Directory, Kerberos攻击, PE 加载器, Plaso, Python, StruQ, Web报告查看器, 无后门, 模拟器