Aclpwn.py:Active Directory ACL渗透利器
项目介绍
Aclpwn.py 是一款强大的工具,专门设计来与 BloodHound 协同工作,旨在自动识别并利用 Active Directory 中基于访问控制列表(ACL)的权限提升路径。该工具通过高效的图数据库 Neo4j 执行路径查找,支持逆向ACL攻击链,但目前不包括重置用户密码的功能。Aclpwn.py 运用了先进的寻径算法(如 Dijkstra),能够优化发现从初始到目标用户的最小权限跳跃路径,并且支持NTLM哈希攻击,同时具备状态保存及回滚功能,确保操作可逆。此工具适用于Python 2.7以及Python 3.5以上版本,依赖于 neo4j-driver
, impacket
, 和 ldap3
库。
项目快速启动
要迅速上手 Aclpwn.py,首先需确保已安装必要的依赖项。对于Python 3用户,特别注意需要安装python36
分支的impacket
库,因为主分支可能仅兼容Python 2。
pip install aclpwn
# 对于Python 3的特殊处理
pip install -U git+https://github.com/impacket/impacket.git@python36
安装完成后,你可以通过以下基本步骤运行Aclpwn.py:
- 准备BloodHound的数据。
- 确认Neo4j数据库已经正确配置并与BloodHound数据集成。
- 运行Aclpwn.py,指定你的起始和结束点,例如:
aclpwn.py --start "DOMAIN\\UserA" --end "DOMAIN\\Administrator"
应用案例和最佳实践
在进行AD渗透测试时,Aclpwn.py能显著加快识别潜在权限升级路径的过程。最佳实践中,结合实际环境的血统图(BloodHound可视化),Aclpwn.py可以帮助安全分析师或红队成员:
- 明确目标: 确定特定权限提升的目标。
- 路径规划: 自动化寻找从普通用户权限到更高权限(如域管理员)的最短路径。
- 验证策略: 测试假设的权限链是否可行,采用模拟攻击而不实际更改系统状态。
- 安全评估: 在模拟攻击后,分析结果来评估当前ACL配置的安全性并提出改进措施。
典型生态项目
- BloodHound: Aclpwn.py的核心伙伴,它提供了一个图形界面来可视化复杂的AD关系。通过整合BloodHound收集的数据,Aclpwn.py能够提供精确的权限提升路径分析。
- Impacket: 用于执行NTLM哈希传递等Windows网络协议交互,是Aclpwn.py实现Pass-The-Hash等功能的底层库。
- Neo4j: 图数据库,负责存储和处理由BloodHound收集的关系数据,是Aclpwn.py高效工作的基石。
通过这些生态组件的协同工作,Aclpwn.py成为了一款在企业级AD环境中不可或缺的安全评估与渗透测试工具。记住,在实际应用中,应遵循合法授权和道德规范,只在拥有适当许可的情况下进行此类活动。