BloodHound分析域结构

BloodHound分析域结构

导出域结构

SharpHound.exe -c all #可指定all到处所有信息
SharpHound.exe -c session # 枚举会话
SharpHound.exe -c all --OutputDirectory C:\ #导入出到指定目录
SharpHound.exe -d test.org # 导出指定域
.\SharpHound.ps1 Invoke-BloodHound -CollectionMethod All -JSONFolder "c:\" 

可以用 -c 参数指定要收集的数据类型,如 -c Session,RDP,ACL

导出后生成时间戳命名的压缩包文件

界面

BloodHound分析域结构

选择Filter处过滤类型

搜索功能

搜索 可以将搜索范围指定为特定节点类型,如

  • Group
  • Domain
  • Computer
  • User
  • OU
  • GPO

BloodHound分析域结构

比如试试it机器

pathfinding路径搜索

BloodHound分析域结构

设置目前所在节点和目标节点,BloodHound会自动规划好一条到达目标的最短路线

节点

BloodHound分析域结构

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

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

BloodHound分析域结构

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

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

BloodHound分析域结构

内置查询语句

BloodHound分析域结构

  • 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
    到支持kerberos的用户的最短路径

  • Shortest Paths to Domain Admins from Kerberoastable Users
    从支持kerberos的用户到域管理员的最短路径

  • Shortest Path from Owned Principals
    从所属主体获取的最短路径

  • Shortest Paths to Domain Admins from Owned Principals
    从已拥有的主体到域管理员的最短路径

  • Shortest Paths to High Value Targets
    通往高价值目标的最短路径

  • Find Computers where Domain Users are Local Admin
    找出域用户是本地管理员的计算机

  • Shortest Paths from Domain Users to High Value Targets
    从域用户到高值目标的最短路径

  • Find All Paths from Domain Users to High Value Targets
    找出所有从域用户到高价值目标的路径

  • Find Workstations where Domain Users can RDP
    找出域用户使用RDP登录的工作站

  • Find Servers where Domain Users can RDP
    找出域用户使用RDP登录的服务器

  • Find Dangerous Rights for Domain Users Groups
    找出域用户组的高危权限

  • Find Kerberoastable Members of High Value Groups
    找出属于高价值组的可支持kerberos的成员

  • List all Kerberoastable Accounts
    列出所有可支持kerberos的帐户

  • Find Kerberoastable Users with most privileges
    查找具有最多特权的且可支持kerberos的用户

  • Find Domain Admin Logons to non-Domain Controllers
    找出非域控制器的域管理登录

  • Find Computers with Unsupported Operating Systems
    查找不支持操作系统的计算机

  • Find AS-REP Roastable Users (DontReqPreAuth)
    找出支持AS-REP的用户

CL Edges

  • AllExtendedRights
    扩展权限是授予对象的特殊权限,这些对象允许读取特权属性以及执行特殊操作;如果对象是用户,则可以重置用户密码;如果是组,则可以修改组成员;如果是计算机,则可以对该计算机执行基于资源的约束委派
  • AddMember
    可以向目标安全组添加任意成员
  • ForceChangePassword
    可以任意重置目标用户密码
  • GenericAll
    可以完全控制目标对象
  • GenericWrite
    写入权限,修改目标的属性或者将主体添加入组等
  • Owns
    保留修改 security descriptors 的能力,会忽略DACL权限的限制
  • WriteDacl
    可写入目标DACL,修改DACL访问权
  • WriteOwner
    保留修改 security descriptors 的能力,会忽略DACL权限的限制
  • ReadLAPSPassword
    读取LAPS上的本地管理员凭证
  • ReadGMSAPassword
    读取GMSA上的本地管理员凭证

特殊 Edges

  • CanRDP
    用远程桌面进行会话
  • CanPSRemote
    用PowerShell进行会话
  • ExecuteDCOM
    实例化目标的COM对象并调用其方法,可以在特定条件下执行代码
  • AllowedToDelegate
    有这个特权的节点可以将任何域主体(包括Domain Admins)模拟到目标主机上的特定服务
  • AddAllowedToAct
    可以控制任意的安全主体伪装为特定计算机的任何域用户
  • AllowedToAct
    可以使用此用户滥用S4U2self / S4U2proxy进程,将任何域用户模拟到目标计算机系统,并以“该用户”身份接收有效的服务票证
  • SQLAdmin
    该用户是目标计算机的MSSQL管理员
  • HasSIDHistory
    用户的SID历史记录,用户在域迁移后,票据还包含着前域所在组的SID,虽然用户不属于前域,但仍拥有前域的权限

BloodHound分析域结构

看到上图,表面该组策略能具有DCSyn权限

BloodHound分析域结构

再看到上图中该组策略下用户具有WriteDacl权限可以修改ACL来对这个域dcsync攻击了

#添加ACE的命令如下:
Add-DomainObjectAcl -TargetIdentity "DC=test,DC=com" -PrincipalIdentity test1 -Rights DCSync -Verbose

lsadump::dcsync /domain:test.com /all /csv

#删除ACE的命令:
Remove-DomainObjectAcl -TargetIdentity "DC=test,DC=com" -PrincipalIdentity test1 -Rights DCSync -Verbose

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

BloodHound分析域结构

BloodHound分析域结构

  • Sessions
    该用户登录的计算机数量
  • Reachable High Value Targets
    用户可到达高价值目标数量,默认的高价值目标是域管理员,域控制器和其他几个高特权Active Directory组的任何计算机或用户

节点属性

  • 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
    用户具有派生本地管理员权限的计算机数量

参考

https://www.freebuf.com/articles/web/288370.html

上一篇:【Git 系列】实战应用的常见技巧【二】


下一篇:ssh_dispatch_run_fatal: incorrect signature (gerrit 在windows 克隆代码报错)