Kerberoasting攻击,原理、检测与防御
** ,Kerberoasting是一种针对Active Directory(AD)的横向移动攻击技术,利用Kerberos协议中服务票据(TGS)的加密机制漏洞,攻击者通过请求大量服务票据(SPN关联账户),获取使用弱加密算法(如RC4)加密的票据,随后离线破解票据中的密码哈希,从而获取高权限账户凭据,该攻击隐蔽性强,因票据请求行为通常被视为正常活动。 ,**检测方法**包括监控异常数量的TGS请求、高频票据请求账户或使用非默认加密类型的票据,防御措施建议强制使用强加密算法(如AES)、定期轮换服务账户密码、启用账户登录审计、限制服务账户权限,并部署SIEM工具分析异常Kerberos活动,通过强化AD安全策略,可有效缓解Kerberoasting攻击风险。 ,(字数:约180字)
深入解析Kerberoasting攻击:如何利用Kerberos漏洞窃取服务账户凭据
Kerberoasting是一种针对Kerberos身份验证协议的密码攻击技术,攻击者通过请求服务票据(Service Ticket)并离线破解其加密部分,从而获取高权限服务账户的密码,由于Kerberos协议广泛应用于Windows Active Directory(AD)环境,这种攻击方式对企业的安全构成了严重威胁,本文将详细介绍Kerberoasting攻击的原理、实施步骤、检测方法以及防御措施。
Kerberoasting攻击的原理
1 Kerberos协议简介
Kerberos是一种网络认证协议,广泛应用于Windows AD环境,用于验证用户和服务身份,其核心流程包括:
- 认证服务交换(AS-REQ/AS-REP):用户向密钥分发中心(KDC)请求票据授予票据(TGT)。
- 票据授予服务交换(TGS-REQ/TGS-REP):用户使用TGT请求访问特定服务的服务票据(ST)。
- 服务认证(AP-REQ/AP-REP):用户向目标服务出示ST以获取访问权限。
2 Kerberoasting的攻击点
Kerberoasting攻击的关键在于:
- 服务票据(ST)加密方式:ST使用服务账户的密码哈希(RC4-HMAC或AES)加密。
- 离线破解可行性:攻击者可以请求ST并尝试暴力破解或字典攻击其加密部分,从而获取服务账户的明文密码。
Kerberoasting攻击的实施步骤
1 攻击前提条件
- 攻击者已获取域内普通用户凭据(可通过钓鱼、凭证转储等方式)。
- 目标AD环境中存在使用弱密码的服务账户(如SQL Server、IIS等)。
2 攻击流程
-
枚举SPN(服务主体名称)
攻击者使用setspn
或PowerShell脚本(如GetUserSPNs.ps1
)查询AD中注册的服务账户。setspn -T <domain> -Q */*
-
请求服务票据(TGS-REQ)
使用Invoke-Kerberoast
或Rubeus
等工具请求特定SPN的ST:Invoke-Kerberoast -OutputFormat Hashcat | Select-Object Hash | Out-File hashes.txt
-
导出票据并离线破解
攻击者将ST的加密部分(通常是RC4-HMAC或AES加密的哈希)导出,并使用Hashcat
或John the Ripper
进行破解:hashcat -m 13100 hashes.txt rockyou.txt
-
横向移动或权限提升
如果破解成功,攻击者可获取高权限服务账户的密码,进而进行横向渗透或提权。
检测Kerberoasting攻击
1 日志分析
- Event ID 4769(Kerberos服务票据请求)
检查异常大量的TGS请求,尤其是来自同一用户的不同SPN请求。 - Event ID 4624(登录事件)
关注服务账户的异常登录行为。
2 安全工具检测
- SIEM(如Splunk、ELK)
配置规则监控异常的Kerberos活动。 - EDR/XDR解决方案(如CrowdStrike、Microsoft Defender ATP)
检测Invoke-Kerberoast
等恶意PowerShell脚本的执行。
3 行为分析
- 异常SPN查询
监控setspn
或LDAP查询SPN的操作。 - 大量TGS请求
短时间内请求多个SPN的票据可能表明攻击尝试。
防御Kerberoasting攻击
1 强化服务账户密码
- 使用强密码(>25字符)
避免使用弱密码,增加破解难度。 - 定期轮换密码
减少攻击窗口期。
2 启用AES加密
- 禁用RC4-HMAC
在组策略中强制使用AES-256加密:Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options > Network security: Configure encryption types allowed for Kerberos
3 限制服务账户权限
- 遵循最小权限原则
避免服务账户拥有域管理员权限。 - 使用组托管服务账户(gMSA)
自动管理密码,减少人为疏忽。
4 监控与响应
- 启用高级审计策略
记录Kerberos票据请求和SPN查询。 - 部署威胁检测工具
如BloodHound用于识别易受攻击的服务账户。
Kerberoasting攻击利用Kerberos协议的弱点,通过离线破解服务票据获取高权限凭据,对企业安全构成严重威胁,防御措施包括强化服务账户密码、启用AES加密、限制权限以及持续监控异常活动,组织应定期进行安全评估,确保AD环境免受此类攻击。
通过综合运用技术手段和管理策略,可以有效降低Kerberoasting攻击的风险,保护关键业务系统的安全。