MS14-068:

攻击发生在TGS-REQ阶段,漏洞成因是KDC对于PAC的签名的加密方式,可以由客户端决定,而可选择的加密类型里面有如MD5这种不需要知道密钥的加密方式,攻击者可以去串改PAC中的关于客户端身份的内容,然后用MD5去进行加密。KDC在校验PAC的时候,发现用MD5加密过后的结果和PAC内容完全一致,于是直接在TGS-REQ阶段放行。于是攻击者后续拿到的ST票据是指定的高权限用户,达到权限提升效果

NTLM MIC绕过漏洞:

也叫做NTLM MIC drop 漏洞。微软防止NTLM relay 的发生,引入了MIC。MIC是对type1、type2、type3 进行加密的结果,而加密的密钥在客户端机器上,这就让攻击者的中继行为无法正常执行。但是攻击者可以删除MIC字段和Version字段,那么服务就不会去校验MIC,也就不会校验是否发生中继

image.png


以exchange服务为例,原本像LDAP这种高权限服务,会默认校验MIC,但是攻击者可以重NTLM Authenticate消息中删除MIC字段和Version字段,让中继得以继续

image.png

如果目标环境存在两个域控,还可以去利用域控向域控发起攻击

一台域控用于被触发 Print Spooler 漏洞或 PetitPotam 漏洞(域控A以DC-A$的身份发起连接),另一台域控用于中继 LDAPS 执行高权限操作。如果不支持 LDAPS,使用 LDAP 来进行操作需要攻击者先准备好一个受控机器账户(因为 LDAP 是明文传输,默认不允许直接创建机器账户并赋予密码)。利用中继获得的高权限 LDAP/LDAPS 连接,去修改受害域控自己的属性,把刚才准备好的机器账户写进受害域控的基于资源约束委派(RBCD)白名单里。整个过程是中继了 A 域控的 NTLM 给 B 域控,利用 B 域控的 LDAP/LDAPS 来修改 A 域控的属性,而不能修改 B 域控的属性。(虽然 A 域控和 B 域控的地位与数据库是完全对等的,但中继建立的会话身份实际上是 DC-A$。DC-A$ 默认加入了内置的 Domain Controllers 安全组,默认对其他域控没有修改权限;而能修改 DC-A$ 属性的默认是 Domain Admins、Enterprise Admins、SYSTEM 以及 DC-A$ 自身,因此只能改 A 不能改 B。)

image.png

标签: none