【漏洞讨论】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。 其实就是:如果获得了 DC 用户的 TGT 票据且域内有一台名为 DC$ 域控,再将 DC 用户删除,此时使用该 TGT 去请求 s4u2self,如果域控制器帐户 DC$ 存在,那么 DC 就能获得域控制器帐户(机器用户DC$)的 ST 票证。 假如域内有一台域控名为 DC(域控对应的机器用户为 DC$),此时攻击者利用漏洞 CVE-2021-42287 创建一个机器用户 saulGoodman$,再把机器用户 saulGoodman$ 的 sAMAccountName 改成 DC。然后利用 DC 去申请一个TGT票据。再把 DC 的sAMAccountName 改为 saulGoodman$。这个时候 KDC 就会判断域内没有 DC 和这个用户,自动去搜索 DC$(DC$是域内已经的域控DC 的 sAMAccountName),攻击者利用刚刚申请的 TGT 进行 S4U2self,模拟域内的域管去请求域控 DC 的 ST 票据,最终获得域控制器DC的权限。 **有复现过兄弟们可以一起出来讨论交流下,赞同前三奖励金币。**

1 个回答

涂白

这次域提权的漏洞是一种sAMAccountName欺骗,影响挺大的在域内,通俗易懂的讲一下原理就是域控没有对域内机器账户名做验证,导致了恶意攻击者可以自己通过一枚域账号创建一个域机器用户,比如我通过域账号新建了一枚域机器账号为attacktubai$,把自己的机器名字改成了域控机器的名字AD-server,去申请TGT,然后再把自己的机器名字改回来,或者改成别的都行,目的是让TGS_REP这一认证阶段找不到该账号,此时域控就会用自己的的密钥去加密TGS TICKET,这样就达到了目的,得到了高权限的票据。

附上EXP截图:

attach-696771ae247ce49b071cc13fa3e8768932c79173.png这个洞影响和利用姿势都是挺多的,可以在域外打,只要能域域控通信且有一枚域帐号密码,这个漏洞只需更改LDAP中的两个属性,所以还可以延申尝试哈希中继,另外若实战环境可以跨域创建用户或者具有写权限兴许可以进行跨域攻击。

  • 5 关注
  • 2 收藏,15156 浏览
  • mix 提出于 2021-12-14 14:24

相似问题