Yenn503/AdPack

GitHub: Yenn503/AdPack

AdPack 是一个用 Go 编写的有状态 AD 与云攻击编排框架,通过自动化串联多阶段攻击链来完成端到端的渗透测试。

Stars: 5 | Forks: 2

AdPack Banner

看着它发现网络、窃取密钥、打破信任,并自动掌控一切

License Go Platform Version

Quick Start Features Evasion Docs Install



## 概述 AdPack 通过单一 pipeline 运行 Active Directory 和云安全评估。它获取一组起始凭据并逐步完成每个阶段,跟踪其发现并弄清楚下一步该做什么。它不是一份检查清单——它会一直运行,直到获取它能获取的一切。 该 pipeline 包含三个独立的轨道: 每个步骤都记录在加密的 SQLite 数据库中。运行 `status` 查看它发现了什么,运行 `next` 查看它接下来可以尝试什么,以及运行 `autorun` 将所有内容链接在一起。 ### 快速开始 ``` git clone https://github.com/Yenn503/AdPack.git cd adpack && ./setup.sh && source ~/.bashrc # 自动化攻击链 — seed creds,执行 privesc 路径 adpack autorun --target 10.0.0.5 \ --domain corp.local \ --user jsmith --password 'Password1' \ --execute --skip-fail ``` ### 示例输出

adpack autorun demo against DREAD-GOAD light VMs (3 VMs, 2 forests)

### 手动工作流 ``` adpack status # View current state and gaps adpack run discovery -t 10.0.0.5 # Find domain controllers adpack run enumeration -t 10.0.0.5 # Enumerate users and computers adpack run credential_acq -t 10.0.0.5 # Extract credentials adpack validate # Test creds across protocols adpack run lateral -t 10.0.0.6 # Lateral movement ``` 查看 [USAGE.md](docs/USAGE.md) 获取完整的命令参考。 ## 功能 ### 编排 - 跨阶段跟踪状态,让你了解已完成和剩余的工作 - `autorun` 将各个阶段链接在一起,`--resume` 从上次中断的地方继续 - `--dry-run` 在运行前预览操作 - 通过配置中的 CIDR 白名单强制执行范围 - 通过 `adpack interactive` 提供 TUI 仪表板 ### 凭据操作 - 凭据转储:nanodump+pypykatz,回退到 nxc SAM/LSA - 获取 SYSTEM 后关闭 AV:原生 reg add + sc stop + taskkill(无需外部二进制文件) - Kerberoasting 和 AS-REP roasting,自动捕获哈希 - 通过 hashcat 破解哈希(NTLM, krb5tgs, krb5asrep) - 多协议验证:SMB, LDAP, WinRM, RDP - 标记管理员权限和横向移动选项 ### 规避 - 3 种配置:`native`(基于 reg 的 AV 关闭)、`pplshade`(BYOVD PPL 绕过)、`phantomkiller`(EDR 进程终止) - 获取 SYSTEM 访问权限后自动运行 AV 关闭 - 内部凭据获取 pipeline 支持 PPLShade、MiniPlasma、PhantomKiller 作为回退阶段 - 请参阅下方的[规避配置表](#evasion-profiles) ### 传输 命令通过 nxc/impacket 运行,支持 SMB、WinRM、WMI 和 MSSQL。提供 Sliver C2 传输,用于通过 implant 执行(`internal/transport/sliver/`)。可以为任何 C2 替换自定义传输。 ### 破解 提取的哈希值排入后台 hashcat worker。破解的凭据进入状态数据库并触发 privesc 重新评估。 ## 攻击阶段 16 个具有基于依赖执行的有序阶段: ``` flowchart TB subgraph On-Prem["On-Prem AD"] direction TB D["01. Discovery"] --> E["02. Enumeration"] E --> CA["03. Credential Acquisition"] CA --> V["04. Validation"] CA --> SH["05. Session Harvest"] CA --> GA["06. Graph Analysis"] GA --> PR["07. Privesc"] SH --> L["08. Lateral"] PR --> PE["09. Persistence"] L --> I["10. Impact"] PE --> I end subgraph Cloud["Cloud / Entra ID"] direction TB CIA["12. Cloud Initial Access"] --> CEN["13. Cloud Enumeration"] CEN --> CCA["14. Cloud Cred Acq"] CEN --> CPR["15. Cloud Privesc"] CCA --> CPI["16. Cloud Pillage"] CPR --> CPI end CA -.-> HB["11. Hybrid Bridge"] CEN -.-> HB ``` ## 规避配置 用于凭据获取的 3 种配置: | 配置 | 功能 | 使用时机 | |---------|-------------|----------------| | `native` | reg add + sc stop + taskkill,然后运行 nanodump | 默认配置——关闭 Defender,无需额外二进制文件 | | `pplshade` | 通过 PPLShade + LECOMAx64.sys 进行 BYOVD PPL 绕过 | LSASS 受 PPL 保护时 | | `phantomkiller` | 通过 PhantomKiller + PhantomKiller.sys 进行 BYOVD 进程终止 | 需要终止 EDR 进程时 | ### 工具来源 | 工具 | 来源 | |------|--------| | nanodump | Go 二进制文件,在设置期间下载 | | PPLShade | GitHub release (BYOVD) | | PhantomKiller | GitHub release (BYOVD) | | MiniPlasma | GitHub release — 可能需要手动下载 | ### 前置条件 - **native** — 无需额外要求。在 SYSTEM 之后运行 reg + sc + taskkill。 - **pplshade** — 需要在目标上存在 `PPLShade.exe` + `LECOMAx64.sys`。在设置期间下载。 - **phantomkiller** — 需要在目标上存在 `PhantomKiller.exe` + `PhantomKiller.sys`。在设置期间下载。 ## 环境 基于 Windows + WSL2 (Ubuntu) 构建。单一 Go 二进制文件——编译后即可部署到任何 Linux 攻击机上。Windows 工具二进制文件位于旁边的 `exe/` 中。 已在 DreadGOAD-Light(3 个 VMware VM,2 个林)和 VulnAD (Docker) 上测试。 ## 配置 在你的项目目录(或 `~/.adpack/config.yaml`)中创建 `adpack.yaml`: ``` domain: "corp.local" profile: "native" db_path: "" nmap_args: ["-T4", "-sn"] nxc_path: "netexec" bh_python: "bloodhound-python" seeds: - domain: "corp.local" user: "jsmith" password: "ChangeMe" cracking: hashcat_path: "/usr/bin/hashcat" wordlist: "/usr/share/wordlists/rockyou.txt" rules: ["/usr/share/hashcat/rules/best64.rule"] timeout_seconds: 600 # Target scope:允许攻击的 CIDR 范围(可选的安全网) # scope: # - "10.0.0.0/8" # - "192.168.1.0/24" ``` 凭据在 SQLite 中使用 AES-GCM 加密。密钥文件与数据库放在一起——请将两者都保存在权限为 600 的加密磁盘上。 查看 [config.example.yaml](config.example.yaml) 获取完整参考。 ## 安装 ### 自动化设置 ``` git clone https://github.com/Yenn503/AdPack.git cd adpack ./setup.sh source ~/.bashrc ``` 安装 Go 1.25+、NetExec、pypykatz、nanodump、PPLShade、PhantomKiller 和 adpack 二进制文件。大约需要 5-10 分钟。 ### 手动安装 请参阅 [docs/SETUP.md](docs/SETUP.md)。 ## 所有命令 (v0.6.0) | 命令 | 描述 | |---------|-------------| | `adpack autorun` | 完整的自动化攻击链 | | `adpack run ` | 执行单个攻击阶段 | | `adpack status` | 当前状态和缺口 | | `adpack next` | 推荐的下一阶段 | | `adpack interactive` | TUI 仪表板 | | `adpack session save/load/list/delete/export/import` | 授权会话管理 | | `adpack kerb tgt/list/destroy/s4u` | Kerberos 票据管理 | | `adpack adcs find/esc1-esc13/auth` | ADCS 利用 | | `adpack zerologon check/exploit/dcsync/restore` | CVE-2020-1472 漏洞利用 | | `adpack nopac check/exploit/dcsync/scan` | CVE-2021-42278/42287 漏洞利用 | | `adpack coerce printerbug/petitpotam/dfscoerce/shadow/all` | NTLM 强制 | | `adpack trust list/keys/inter-realm/sidhistory` | 域信任攻击 | | `adpack shadow ntds/ifm/parse` | NTDS.dit 提取 | | `adpack gpo create/runkey/task/localadmin/find` | GPO 滥用 | | `adpack dpapi backupkey/masterkey/blob/vault/chrome/triage/credentials` | DPAPI 解密 | | `adpack gmsa list/read` | gMSA 账户枚举 | | `adpack laps list` | LAPS 密码枚举 | | `adpack cred list/export/status/verify` | 凭据清单 | | `adpack report html/md/json` | 授权报告 | | `adpack validate tools/config/setup` | 验证套件 | | `adpack bloodhound collect` | BloodHound 收集 | | `adpack ingest` | 导入工具输出 | | `adpack query` | Cypher 查询 | | `adpack initial teams/device-code/consent-phish` | 初始访问 (Teams/OAuth) | | `adpack cloud enum/cred-acq/privesc/pillage` | 云/Entra ID 攻击 | | `adpack phases/profiles/loot/reset` | 实用程序命令 | | `adpack query [--preset ] [--list-presets]` | 带有预设库的 Cypher 查询 | ## 文档 | 文档 | 描述 | |-----|-------------| | [USAGE.md](docs/USAGE.md) | 完整的命令参考、工作流和示例 | | [SETUP.md](docs/SETUP.md) | 安装指南和环境设置 | | [CONTEXT.md](docs/CONTEXT.md) | 领域语言、架构和设计决策 | | [CONTRIBUTING.md](docs/CONTRIBUTING.md) | 开发指南和贡献流程 | | [CHANGELOG.md](docs/CHANGELOG.md) | 发布历史 | ## 许可证 MIT 许可证 — 查看 [LICENSE](LICENSE)
标签:EVTX分析, 日志审计