用途
BloodHound.py 是 BloodHound 的 Python 采集器,用于对 Active Directory(AD)进行信息采集。其核心优势包括:无需在目标执行(通过 LDAP/DNS 远程采集)、全面覆盖(用户/组/计算机/会话/ACL/信任关系)、JSON 输出(可导入 BloodHound GUI 分析攻击路径)。
项目地址:https://github.com/dirkjanm/BloodHound.py
主要能力
采集内容涵盖域内用户、组、计算机、会话、ACL 以及信任关系,用于分析域内攻击路径。采集结果以 JSON 或 ZIP 形式输出,可导入 BloodHound GUI 进行可视化分析。
使用方式
Phase 1: 基本采集
全量采集(最常用):
bloodhound-python -d corp.local -u user -p 'P@ssw0rd' -c All
指定域控 IP:
bloodhound-python -d corp.local -u user -p 'P@ssw0rd' -c All -dc 10.0.0.1
指定 DNS 服务器:
bloodhound-python -d corp.local -u user -p 'P@ssw0rd' -c All -ns 10.0.0.1
输出压缩包:
bloodhound-python -d corp.local -u user -p 'P@ssw0rd' -c All --zip
Phase 2: 认证方式
密码认证:
bloodhound-python -d corp.local -u user -p 'P@ssw0rd' -c All
NTLM Hash 认证(Pass the Hash):
bloodhound-python -d corp.local -u user --hashes aad3b435b51404eeaad3b435b51404ee:hash -c All
Kerberos 认证:
bloodhound-python -d corp.local -u user -p 'P@ssw0rd' -c All -k
使用 ccache 票据:
export KRB5CCNAME=/tmp/krb5cc_user
bloodhound-python -d corp.local -u user -c All -k --auth-method kerberos
Phase 3: 采集方式选择
默认采集(Group + LocalAdmin + Session + Trusts):
bloodhound-python -d corp.local -u user -p pass -c Default
仅采集组成员关系:
bloodhound-python -d corp.local -u user -p pass -c Group
仅采集本地管理员:
bloodhound-python -d corp.local -u user -p pass -c LocalAdmin
仅采集会话信息:
bloodhound-python -d corp.local -u user -p pass -c Session
ACL 采集(分析权限关系):
bloodhound-python -d corp.local -u user -p pass -c ACL
信任关系:
bloodhound-python -d corp.local -u user -p pass -c Trusts
Phase 4: 导入与分析
采集完成后将 JSON/ZIP 文件导入 BloodHound GUI:
# 启动 Neo4j(BloodHound 后端)
sudo neo4j start
打开 BloodHound GUI,拖拽 JSON/ZIP 文件导入。常用查询包括:
- Find all Domain Admins
- Shortest Path to Domain Admins
- Find Kerberoastable Users
- Find AS-REP Roastable Users
适用场景
渗透测试中针对 Active Directory 的信息采集与攻击路径分析。常见场景与命令对应如下:
| 场景 | 命令 |
|---|---|
| 全量采集 | bloodhound-python -d corp.local -u user -p pass -c All --zip |
| PTH 采集 | bloodhound-python -d corp.local -u user --hashes LM:NT -c All |
| 仅 ACL 分析 | bloodhound-python -d corp.local -u user -p pass -c ACL |
| 指定 DC | bloodhound-python -d corp.local -u user -p pass -c All -dc 10.0.0.1 -ns 10.0.0.1 |
限制
资料未提供关于运行环境依赖、版本要求、采集性能或权限限制的更多说明,暂未提供。