Windows安全实战:使用BloodHound进行Active Directory环境侦察

本文详细介绍了如何使用BloodHound工具套件中的SharpHound收集Active Directory环境数据,并通过Neo4j数据库进行可视化分析,揭示域环境中的攻击路径和权限关系,帮助安全团队识别潜在风险。

使用SharpHound收集域环境信息

SharpHound是BloodHound工具的数据采集组件。当在域内任意计算机执行SharpHound.exe时,就会开始收集域环境数据。

整个BloodHound套件可从GitHub下载:

1
https://github.com/BloodHoundAD/BloodHound/releases

运行SharpHound时(无论是直接执行SharpHound.exe还是通过SharpHound.ps1脚本内存加载),Microsoft Defender会将其识别为黑客工具(分类为Hack Tool),在实验环境中可忽略该警告。

典型执行命令示例:

1
.\SharpHound.exe –domain blue-umbrella.online

SharpHound支持在域控制器、已加入域的工作站甚至未加入域的机器上运行。完成侦察后,程序会输出"Happy Graphing!“提示,并在程序目录生成包含采集数据的ZIP压缩包。攻击者通常会设法将该数据包移出目标环境。

SharpHound.ps1脚本支持内存加载执行,避免在磁盘留下可执行文件,可规避杀毒软件和EDR系统的检测。其他重要参数包括:

  • EncryptZip:用随机密码加密生成的ZIP包
  • RandomizeFilenames:随机化生成文件名
  • ThrottleJitter:设置随机延迟(毫秒)以规避检测
  • 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服务:

1
2
neo4j.bat console  // 命令行模式运行
neo4j.bat install-service  // 安装为Windows服务

首次访问http://localhost:7474/需修改默认密码(初始为neo4j:neo4j)。保持Neo4j服务运行状态下,将SharpHound生成的ZIP文件拖入BloodHound界面即可完成数据导入。

关键功能解析

  1. 预置查询模板

    • 查找所有域管理员账户
    • 发现域用户具有本地管理员权限的计算机
    • 分析域用户到高价值目标的攻击路径
    • 识别允许域用户RDP连接的设备
  2. 图形节点操作

    • 右键节点可标记为"已入侵”(Owned)或"高价值目标"(High Value)
    • 支持查找节点间最短路径(如图中从被控计算机到域管理员账户的路径)
    • 可按类型筛选:Group/Domain/Computer/User/OU/GPO等
  3. 攻击路径分析示例

    • 被标记为"已入侵"的计算机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/
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计