不需凭证,5秒沦陷域控?

 

开始

​ 还记得上一篇文章提到的,通过MS-EFSRPC协议的EfsRpcOpenFileRaw函数也可以像printbug(域内委派攻击的老朋友了)一样发起SMB认证请求。

​ 后经过测试,发现默认情况下,DC为2012、2016、2019时,只需指定中继IP以及受害IP就可以成功发起认证,

不需要机器在域内,不需要域内凭据!

​ 也就是说配合公开的CVE-2019-1040(这个漏洞在大部分域内都没有修复),可以说达到指哪打哪的效果

​ 至于有的同学不知道为什么需要配合CVE-2019-1040这个漏洞绕过NTLM签名认证,可以查看ntlm的基础

演示

​ 下面测试在MAC(域外,保证网络通即可)上开启ntlmrelayx以及触发辅DC的认证请求,relay至DC的LDAPS,(辅DC配置DC至辅DC的传入信任关系)也就是基于资源的约束委派

​ 到这里有人可能会问,基于资源的约束委派攻击不是有两个条件吗,配置了机器的RBCD后还需要一个机器账户去申请票据,既然说不需要域内凭据那么是不是也无法滥用MachineAccountQuota 属性去使用域用户向域内添加机器账户了,因为修改此属性实质上还是在LDAP里修改,所以我们完全可以通过随意中继一台机器到LDAP来添加一个机器账户

image-20210722140208945

​ 接着,触发辅DC的认证请求,中继成功

image-20210722140457267

​ 接着我们使用该机器账户即可利用S4U协议申请到DC2$机器的高权限票据:

image-20210722060652400

注:如果申请凭据的时候出现KRB_AP_ERR_SKEW(Clock skew too great)错误,需要同步Linux时间

​ 最后,成功登陆

image-20210722060712599

​ 当然也可以用此票据DUMP HASH

image-20210722061444340

修复建议

CVE-2019-1166以及CVE-2019-1040

​ 因为发起的认证是基于SMB的,默认携带签名,攻击者没办法篡改发起认证也就无法攻击了。

总结

​ 最后不得不说,这类型发起认证都是携带签名,都得需要到CVE-2019-1040这个漏洞,向提交这个漂亮的绕过ntlm认证消息完整性标志的漏洞提交者@n1nty师傅致敬,站在巨人的肩膀上才能看得更远!

image-20210722135858285