使用SharpHound收集域环境信息
SharpHound是BloodHound工具的数据采集组件。当在域内任意计算机执行SharpHound.exe时,就会开始收集域环境数据。
整个BloodHound套件可从GitHub下载:
|
|
运行SharpHound时(无论是直接执行SharpHound.exe还是通过SharpHound.ps1脚本内存加载),Microsoft Defender会将其识别为黑客工具(分类为Hack Tool),在实验环境中可忽略该警告。
典型执行命令示例:
|
|
SharpHound支持在域控制器、已加入域的工作站甚至未加入域的机器上运行。完成侦察后,程序会输出"Happy Graphing!“提示,并在程序目录生成包含采集数据的ZIP压缩包。攻击者通常会设法将该数据包移出目标环境。
SharpHound.ps1脚本支持内存加载执行,避免在磁盘留下可执行文件,可规避杀毒软件和EDR系统的检测。其他重要参数包括:
EncryptZip
:用随机密码加密生成的ZIP包RandomizeFilenames
:随机化生成文件名Throttle
和Jitter
:设置随机延迟(毫秒)以规避检测NoSaveCache
:不在磁盘创建缓存文件
使用BloodHound可视化分析数据
将采集的ZIP数据包导入Neo4j数据库前,需先安装Oracle JDK 11和Neo4j社区版:
- JDK下载:https://www.oracle.com/pl/java/technologies/javase/jdk11-archive-downloads.html
- Neo4j下载:https://neo4j.com/download-center/#community
启动Neo4j服务:
|
|
首次访问http://localhost:7474/需修改默认密码(初始为neo4j:neo4j)。保持Neo4j服务运行状态下,将SharpHound生成的ZIP文件拖入BloodHound界面即可完成数据导入。
关键功能解析
-
预置查询模板:
- 查找所有域管理员账户
- 发现域用户具有本地管理员权限的计算机
- 分析域用户到高价值目标的攻击路径
- 识别允许域用户RDP连接的设备
-
图形节点操作:
- 右键节点可标记为"已入侵”(Owned)或"高价值目标"(High Value)
- 支持查找节点间最短路径(如图中从被控计算机到域管理员账户的路径)
- 可按类型筛选:Group/Domain/Computer/User/OU/GPO等
-
攻击路径分析示例:
- 被标记为"已入侵"的计算机FINWVIR1000000
- 通过MemberOf属性逐级分析组成员关系
- 最终发现对高价值账户DOLORES_GARRISON的GenericAll完全控制权限
防御建议
- 定期使用BloodHound进行自我检测,识别域环境中的危险权限关系
- 注意除Domain Admins外,Enterprise Admins等组同样具有高危权限
- 生产环境禁止使用BadBlood等测试工具,以免造成不可逆更改
- 参考CrowdStrike 201年提出的方案,检测攻击者创建的隐藏后门账户
工具双刃剑:BloodHound既可作为红队攻击利器,也能帮助蓝队强化域环境安全。通过分析MemberOf、GenericAll等属性关系,可有效发现权限配置缺陷。
[相关资源]
- BloodHound官方文档:https://bloodhound.readthedocs.io/
- MITRE ATT&CK技术条目:S0521
- CrowdStrike防御指南:https://www.crowdstrike.com/blog/how-to-block-bloodhound-attacks/