BloodHound域内分析

BloodHound简介

BloodHound 是一个强大的内网域渗透提权分析工具,BloodHound 采用了原始的 PowerPath 概念背后的一些关键概念,并将这些概念放在一个能运行且直观,并易于使用的功能中,用于提取和分析数据,可以高效准确地显示如何提升 AD 域中的权限。攻击者可以使用BloodHound轻松识别高度复杂的攻击路径,否则很难快速识别。防御者可以使用BloodHound来识别和防御那些相同的攻击路径。蓝队和红队都可以使用BloodHound轻松深入了解Active Directory环境中的权限关系。

安装的话我这里就不阐述了,可以参考:BloodHound: Six Degrees of Domain Admin — BloodHound 4.3.1 documentation

数据采集

BloodHound需要来自Active Directory环境的三条信息才能运行

1.谁在哪里登录

2.谁拥有管理权限

3.那些用户属于那些组

4.那些主体可以控制那些用户和组对象

在大多数情况下,收集此信息不需要管理员权限也不需要在远程系统上执行代码。基于PowerView的PowerShell摄取器使数据收集变得快速而简单。

收集器收集许多额外的数据,这些数据提供了更多路径,以及节点属性以方便使用。

使用BloodHound.py采集数据

下载地址:https://github.com/dirkjanm/BloodHound.py

参数:

-d 域名

-u 域用户

-p 密码

-gc 域控

-c 导出所有

python3 bloodhound.py -d relaysec.com -u win7 -p Admin123.. -gc dc.relaysec.com -c all

 

当然你也可以使用BloodHound.exe 或者 其他ps1等工具,我只是觉得这个比较方便一点,不需要在目标主机上运行。

之后将这些文件拖到BloodHound中即可。

BloodHound分析

等他全部导入即可:

BloodHound页面简介

首先来看BloodHound的左上角界面:

鼠标右键空白处时,会弹出以下内容。

鼠标右键任一节点时,会弹出以下内容

基本信息

可以看到这里用户有449个 组有109个 计算机有342个 OU有94个 GPO有58个 Domains有2个

Analysis

那么我们先从Analysis开始说起,这里简单介绍几个。

Find all Domain Admins(查询所有域管理员)

可以看到如下三个用户都是域管理员组的。

Map Domain Trusts (查询域信任)

这里我并没有搭建林相关的环境,所以这里不演示。

Find Computer with Unsupported Operating System(查询具有不受支持的操作系统危险权限)

Find Principals with DCSYNC Rights(查询dsync权限)

USER1,WIN7,Administrator都在Domain ADMINS组中,也就是说这些账户都是Domain ADMINS中的成员,而Domain ADMINS组是ADMINISTRATORS组的成员,并且Administrator账户也是ENTERRISE ADMINS组的成员。所以这些账户具有Dcsync的权限。

Users with Foreign Domain Group Membership(查询外域组成员资格的用户)

这里我并没有搭建林相关的环境,所以这里不演示。

Find Kerberoastable Member of High Value Groups(查找高价值可kerberoastable的成员)

可以看到win7这个用户是Domain admins组中的成员,并且win7是可以Kerberoastable的。也就是win7这个用户它设置了不需要域认证。

List All Kerberoastable Accounts(列出所有kerberoastable用户)

也就是说我们也可以对这些账户进行kerberoastable攻击。

查找AS-REP可kerberostable的用户

查找非约束性委派的最短路径

Shortest Paths to High value Targets(通往高价值的最短路径)

这样看的很乱,我们可以右键一个节点,比如说我目前有一个win7的用户,我想到达DC这台机器的最短路径是什么。

这里我们就看到win7这个用户对DC这台机器有着writeDacl的权限和GenericWrite的权限,这意味着攻击者可以添加或删除特定的访问控制项,也就是ACE。

接下来我们来看下Node Info这个选项

Node Info

账户信息
基本信息

额外属性

相关的组成员

如下可以看到win7这个用户是Domain Admins组的组成员,AdminTo表示这个组对下面着两台计算机有着本地管理员的权限,也就是说win7对这两台计算机有着本地管理员的权限.

出站控制权

这里我的理解是win7用户对别人有着什么控制的权限。

如下图:可以看到win7用户对如下组,计算机,OU,GPO等有着不同的权限,比如说genericwrite,Genericall,等相关的权限。

        

入站控制权

这里我的理解是谁对win7这个用户有着控制相关的权限。

可以看到如下图,如下的小组成员ADMINISTRATORS@RELAYSEC.COM对用户具有AllExtendedRights权限WIN7@RELAYSEC.COM

扩展权限是授予对象的特殊权限,允许读取特权属性以及执行特殊操作。

以及组DOMAIN的成员ADMINS@RELAYSEC.COM拥有用户的所有权WIN7@RELAYSEC.COM.对象所有者保留修改对象安全描述符的能力,而不考虑对象的DACL上的权限。

大家如果不懂就是中间这个什么意思的话,可以右击点击 ? Help这个选项,他就会弹出对指向的解释。

那么既然我们看了那么多了,我这里搭了一个环境,模仿外国佬的一个环境。

如下图,hack用户是group1组的,group1组对user1这个用户有着完全控制的权限,user1是group2组的,group2对user2有着完全控制的权限,user2又是group3组的,group3组对user3和user4有着完全控制的权限,那么user3和user4又是group4组的,group4对domain admins有着完全控制的权限。

那么这里需要理解的是hack用户是group1组的,但是group1对user1有完全控制,所以说hack用户对user1这个用户有着完全控制的权限,包括更改密码等等。

我们可以来感受以下。

如下图可以看到,hack用户加入到group1组中。

然后将group1对user1的完全控制,添加一条ACE即可。

那么现在我通过hack用户登录任意一台域内机器,然后更改user1的密码。

可以看到我更改user1用户是可以直接更改的,但是更改user2是不行的,因为我对user2没有完全控制的权限。但是user1是有的,所以可以登录user1用户然后去更改user2的密码。

当我吧这条ACE删了之后,那么肯定是无法修改得了。

可以看到他会立即生效。这次就不能改改了。

这一篇就暂时到这里了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值