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
导出后生成时间戳命名的压缩包文件
界面
选择Filter处过滤类型
搜索功能
搜索 可以将搜索范围指定为特定节点类型,如
- Group
- Domain
- Computer
- User
- OU
- GPO
比如试试it机器
pathfinding路径搜索
设置目前所在节点和目标节点,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,虽然用户不属于前域,但仍拥有前域的权限
看到上图,表面该组策略能具有DCSyn权限
再看到上图中该组策略下用户具有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。代表该用户对这个机器有写入的权限。也就是可以造成资源委派
- 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
用户具有派生本地管理员权限的计算机数量