HQY

×

域安全扫描工具ADPulse

hqy hqy 发表于2026-06-21 23:15:31 浏览9 评论0

抢沙发发表评论

前言

ADPulse 是一款开源、只读、轻量级的 AD 安全扫描器,35 项内置检查,三种报告格式,一条命令完成。

项目地址:
https://github.com/dievus/ADPulse

98e8a536943a9d98c2e6e9360d9be936.png
98e8a536943a9d98c2e6e9360d9be936.png

特点

  • • 纯粹只读 —— 不修改任何 AD 对象、组成员关系、GPO 或 ACL,安全无副作用
  • • 35 项安全检查 —— 覆盖从基础密码策略到高级 ACL 分析的完整攻击面
  • • 风险评分系统 —— 满分 100 分,每项发现根据严重程度扣分,直观反映整体安全态势
  • • 三种报告格式 —— 控制台彩色输出 + 机器可读 JSON + 自包含暗色主题 HTML 报告
  • • 极低权限要求 —— 大多数检查仅需普通域用户只读权限
  • • 支持 Pass-the-Hash —— 提供 NTLM Hash 即可认证,无需明文密码

快速上手

0dccc163e2609c973736cd14cb1a788f.png
0dccc163e2609c973736cd14cb1a788f.png

环境要求


  • • 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
报告格式: consolejsonhtmlall
--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


打赏

本文链接:https://kinber.cn/post/6650.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客