MS14-068 Kerberos域用户提权漏洞
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MS14-068 Kerberos域用户提权漏洞相关的知识,希望对你有一定的参考价值。
参考技术AKerberos协议是一种基于第三方可信主机的计算机网络协议,它允许两个实体之间在非安全网络环境(可能被窃听、被重放攻击)下以一种安全的方式证明自己的身份。
远程权限提升漏洞存在于 Microsoft Windows 的 Kerberos KDC 实现中。存在该漏洞的症状是,Microsoft Kerberos KDC 实现无法正确验证签名,这可能造成 Kerberos 服务票证的某些方面被人伪造。简单来说就是一个域内的普通账户可以利用此漏洞进行权限提升,升级为域管理员权限。
漏洞需要以下四样道具
MS14-068是横向移动Pass the Ticket技术的一种,利用Kerberos认证机制进行攻击。除此之外,常见的还有金票攻击和银票攻击。本次不再详细介绍。
T1550.003 Use Alternate Authentication Material: Pass the Ticket 票据传递
T1558.001 Steal or Forge Kerberos Tickets: Golden Ticket 黄金票据
T1558.002 Steal or Forge Kerberos Tickets: Silver Ticket 白银票据
查看系统补丁情况,没有打KB3011780补丁的机器是可以利用的
查看用户的SID
获得SID
还可以使用这条命令获取域内所有用户的 SID:
PyKEK 是一个利用 Kerberos 协议进行渗透的工具包,使用 PyKEK 可以生成一个高权限的服务票据,之后通过 mimikatz 将服务票据导入到内存中。
github https://github.com/mubix/pykek
上面的python脚本需要python2.7的环境,也可以把py文件打包为exe,github上有人已经完成,使用方法和py脚本一样,如果担心安全问题,也可以自己打包。
exe: https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
输入
在同级目录下生成票据
注入之前,查看域控的共享C盘,显示权限不足:(注意: 这边需要使用域控的完整名称 )
清除票据
注入高权限票据
访问域控C盘共享,查看权限
阅读资料: IPC共享知识 https://www.cnblogs.com/csnd/p/11807910.html
接下来进一步尝试获取域控的shell,使用 PsExec64.exe ,下图可以看到我们已经获取了域控的shell。下一步可以根据自己的习惯进行一些持久化操作,例如添加域控账号等。
攻击脚本为goldenPac.py,该脚本是 impacket 工具包里面的
https://github.com/SecureAuthCorp/impacket/blob/master/examples/goldenPac.py
打包好的exe版本 https://github.com/maaaaz/impacket-examples-windows
以下的缓解措施基于ATT&CK给出
M1026 Privileged Account Management 特权账户管理
M1051 Update Software 更新软件
M1052 User Account Control 用户账户控制
M1018 User Account Management 用户账户管理
Audit all logon and credential use events and review for discrepancies. Unusual remote logins that correlate with other suspicious activity (such as writing and executing binaries) may indicate malicious activity. NTLM LogonType 3 authentications that are not associated to a domain login and are not anonymous logins are suspicious.
Event ID 4768 and 4769 will also be generated on the Domain Controller when a user requests a new ticket granting ticket or service ticket. These events combined with the above activity may be indicative of an overpass the hash attempt.[ 1]
监控LogonType为3且认证数据包为NTLM的登录日志
监控域控服务器上4768和4769的事件,并关联LogonType为3且认证数据包为Kerberos的登录日志。
参考连接: https://zhuanlan.zhihu.com/p/409793688
MS14-068域提权漏洞复现
MS14-068域提权漏洞复现
一、漏洞说明
改漏洞可能允许攻击者将未经授权的域用户账户的权限,提权到域管理员的权限。
微软官方解释: https://docs.microsoft.com/zh-cn/security-updates/Securitybulletins/2014/ms14-068
二、漏洞原理
Kerberos认证原理:https://www.cnblogs.com/huamingao/p/7267423.html
服务票据是客户端直接发送给服务器,并请求服务资源的。如果服务器没有向域控dc验证pac的话,那么客户端可以伪造域管的权限来访问服务器。
三、漏洞利用前提
1.域控没有打MS14-068的补丁
2.攻击者拿下了一台域内的普通计算机,并获得普通域用户以及密码/hash值,以及用户的suid
四、实验环境
域控制器(DC) windows 2008 R2 st13.com 192.168.10.146
域内机器 windows 7 192.168.10.129
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
五、漏洞利用
1.首先在域控检测是否有MS14-068这个漏洞,通过查看是否打补丁(KB3011780)来判断是否存在漏洞,下图可以看到没有打MS14-068漏洞相关的补丁
systeminfo
2.在win7上面测试该漏洞,win7用普通域用户登录
测试访问域控的C盘共享,访问被拒绝
3.为了使我们生成的票据起作用,首先我们需要将内存中已有的kerberos票据清除,清除方法使用mimikatz
4.使用whoami/all查看本机用户ID
5. 利用ms14-068.exe提权工具生成伪造的kerberos协议认证证书
MS14-068.exe -u <userName>@<domainName> -p <clearPassword> -s <userSid> -d <domainControlerAddr>
6. 利用mimikatz.exe将证书写入,从而提升为域管理员
7.再次列出域控制器的C盘目录,成功访问域控的C盘,说明普通域用户提权成功
8.使用PSTools目录下的PsExec.exe获取shell,#psexec.exe以管理员权限运行连接域控
9.接下来可以在域控上做任何操作了
总结:
1、查看目标是否存在MS14-068漏洞
2、使用ms14-068.exe生成票据
3、mimikatz注入票据,获得域控权限
4、PSexec创建后门
以上是关于MS14-068 Kerberos域用户提权漏洞的主要内容,如果未能解决你的问题,请参考以下文章