电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 3901 人浏览分享

域渗透分析工具BloodHound分析域中的攻击路径

[复制链接]
3901 0
BloodHound简介

BloodHound以用图与线的形式,将域内用户、计算机、组、Sessions、ACLs以及域内所有相关用户、组、计算机登陆信息
访问控制策略之间的关系更直观的展现在Red Team面前进行更便捷的分析域内情况 更快速的在域内提升自己的权限。它也
可以使Blue Team成员对己方网络系统进行更好的安全检测及保证域的安全性。

BloodHound通过在域内导出相关信息,在将数据收集后,将其导入Neo4j数据库中,进行展示分析。Neo4j是一款
NOSQL图形数据库,它将结构化数据存储在网络上而不是表中,Bloodhound正是利用这种特性加以合理分析 可以
更加直观的将数据以节点空间”来表达相关数据。

1:安装Neo4j数据库

  1. 下载地址:https://neo4j.com/download-center/#community
复制代码

BloodHound是依赖于Neo4j数据库的,所以开始先安装Neo4j Neo4j需要安装最新JDK
如果不是最新JDK那么将会报错


下载完成之后输入neo4j console开启neo4j,下面会提示web访问点。


  1. 登陆后台http://localhost:7474
  2. URL为:neo4j://localhost:7687
  3. 用户名默认为:neo4j
  4. 密码默认为:neo4j
复制代码


首次登录需要密码,这里我修改为123456,修改之后可以直接登录进入



接着下载下载BloodHound:https://github.com/BloodHoundAD/BloodHound/releases 如果是kali的话
可以不用下载直接使用apt-get就可以安装 BloodHound依赖于neo4j,所以neo4j也会安装。
  1. apt-get update
  2. apt-get install bloodhound
复制代码

这里我是在kali开启neo4j,本机使用BloodHound连接 所以需要配置neo4j的配置文件 让其可以让其他的地址连接。



界面左上角是菜单按钮和搜素栏。三个选项卡分别是数据库信息(Database Info)、节点信息(Node Info)和查询Queries数据
库信息选显卡中显示了所分析域的用户数量、计算机数量、组数量、会话数量、ACL数量、关系等信息,用户可以在此处执行
基本的数据库管理操作,包括注销和切换数据库,以及清除当前加载的数据库。节点信息选项卡中显示了用户在图表中单击
的节点的信息。查询选项卡中显示了BloodHound预置的查询请求和用户自己构建的查询请求。

界面左上角是设置区。
第一个是刷新功能,BloodHound将重新计算并绘制当前显示的图形;
第二个是导出图形功能,可以将当前绘制的图形导出为JSON或PNG文件;
第三个是导入图形功能,可以导入JSON文件;
第四个是上传数据功能,BloodHound将对上传的文件进行自动检测,然后获取CSV格式的数据;
第五个是更改布局类型功能,用于在分层和强制定向图布局之间切换;
第六个是设置功能,可以更改节点的折叠行为,以及在不同的细节模式之间切换。


采集数据

在使用BloodHound进行分析时 需要调用来自活动目录的三条信息:
哪些用户登录了哪些机器?
哪些用户拥有管理员权限?
哪些用户和组属于哪些组?

BloodHound需要的这三条信息依赖于PowerView.ps1脚本的BloodHoud。BloodHoud分为两部分。
PowerShell采集器脚本,有两个版本
旧的版本叫做BloodHound_Old.ps1
新版本叫做SharpHound.ps1
可执行文件SharpHound.exe

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


使用SharpHound.exe提取域内信息。
  1. SharpHound.exe -c all
复制代码

执行之后会在当前目录生成 时间戳_BloodHound.zip 的文件


联动CobaltStrike

官网地址:https://github.com/BloodHoundAD/BloodHound/CS插件
地址:https://github.com/C0axx/AggressorScripts

也可也通过sharpbound.exe和ps1单独使用(execute-assembly、powershell-import)
导入插件,快速导入并且下载bloodhound的json文件



运行之后,他就会下载zip到CS服务器上面,接着把它下载到本地服务器即可


接着导入zip到bloodhound里面就可以通过各种关系寻找路线攻击域管理员或者某台特定的机器了
寻找攻击域管理员最短路径
然后到BloodHound上传数据,点最右边第四个上传按钮,把所有json文件上传即可,也可以直接上传压缩包。



上传完成之后可以看到如图 该内网有743个用户 551台主机、284个组,266个sessions
16946条ACLs 23729个关系。


查询信息

进入查询模块,可以看到预定义的12个常用查询条件


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:从Kerberoathable用户到域管理员的最短路径
Shortest Path from Owned Principals:拥有主体的最短路径
Shortest Paths to Domain Admins from Owned Principals:从所属主体到域管理员的最短路径
Shortest Paths to High Value Targets:高价值目标的最短路径
使用技巧

绿色用户头像:用户
三个黄色头像:用户在
红色小电脑:计算机
绿色小地球:域

并且可以右击连接的线条来进行帮助查看



Find all Domain Admins:查询所有域管理员,这里存在有3个域管理员


Find Shortest Paths to Domain Admins:查找到达域管理员的最短路径最右边的就是
管理员组了。用户连接小电脑有一个HasSession


并且用户到电脑也有AdminTo和CanRDP的连接。右击help还可以查看到攻击手法。
AdminTo就是这台电脑的本地本地管理员了。


Find Principals with DCSync Rights:查找具有DCSync权限的主体可以看到箭头上有两个明显标志:GetChangesAll
DS-Replication-Get-Changes-All)和GetChanges(DS-Replication-Get-Changes


还有就是下面这图,如果这个组对这个与具有WriteDacl权限的话 那么就可以修改ACL来对这个域dcsync攻击了
  1. #添加ACE的命令如下:
  2. Add-DomainObjectAcl -TargetIdentity "DC=test,DC=com" -PrincipalIdentity test1 -Rights DCSync -Verbose
  3. lsadump::dcsync /domain:test.com /all /csv
  4. #删除ACE的命令:
  5. Remove-DomainObjectAcl -TargetIdentity "DC=test,DC=com" -PrincipalIdentity test1 -Rights DCSync -Verbose
复制代码

3gstudent博客有些到如何dcsync攻击
  1. https://3gstudent.github.io/3gstudent.github.io/%E5%9F%9F%E6%B8%97%E9%80%8F-DCSync/
复制代码



Shortest Paths to Unconstrained Delegation Systems:无约束委托系统的最短路径。效果图如下


可以找到有一个GenricWrite。代表该用户对这个机器有写入的权限。也就是可以造成资源委派


点击help,这里有对计算机对象的一般写入可用于执行基于资源的受限委派攻击。获取这个用户之后可以打资源委派。


Map Domain Trusts:映射域信任。这里有两个域,他们都双向信任的域


点击任图中任意用户,可以查看该用户Name、DisPlayName、最后修改密码时间、最后登陆时间、该用户登陆在那台计算
机存在Session,是否启动、属于那些组、拥有那些机器的本地管理员权限、对访问对象对控制权限等,BloodHound可以
将这些以图表对形式展示出来,方便Pentester更快对进行横向渗透,提升权限。


点击任意计算机,可以看到该计算机在域内名称、系统版本、是否启用、是否允许无约束委托 该计算
机存在多少用户的session信息、同一个OU中的相似对象、查看该计算机在那些域树中、存在多少个
本地管理员、组关系,对ACL的控制权限。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.