6.BloodHound

1. 介绍

BloodHound 通过图与线的形式,将域内用户、计算机、组、会话、ACL,以及域内所有的相关用户、组、计算机、登录信息、访问控制策略之间的关系,直观地展现在红队成员面前,为他们更便捷地分析域内情况、更快速地在域内提升权限提供条件

2. 安装

3. 收集域内信息

只建议在靶机中使用,实战中动静会很大,导致域控上全是日志,实战中应该注意速率

#windows下,建议使用官方的 SharpHound (C#) 收集器
sharpHound.exe -c all
#linux下可以使用一下的方式进行远程收集(但可能收集的不如sharpHound.exe收集的全面)
#收集前请先同步域控时间
ntpdate $DC-IP

#使用nxc进行收集
netexec ldap 172.22.1.21 -u 'administrator' -H '10cf89a850fb1cdbe6bb432b859164c8'  --bloodhound --collection All --dns-server 172.22.1.21

#使用bloodhound-python(ce版本)
dnschef --fakeip 192.168.56.126
bloodhound-ce-python  -u 'administrator' -H '10cf89a850fb1cdbe6bb432b859164c8' -ns 127.0.0.1 -d xiaorang.lab  -dc DC01.xiaorang.lab   --zip

#使用bloodhound-python(legency版本)
dnschef --fakeip 192.168.56.126
bloodhound-python  -u 'administrator' -H '10cf89a850fb1cdbe6bb432b859164c8' -ns 127.0.0.1 -d xiaorang.lab  -dc DC01.xiaorang.lab   --zip
powershell -exec bypass -command "Import-Module ./SharpHound.ps1; Invoke-BloodHound -c all"

4. 界面介绍

4.1. 节点

Pasted image 20250222160636
蓝色位置图标意味着这是开始节点
白色骷髅头说明是已拥有节点
红色靶子图标是目标节点
钻石图标则是高价值目标

节点又细分为6种,分别是Users用户、Groups组、Computers计算机、Domain域、GPOs组策略对象、OUs组织单位;
Pasted image 20250222160711

用户节点信息
Pasted image 20250222160757
节点属性

  • Object ID 用户的SID
  • Password Last Changed 密码上次更改的日期
  • Last Logon 用户最后一次登录的时间
  • Enabled 是否在活动目录中启用该用户
  • Compromised 是否标记为拥有

组成员

  • First Degree Group Memberships 此用户所属的组
  • Unrolled Group Memberships 用户显式所属的组已添加到这些组
  • Foreign Group Memberships 用户所属的其他AD域中的组

本地管理员权限

  • First Degree Local Admin 用户被添加到本地管理员组中的计算机数,被添加到N台计算机的本地管理员组中,则数量为N
  • Group Delegated Local Admin Rights 用户通过安全组委派从而拥有本地管理员权限的计算机数
  • Derivative Local Admin Rights 用户具有派生本地管理员权限的计算机数量
    Pasted image 20250222161026

执行特权

  • First Degree RDP Privileges 已将此用户添加到本地“远程桌面用户”组的计算机数
  • Group Delegated RDP Privileges 该用户通过安全组委派拥有远程桌面登录权限的计算机数
  • First Degree DCOM Privileges 已将此用户添加到本地”Distributed COM Users”组的计算机数
  • Group Delegated DCOM Privileges 该用户具有组委派DCOM权限的计算机数
  • SQL Admin Rights 用户在MSSQL上被授予SA特权的计算机的数量
  • Constrained Delegation Privileges 信任此用户执行约束委派的计算机的数量

出站对象控制

  • First Degree Object Control 用户可以在不依赖安全组委派的情况下控制的活动目录中的对象数
  • Group Delegated Object Control 用户通过安全组委派控制的对象数
  • Transitive Object Control 在活动目录中执行仅基于ACL的攻击,此用户可以控制的对象数。也就是说,用户只需操纵目录中的对象,即可获得控制权的最大对象数

入站对象控制

  • Explicit Object Controllers 直接控制此用户的用户、组或计算机的数量
  • Unrolled Object Controllers 通过安全组委派控制此对象的主体的实际数量
  • Transitive Object Controllers 活动目录中可以通过基于ACL的攻击实现对该对象的控制的对象数

组节点比用户节点多了个Group Members ,虽然与Group Membership都是组成员的意思,但Group Membership更偏向于组成员之间的一种关系,Group Members则仅仅指成员这一部分。
Pasted image 20250222161301

  • Direct Members 添加到该组的成员数量
  • Unrolled Members 属于该组的实际用户数
  • Foreign Members 属于该组的其他域的用户数

计算机节点则是将 Execution Privileges 细分成了 Inbound Execution PrivilegesOutbound Execution PrivilegesOutbound Execution Privileges 则与原来的 Execution Privileges 相似,
Pasted image 20250222161415
入站执行特权

  • First Degree Remote Desktop Users 被添加到本地的远程桌面用户组的主体数量
  • Group Delegated Remote Desktop Users 组委派的具有RDP权限的用户数量
  • First Degree Distributed COM Users 添加到本地“Distributed COM Users”组的主体数量
  • Group Delegated Distributed COM Users 具有嵌套组成员身份访问此系统的DCOM的用户数
  • SQL Admins 在此系统运行的MSSQL实例上具有SA特权的用户数

组策略对象GPOs有个Affected Objects
Pasted image 20250222161554

  • Directly Affected OUs GPO连接到域/OU的数量
  • Affected OUs 受GPO影响的OU数量
  • Computer Objects 适用GPO的计算机数
  • User Objects 适用GPO的用户数

组织单位OUs的Extra Properties里有个blocksInheritance,是否阻止组策略实施继承的意思,在未强制执行GPLink的情况下,一旦阻止继承,则GPO不会应用在与其链接的OU和所有的子对象上。

  • GPOs Directly Affecting This OU 直接链接到这个OU的GPO数
  • GPOs Affecting This OU 直接或者间接应用于此OU的GPO数量
  • Total User Objects 此OU包括子OU的所有用户总数
  • Total Group Objects 此OU的安全组数
  • Total Computer Objects 此OU下的计算机对象数
  • Sibling Objects within OU 此OU的同级对象总数

4.2. Edge

MemberOf 此节点是上一节点的成员,由末端指向上的尖端,如图,所有的域管理员属于域管理员组
Pasted image 20250222161748

../HasSession
用户与计算机时进行会话时,凭据会保留在内存中,可用LSASS注入或者凭据转储来获取用户凭据,图中该用户在两台计算机上存在会话
Pasted image 20250222161809

AdminTo
末端是尖端的本地管理员,本地管理员对这台计算机的管理权限比较大,下面的这个用户组是前一台计算机的本地管理员
Pasted image 20250222161850
ACL Edges

Note

AllExtendedRights
扩展权限是授予对象的特殊权限,这些对象允许读取特权属性以及执行特殊操作;如果对象是用户,则可以重置用户密码;如果是组,则可以修改组成员;如果是计算机,则可以对该计算机执行基于资源的约束委派

AddMember
可以向目标安全组添加任意成员

ForceChangePassword
可以任意重置目标用户密码

GenericAll
可以完全控制目标对象

GenericWrite
写入权限,修改目标的属性或者将主体添加入组等

Owns
保留修改 security descriptors 的能力,会忽略DACL权限的限制

WriteDacl
可写入目标DACL,修改DACL访问权

WriteOwner
保留修改 security descriptors 的能力,会忽略DACL权限的限制

ReadLAPSPassword
读取LAPS上的本地管理员凭证

ReadGMSAPassword
读取GMSA上的本地管理员凭证

Containers

Note

Contains
可以在OU上添加一个新的ACE,它将继承到该OU下的所有子对象上,比如说在OU上应用GenericAll ACE ,那么所有子对象都将继承GenericAll属性

GpLink
将其设置为链接容器中的对象

特殊 Edges

Note

CanRDP
用远程桌面进行会话

CanPSRemote
用PowerShell进行会话

ExecuteDCOM
实例化目标的COM对象并调用其方法,可以在特定条件下执行代码

AllowedToDelegate
有这个特权的节点可以将任何域主体(包括Domain Admins)模拟到目标主机上的特定服务

AddAllowedToAct
可以控制任意的安全主体伪装为特定计算机的任何域用户

AllowedToAct
可以使用此用户滥用S4U2self / S4U2proxy进程,将任何域用户模拟到目标计算机系统,并以“该 用户”身份接收有效的服务票证

SQLAdmin
该用户是目标计算机的MSSQL管理员

HasSIDHistory
用户的SID历史记录,用户在域迁移后,票据还包含着前域所在组的SID,虽然用户不属于前域,但仍拥有前域的权限