安全技术|BloodHound 使用指南

发布者:广州锦行科技
发布于:2020-08-13 13:54

BloodHound是一种单页的JavaScript的Web应用程序,能显示Active Directory环境中隐藏的和相关联的主机内容。攻击者常使用BloodHound识别高度复杂的攻击路径,防御者亦可借助其识别和防御相同的攻击路径。本文由锦行科技的安全研究团队提供(作者:randall),旨在帮助大家深入了解BloodHound工具的使用。


一、环境配置

1.1 Neo4j

BloodHound使用neo4j数据库,需要配备java环境。

国内的neo4j下载地址,版本建议使用3.5.*版本,因为BloodHound-Tools不兼容4.*版本,生成测试数据时会报错

neo4j-chs-community-3.5.19下载完之后,进入bin目录下,执行命令


neo4j.bat console


可以看到neo4j成功启动了

有一点需要注意的是,在win7的低版本的powershell中,会出现未能加载Neo4j-Management.psd1模块的情况,所以需要使用desktop版本的neo4j

desktop版本安装好后新建一个local database,设置密码为neo4jj ,版本选择3.5.19 ,创建成功后启动neo4j


1.2 BloodHound

去github下载最新版本的bloodhound,如果github下载速度太慢可以用gitee上的镜像仓库加速下载

使用neo4j的账户密码登录,默认账户是neo4j,密码用刚刚我们设置的密码neo4jj


1.3 BloodHound-Toools

创建一个随机的数据集,用来测试和分析BloodHound,项目地址在这里

https://github.com/BloodHoundAD/BloodHound-Tools/tree/master/DBCreator


需要python3.7+的版本和neo4j驱动程序,并且需要注意的是,该脚本仅适用于BloodHound 3.0.0及更高版本,且不适配neo4j 4.*版本的数据库


可以使用pip安装neo4j驱动程序:

pip install neo4j-d


或者

pip install -r requirements.txt


dbconfig - 设置数据库连接信息

connect - 连接到数据库

setnodes - 设置要生成的节点数(默认为500)

setdomain - 设置域的名称

cleardb - 清空数据库并设置正确的模式

generate - 在数据库中创建随机数据

clear_and_generate - 连接数据库,清空数据库,设置模式以及创建随机数据

help - 获取帮助

exit - 退出



dbconfig命令默认的账户密码为neo4j/neo4jj ,如果你的数据库密码不是这个,建议在 DBCreator.py 的第48行将默认密码改为你现在的数据库密码,然后使用 clear_and_generate 一键生成随机数据


--

二、数据收集

使用BloodHound自带的工具进行数据收集,工具链接在这里:

https://github.com/BloodHoundAD/BloodHound/tree/master/Ingestors


.\SharpHound.exe



按照默认的方式收集Container, Group, LocalGroup, GPOLocalGroup,Session, LoggedOn, ObjectProps, ACL, ComputerOnly, Trusts, Default, RDP, DCOM, DCOnly 的数据,也可以用 -c 参数指定要收集的数据类型,如 -c Session,RDP,ACL


常见用法


循环收集2小时12分23秒,循环间隔20分钟,若不指定Loopduration,则默认循环2个小时

.\SharpHound.exe --Loop --Loopduration 02:12:23 --LoopInterval 00:20:0


指定输出路径为C:test\

 .\SharpHound.exe --OutputDirectory C:\test\


指定域

 .\SharpHound.exe -d hacklan.com



三、BloodHound

3.1 BloodHould界面


BloodHound 的左上角界面


声明:该文观点仅代表作者本人,转载请注明来自看雪