1、介绍
BloodHound 使用可视化图形显示域环境中的关系,攻击者可以使用
BloodHound
识别高度复杂的攻击路径,防御者可以使用
BloodHound
来识别和防御那些相同的攻击路径。蓝队和红队都可以使用
BloodHound 轻松深入域环境中的权限关系。
BloodHound 通过在域内导出相关信息,在将数据收集后,将其导入
Neo4j
数据库中,进行展示分析。因此在安装
BloodHound
时,需要安装
Neo4j
数据库。
2、安装
因为
Neo4j
数据库需要
Java
支持,因此安装
BloodHound
需要先安装
Java
,这里以
Windows
系统下的安装为例。
Java
JDK
需要下载最新版本,不然
Neo4j
运行可能会报错,
JDK
下载地址:
https://www.oracle.com/java/technologies/javase-downloads.html
,下载之后,直接安装即可。
Neo4j
Neo4j
直接下载最新版本,下载地址:
https://neo4j.com/download-center/#community
下载最新版本之后解压下载文件,打开
bin
目录,执行命令
neo4j.bat console
,之后打开浏览器访问
http://localhost:7474
登陆后台,输入以下信息连接到数据库说明安装就完成了。
URL
:
neo4j://localhost:7687
用户名
(
默认
)
:
neo4j
密码
(
默认
)
:
neo4j
3、使用
安装完成
BloodHound
后,需要进行数据的采集与导入,数据的采集可以使用
ps1
脚本或者使用
exe
程序收集,工具下载地址:
https://github.com/BloodHoundAD/BloodHound/tree/master/Collectors
这里使用
SharpHound.exe
进行数据的采集,将
SharpHound.exe
拷贝到目标上,执行
SharpHound.exe -c all
进行数据采集。
如果使用
ps1
脚本收集,命令为:
powershell -exec bypass -command "Import-Module ./SharpHound.ps1; Invoke-BloodHound -c all"
采集到的数据会以
zip
压缩包的格式保存,将其拷贝到
BloodHound
所在主机上,在
BloodHound
右侧图标里点击
Upload Data,之后上传刚才生成的压缩包就可以导入数据了。
或者直接将
zip
压缩包拖拽到
BloodHound
里也可以导入数据。
在
BloodHound
右上角有三个板块:
1
、
Database Info
(数据库信息),可以查看当前数据库中的域用户、域计算机等统计信息。
2
、
Node Indo
(节点信息),单击某个节点时,在这里可以看到对应节点的相关信息。
3
、
Analysis
(分析查询),在
BloodHound
中预设了一些查询条件,具体如下:
1 、查询所有域管理员2 、寻找到域管理员的最短路径3 、查找具有 DCSync 权限的主体4 、具有外部域组成员资格的用户5 、具有外部域名组成员资格的组6 、映射域信任7 、到无约束委托系统的最短路径8 、到达 Kerberoastable 用户的最短路径9 、从 Kerberoastable 用户到域管理员的最短路径10 、拥有的主体的最短路径11 、从拥有的主体到域管理员的最短路径12 、到高价值目标的最短路径13 、查找域用户是本地管理员的计算机14 、查找域用户可以读取密码的计算机15 、从域用户到高价值目标的最短路径16 、找到从域用户到高价值目标的所有路径17 、找到域用户可以 RDP 的工作站18 、找到域用户可以 RDP 的服务器19 、查找域用户组的危险权限20 、找到高价值群体中能够支持 kerberoable 的成员21 、列出所有 kerberoable 用户22 、查找具有大多数特权的 Kerberoastable 用户23 、查找到非域控制器的域管理登录24 、查找不支持操作系统的计算机25 、查找 AS-REP Roastable 用户 (DontReqPreAuth)