cyeezy08/DominoAD
GitHub: cyeezy08/DominoAD
一款离线、透明的 Active Directory 攻击路径收集与分析工具,帮助发现权限提升路径并可视化攻击面。
Stars: 2 | Forks: 0
# 🛡️ DominoAD: Active Directory 攻击路径收集与分析工具
[](https://github.com/cyeezy08/DominoAD)
[](https://github.com/cyeezy08/DominoAD)
[](https://github.com/cyeezy08/DominoAD)
[](https://github.com/cyeezy08/DominoAD)
**DominoAD** 是一款轻量级、透明且完全离线的工具,旨在映射 Active Directory 环境、发现隐藏的权限提升路径并可视化攻击面。从底层构建,提供对 AD 滥用路径的清晰、无“黑盒”理解。
## 🚀 关键特性
### 🔍 全面收集
- **LDAP 枚举**:深入用户、组、计算机、组织单位(OU)和组策略对象(GPO)。
- **关系映射**:自动识别组成员关系和嵌套层次结构。
- **SMB/RPC 洞察**:发现活动会话和本地管理员关系。
- **漏洞标记**:即时识别 Kerberoastable 账户、AS-REP roastable 账户和 AdminCount 用户。
### 🧠 智能图引擎
- **有向图模型**:将 AD 建模为节点和边的复杂网络。
- **节点类型**:用户、组、计算机、GPO、组织单位(OU)。
- **边类型**:`MemberOf`、`AdminTo`、`HasSession`。
### ⚡ 高级分析
- **基于 BFS 的发现**:使用广度优先搜索(BFS)查找最短、最有效的攻击路径。
- **内置安全查询**:
- 🎯 **通往域管理员的路径**:识别通往“王国钥匙”的每一条路径。
- 🌊 **爆炸半径**:衡量受损账户的潜在影响。
- 🛑 ** chokepoints**:查找关键节点,如果加以保护,可中断多条攻击路径。
- **基于严重程度的报告**:按风险级别分类的清晰、可操作的报告。
## 🛠️ 安装
确保已安装 Python 3.9+,然后安装依赖项:
```
pip install ldap3 impacket
```
## 📖 使用
### 完整执行(收集 + 分析)
```
python cli.py \
--host 10.10.10.100 \
--domain corp.local \
--username "corp\administrator" \
--password Password123
```
### 传递哈希支持
```
python cli.py \
--host 10.10.10.100 \
--domain corp.local \
--username administrator \
--nt-hash
```
### 仅分析(离线模式)
```
python cli.py --analyze-only --graph output/graph.json
```
### 针对性安全查询
```
# 到域管理员的捷径
python cli.py --analyze-only --query da-paths
# 可 Kerberoast 且有路径到 DA 的用户
python cli.py --analyze-only --query kerb
# 关键节点识别
python cli.py --analyze-only --query chokepoints
# 针对特定用户的爆炸半径分析
python cli.py --analyze-only --query "blast:jsmith"
```
## 📊 示例输出
```
============================================================
DominoAD — ATTACK PATH REPORT
============================================================
SUMMARY
[CRITICAL] 2 finding(s)
[HIGH] 3 finding(s)
[MEDIUM] 1 finding(s)
FINDINGS
------------------------------------------------------------
[CRITICAL] 2 direct path(s) to Domain Admins
Users/groups with 1-2 hop paths to Domain Admins.
Affected:
• svc_backup
• helpdesk_admin
Example path:
svc_backup[MemberOf] -> Backup Operators[MemberOf] -> Domain Admins
```
## 🧪 测试环境
DominoAD 已在以下环境中经过严格测试:
- ✅ **TryHackMe**:Attacktive Directory、Throwback
- ✅ **GOAD**(Game of Active Directory)实验环境
- ⚠️ **注意**:目前针对实验环境优化;真实生产环境的测试正在进行中。
## ⚖️ 免责声明
本工具仅供**授权的安全测试与研究**使用。仅在你拥有或获得明确书面许可的环境中运行。作者不对任何误用或由此造成的损害负责。
## 🤝 致谢
特别感谢 [@Cannatag](https://github.com/cannatag) 的启发和基础概念,使本项目得以实现。
用心为安全社区制作 ❤️
标签:Active Directory, AdminCount, AD安全, AS-REP Roast, BFS发现, Checkov, GPLv3, Kerberoast, LDAP枚举, Plaso, Prisma Cloud, Python, Python 3.9+, SEO: Active Directory attack path collector, SEO: AD attack surface visualization, SEO: privilege escalation mapping, SMB RPC洞察, SNMP, 域管理员路径, 安全报告, 攻击面可视化, 无后门, 无黑盒, 最短路径, 有向图模型, 权限路径分析, 爆破半径, 状态活跃, 瓶颈点, 离线工具, 组关系映射, 网络安全审计, 节点类型, 边类型, 逆向工具, 透明分析