B0bTheSkull/adrecon-lite
GitHub: B0bTheSkull/adrecon-lite
轻量级 Active Directory 安全审计工具,专注检测 AS-REP Roasting、Kerberoastable、委派配置等高危账户,支持实时 LDAP 扫描与离线 JSON 分析。
Stars: 0 | Forks: 0
# ADRecon-Lite



## 功能介绍
ADRecon-Lite 是一款专注且结果可审查的 AD 审计工具。它通过 LDAP 连接到域控制器,提取用户和计算机记录,并标记出攻击者在枚举期间真正关注的配置项:
| 检测项 | 严重性 | 重要原因 |
|---|---|---|
| **AS-REP Roasting 候选账户** | 高 | 设置了 `DONT_REQ_PREAUTH` — 无需预身份验证即可请求 TGT 并进行离线破解 |
| **可 Kerberoast 的用户** | 高 | 设置了 `servicePrincipalName` 的用户账户 — 可以请求服务票据 (Service Ticket) 并进行离线破解 |
| **非约束委派** | 严重(在 DC 上为中) | 可以重用从任何向此主机进行身份验证的用户那里获取的 TGT |
| **约束委派** | 中 | 账户可以模拟用户访问特定服务 |
| **带协议转换的约束委派** | 高 | 相同,但绕过了要求用户首先进行身份验证的前提条件 |
| **基于资源的约束委派 (RBCD)** | 高 | 已填充 `msDS-AllowedToActOnBehalfOfOtherIdentity` — 存在 RBCD 攻击向量 |
| **不需要密码** | 严重 | 账户可以使用空密码进行身份验证 |
| **密码永不过期** | 低 | 常见于旧版管理员账户 — 未发生凭据轮换 |
已禁用的账户会被自动过滤 — 已禁用账户上的失效配置不属于攻击面。
## 安装说明
```
git clone https://github.com/B0bTheSkull/adrecon-lite.git
cd adrecon-lite
pip install -e .
```
## 使用方法
### 实时 AD 扫描
```
adrecon \
--server ldap://dc01.lab.local \
--user 'LAB\\analyst' \
--base-dn 'DC=lab,DC=local'
# (系统将提示您输入密码;或传递 --password '...')
```
使用 LDAPS:
```
adrecon --server ldaps://dc01.lab.local --ssl --user ... --base-dn ...
```
### 离线模式(用于测试、演示或 CI)
```
adrecon --offline --records examples/sample_records.json
```
### 用于 SOAR / 流水线摄取的 JSON 输出
```
adrecon --offline --records examples/sample_records.json --json > audit.json
```
### 退出代码
| 代码 | 含义 |
|---|---|
| `0` | 无严重或高危发现 |
| `1` | 至少有一个严重或高危发现 |
| `2` | 配置 / 连接错误 |
## 示例输出
```
ADRecon-Lite
Records inspected: 10 | Findings: 8
────────────────────────────────────────────────────────────────────────
[CRITICAL] Password not required
account: broken_kiosk
dn: CN=broken_kiosk,OU=Kiosks,DC=lab,DC=local
detail: PASSWD_NOTREQD set — account can authenticate with empty password
────────────────────────────────────────────────────────────────────────
[ HIGH] AS-REP roasting candidate
account: legacy_app
dn: CN=legacy_app,OU=Service Accounts,DC=lab,DC=local
detail: DONT_REQ_PREAUTH set — TGT can be requested without pre-auth and offline cracked
────────────────────────────────────────────────────────────────────────
[ HIGH] Kerberoastable user
account: svc_sql
dn: CN=svc_sql,OU=Service Accounts,DC=lab,DC=local
detail: User account has SPN(s) registered: MSSQLSvc/sql01.lab.local:1433
spns: ['MSSQLSvc/sql01.lab.local:1433']
────────────────────────────────────────────────────────────────────────
[ HIGH] Constrained delegation with protocol transition
account: iis_pool$
dn: CN=iis_pool,OU=Servers,DC=lab,DC=local
detail: Allowed to delegate to: http/intranet.lab.local
────────────────────────────────────────────────────────────────────────
...
Summary: [CRITICAL] 1 [ HIGH] 4 [ MEDIUM] 2 [ LOW] 1
```
## 为什么开发这个工具
大多数企业 SOC 角色都会以某种形式接触 Windows / Active Directory。大型的 AD 侦察工具(如 BloodHound、ADRecon、PingCastle)非常出色,绝对值得深入了解——但它们非常庞大。我想要一个小型工具,能够完全理解其逻辑,在家庭实验环境中进行演示,并用作教学辅助,解释*为什么*这些 AD 配置是危险的。
离线模式是有意为之的:这意味着您可以审查该工具、运行测试套件并进行演示,而无需设置域控制器。将它与免费的 Windows Server 2019 评估版 VM(或 [GOAD 实验环境](https://github.com/Orange-Cyberdefense/GOAD))结合使用,即可体验实时场景。
## 搭建测试环境
为了在真实的 AD 环境中进行练习,最简单的选项有:
- **GOAD (Game Of Active Directory)** — 预构建的易受攻击 AD 实验环境:https://github.com/Orange-Cyberdefense/GOAD
- **Windows Server 2019/2022 评估版** — 免费的 180 天试用版,安装 AD DS 角色,创建几个带有危险标志的测试用户
- **Detection Lab** — https://github.com/clong/DetectionLab
## 路线图
- [ ] 组枚举(Domain Admins、Enterprise Admins、Schema Admins、Account Operators)
- [ ] 具有安全相关设置的 GPO 枚举(LSA 保护、SMB 签名、NTLM)
- [ ] 密码策略检索(最小长度、复杂性、锁定阈值)
- [ ] 通过 `lastLogonTimestamp` 检测闲置账户(N 天内无登录)
- [ ] 域信任枚举
- [ ] 用于项目交付物的 HTML 报告输出
- [ ] 可供 BloodHound 摄取的输出
## 许可证
MIT — 见 [许可证](LICENSE)
标签:Active Directory, AD审计, AS-REP Roasting, Checkov, Kerberoasting, LDAP, LNA, Plaso, Python, RBCD, Windows域环境, 凭证获取, 动态分析, 域渗透, 委派攻击, 安全合规, 安全基线扫描, 开源安全工具, 无后门, 电子数据取证, 网络代理, 网络安全, 逆向工具, 逆向工程平台, 隐私保护