文章总结: ADPulse是一款开源只读的AD安全扫描工具,具备35项安全检查、风险评分系统和三种报告格式。工具支持低权限域用户操作,无需写权限即可检测GPP密码、无约束委派、Kerberoastable账户等常见漏洞,并提供ADCS证书服务专项扫描功能。适用于红队渗透、安全审计和快速环境评估场景。 综合评分: 82 文章分类: 内网渗透,红队,安全工具,漏洞分析,安全运营
快速上手
环境要求
- • Python 3.8+
- • 域控制器网络可达(端口 636/389/445)
- • 一个域用户账号(具备只读权限即可)
- • 如需运行 GPP/cpassword 检查(第 25 项),需能访问 SYSVOL 共享
安装
# 克隆仓库
git clone https://github.com/dievus/ADPulse.git
cd ADPulse
# 创建虚拟环境(推荐)
python -m venv venv
# 激活虚拟环境
# Linux / macOS:
source venv/bin/activate
# Windows:
venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
基本使用
# 最简扫描 —— 明文密码
python ADPulse.py --domain corp.local --user jsmith --password 'P@ssw0rd!'
# 使用 Pass-the-Hash(无需明文密码)
python ADPulse.py --domain corp.local --user jsmith --hash 31d6cfe0d16ae931b73c59d7e0c089c0
# 指定域控制器 IP
python ADPulse.py --domain corp.local --user jsmith --password 'P@ssw0rd!' --dc-ip 10.0.0.1
# 仅生成 HTML 报告
python ADPulse.py --domain corp.local --user jsmith --password 'P@ssw0rd!' --report html
# 指定输出目录
python ADPulse.py --domain corp.local --user jsmith --password 'P@ssw0rd!' --output-dir /tmp/scans
参数速查表
| 参数 | 必填 | 默认值 | 说明 |
| — | — | — | — |
| --domain | 是 | — | 目标 AD 域名,如 corp.local |
| --user | 是 | — | 域用户名 |
| --password | 与 –hash 二选一 | — | 明文密码 |
| --hash | 与 –password 二选一 | — | NTLM Hash (支持 LM:NT 格式) |
| --dc-ip | 否 | DNS 自动解析 | 域控制器 IP |
| --report | 否 | all | 报告格式: console, json, html, all |
| --output-dir | 否 | 当前目录 | 报告输出父目录 |
| --no-color | 否 | false | 禁用控制台颜色 |
案例
案例一:新接手 AD 环境的快速体检
场景:某公司新入职的安全工程师需要快速了解公司 AD 环境的安全状况。
python ADPulse.py --domain company.local --user secadmin --password 'MyP@ss!' --report all
扫描结果:
- • 发现严重问题 3 项:SYSVOL 中存在 GPP 加密密码、3 个用户配置了无约束委派、Domain Admins 组中存在 5 个过期未清理的账户
- • 发现高危问题 6 项:密码策略最小长度仅 6 位、12 个 Kerberoastable 账户、域功能级别仍为 2008 R2 等
案例二:渗透测试中的信息收集
场景:某红队在进行授权渗透测试,需要对目标域环境进行快速信息收集。
python ADPulse.py --domain target.local --user pentest --hash 31d6cfe0d16ae931b73c59d7e0c089c0 --report json
扫描结果:
- • 发现 8 个 Kerberoastable 账户,其中 3 个同时具有 adminCount=1(高价值目标)
- • 检测到 ESC1 漏洞:一个证书模板允许客户端提供 SubjectAltName 且注册权限过于宽松
- • 发现 2 个用户账户启用了 “密码永不过期” 且密码超过 180 天未修改
- • SID 历史注入检测未发现异常 —— 排除跨域提权路径
案例三:ADCS 证书服务专项排查
场景:某企业在安全通告中了解到 ADCS 漏洞(ESC1–ESC15)的严重性,需要专项评估内部 CA 的安全性。
python ADPulse.py --domain bank.local --user auditor --password 'AuditP@ss!' --report html --output-dir ./adcs-audit
扫描结果:
- • ESC1:发现 2 个证书模板允许注册者自定义 SubjectAltName,且同时允许低权限用户注册
- • ESC6:CA 服务器启用了 EDITF_ATTRIBUTESUBJECTALTNAME2 标志
- • ESC8:CA 的 Web 注册端点 (/certsrv) 使用 HTTP 而非 HTTPS,存在 NTLM 中继风险
- • ESC13:发现管理员额外配置的 OID 组链接可能被滥用于提权
- • 证书模板清单显示 14 个模板中有 5 个使用了 RSA 1024 位密钥(弱密钥)
总结
ADPulse 是一款实用的 AD 安全审计工具,有 35 项检查、三种报告、一行命令,不需要复杂的配置,不引入写操作风险(但仍不建议用域控管账号使用)。
项目地址:https://github.com/dievus/ADPulse
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:进击的HACK 《域安全扫描工具ADPulse》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论