
adPEAS v2.3.0
用于自动化Active Directory枚举的Powershell工具。
adPEAS v2 — Active Directory 权限提升 Awesome 脚本
全面的 Active Directory 安全评估 — 零依赖、单文件、开箱即用。
什么是 adPEAS?
adPEAS 是一款基于 PowerShell 的安全评估工具,用于识别 Active Directory 环境中的错误配置、漏洞和权限提升路径。它专为渗透测试人员、安全审计人员和红队设计,提供一款可靠、自包含的工具,可在任何 Windows 系统上运行 — 无需 RSAT、无需 ActiveDirectory 模块、无需第三方依赖。
adPEAS v2 是对 adPEAS v1 的完全重写。它用统一的 System.DirectoryServices.Protocols.LdapConnection 架构取代了传统的 DirectoryEntry/DirectorySearcher 方法,并新增了原生 Kerberos 认证、高级报告和攻击性操作 — 全部使用纯 PowerShell 实现。
v2 新增功能
- 原生 Kerberos 协议栈 — AS-REQ/AS-REP、TGS-REQ/TGS-REP、Pass-the-Ticket、PKINIT,全部使用纯 PowerShell
- 多种认证方式 — 密码、NT-Hash (OPtH)、AES 密钥 (PtK)、证书 (PKINIT 与 Pass-the-Cert/Schannel)、Windows 集成认证
- 40+ 项安全检查,涵盖 9 个类别,带严重性评分
- 交互式 HTML 报告,支持搜索、筛选、风险评分和工具提示
- JSON 导出,用于离线报告转换、增量扫描和扫描对比
- BloodHound CE 收集器 — 内置数据收集,用于攻击路径分析
- 攻击性操作 — Kerberoasting、AS-REP Roasting、Golden/Silver/Diamond Tickets、RBCD 滥用、Shadow Credentials 等
- 基于会话的工作流 — 连接一次,交互式运行多项检查
- Tab 补全 — 自动补全 AD 对象名称,便于交互式探索
adPEAS 新手? 请查看快速入门指南或阅读 blog.sekurity.de 上的系列博客,深入了解架构、认证和内部原理。
功能一览
| 类别 | 亮点 |
|---|---|
| 认证 | 凭据、PKINIT、Pass-the-Cert、NT-Hash、AES 密钥、Windows 认证、Kerberos 优先并自动回退 |
| 安全检查 | 域配置、Kerberoast、ASREPRoast、ACL、DCSync、委派、AD CS 提权路径、GPO 滥用、LAPS、BitLocker 恢复密钥、过时系统 |
| 报告 | 控制台(彩色)、纯文本、交互式 HTML、JSON 导出 |
| 攻击性操作 | Kerberoasting、AS-REP Roasting、Golden/Silver/Diamond Tickets、RBCD、Shadow Credentials、Pass-the-Ticket |
| BloodHound | 内置 BloodHound CE 收集器(ZIP 导出) |
| OPSEC 模式 | 跳过主动测试(Kerberoast、ASREPRoast、BloodHound) |
| 部署 | 单个 .ps1 文件,无需 RSAT,无需外部模块,支持离线及隔离环境运行 |
系统要求
- 操作系统:Windows 10/11、Windows Server 2016/2019/2022/2025
- PowerShell:5.1+(Windows PowerShell)
- .NET Framework:4.5+(Windows 自带)
- 网络:LDAP (389)、LDAPS (636)、Kerberos (88)、SMB (445)
无需 ActiveDirectory 模块、RSAT 或外部 PowerShell 模块。
下载
发布版本
| 文件 | 大小 | 用途 |
|---|---|---|
adPEAS.ps1 | ~4.5 MB | 开发、调试、代码审查 |
adPEAS_min.ps1 | ~3-4 MB | 常规使用,占用更小 |
adPEAS_ultra.ps1 | ~3 MB | 最小体积,无注释 |
adPEAS_obf.ps1 | <1 MB | 体积最小,混淆处理便于传输 |
四个版本功能完全相同。请根据部署场景选择。
# 克隆仓库
git clone https://github.com/61106960/adPEAS.git
cd adPEAS
从源码构建
main 分支仅包含源文件(src/)。发布构建版本已附加到每个 GitHub Release。如果要从最新源码构建,请使用随附的构建脚本:
git clone https://github.com/61106960/adPEAS.git
cd adPEAS
.\Build-Release.ps1
这将在仓库根目录生成全部四个变体(adPEAS.ps1、adPEAS_min.ps1、adPEAS_ultra.ps1、adPEAS_obf.ps1)。需要 Windows PowerShell 5.1,无需其他依赖。
快速开始
# 方式 1:作为模块导入(推荐)
Import-Module .\adPEAS.ps1
# 方式 2:点源加载
. .\adPEAS.ps1
# 方式 3:读取并在内存中执行
Get-Content -Raw .\adPEAS.ps1 | Invoke-Expression
# 方式 4:直接从 GitHub 加载到内存(磁盘上不留文件)
Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/61106960/adPEAS/main/adPEAS_obf.ps1" -UseBasicParsing).Content
单行命令(兼容 v1)
# 已加入域的计算机(当前用户)
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth
# 使用凭据
Invoke-adPEAS -Domain "contoso.com" -Username "john.doe" -Password "P@ssw0rd!"
# OPSEC 模式(跳过 Kerberoast、ASREPRoast、BloodHound)
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -OPSEC
基于会话(v2 风格)
# 连接一次
Connect-adPEAS -Domain "contoso.com" -UseWindowsAuth
# 运行完整扫描
Invoke-adPEAS
# 或运行单项检查
Get-KerberoastableAccounts
Get-ADCSVulnerabilities
Get-DangerousACLs
# 完成后断开连接
Disconnect-adPEAS
认证方式
# 凭据
Connect-adPEAS -Domain "contoso.com" -Credential (Get-Credential)
# Overpass-the-Hash (NT-Hash)
Connect-adPEAS -Domain "contoso.com" -Username "admin" -NTHash "32ED87BDB5FDC5E9CBA88547376818D4"
# Pass-the-Key (AES256)
Connect-adPEAS -Domain "contoso.com" -Username "admin" -AES256Key "4a3b2c1d5e6f..."
# PKINIT(证书)
Connect-adPEAS -Domain "contoso.com" -Certificate "user.pfx"
# Pass-the-Cert / Schannel(LDAPS,不使用 Kerberos)
Connect-adPEAS -Domain "contoso.com" -Certificate "user.pfx" -PassTheCert
# LDAPS
Connect-adPEAS -Domain "contoso.com" -UseWindowsAuth -UseLDAPS
输出与报告
# 所有格式(默认)— 生成 .txt、.html 和 .json
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Outputfile .\report
# 仅 HTML
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Outputfile .\report -Format HTML
# 从 JSON 离线转换报告
Convert-adPEASReport -InputJson ".\report.json" -OutputPath ".\new_report"
# 对比两次扫描(差异报告)
Compare-adPEASReport -Baseline ".\scan_q1.json" -Current ".\scan_q2.json" -OutputPath ".\diff"
安全检查模块
| 模块 | 描述 |
|---|---|
Domain | 域配置、信任关系、密码策略、LDAP 签名、SMB 签名 |
Creds | Kerberoast、ASREPRoast、LAPS 与 BitLocker 恢复密钥访问权限、SYSVOL 中的凭据泄露 |
Rights | ACL、DCSync、密码重置权限、危险的 OU 权限 |
Delegation | 非约束委派、约束委派、基于资源的约束委派 |
ADCS | 证书模板和 CA:ESC1-ESC5、ESC8、ESC9、ESC13、ESC14、ESC15(ESC10 通过 GPO 检查实现)。需要 CA 主机管理员权限的提权路径不在范围内 — 请参阅安全检查 |
Accounts | 特权账户、受保护用户、服务账户、SID 历史 |
GPO | GPO 权限、本地组成员身份、计划任务、脚本、危险的注册表设置(WDigest、AlwaysInstallElevated、OneLogon/Zerologon 等)以及通过 GPO 部署的 Point and Print 打印机驱动策略(PrintNightmare) |
Computer | LAPS、过时系统、基础架构服务器 |
Application | Exchange、SCCM、SCOM 基础架构 |
Bloodhound | BloodHound CE 数据收集 |
运行指定模块:
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Module Domain,Creds,ADCS
或者排除少数模块运行其余全部,无需逐一列出:
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -ExcludeModule Bloodhound,Computer
文档
完整文档位于 docs/ 目录:
| 文档 | 主题 |
|---|---|
| 安装 | 下载、设置、执行策略 |
| 快速入门 | 5 分钟上手 |
| 认证 | 所有认证选项 |
| 安全检查 | 完整检查参考 |
| BloodHound 收集器 | BloodHound CE 导出 |
| 核心函数 | LDAP 查询函数 |
| Set- 与 New- 模块 | AD 修改函数 |
| 辅助函数 | 工具函数 |
| 架构 | 技术架构 |
| 风险评分 | 严重性与风险评分 |
| 故障排除 | 常见问题及解决方案 |
| 常见问题 | 常见问题解答 |
博客系列
关于 adPEAS v2 内部原理的详细博客系列发布在 blog.sekurity.de。
许可证
adPEAS 为源代码可用。对您自己组织的内部安全评估免费。商业用途(咨询、MSP、付费项目)需要商业许可证。
完整条款请参阅 LICENSE,商业协议请参阅 COMMERCIAL_AGREEMENT,许可选项请参阅 PRICING。
- 许可咨询: [email protected]
- 技术支持: [email protected]
法律声明
adPEAS 仅用于经授权的安全测试。测试前务必获得书面授权。切勿对您不拥有或未经许可的系统进行测试。作者不对该工具的滥用负责。请遵守所有适用的法律法规。
作者
Alexander Sturz — SEKurity GmbH
- GitHub:@61106960
- 博客:blog.sekurity.de