当前位置:首页 > 渗透测试 > 正文内容

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环境,用于验证用户和服务身份,其核心流程包括:

  1. 认证服务交换(AS-REQ/AS-REP):用户向密钥分发中心(KDC)请求票据授予票据(TGT)。
  2. 票据授予服务交换(TGS-REQ/TGS-REP):用户使用TGT请求访问特定服务的服务票据(ST)。
  3. 服务认证(AP-REQ/AP-REP):用户向目标服务出示ST以获取访问权限。

2 Kerberoasting的攻击点

Kerberoasting攻击的关键在于:

  • 服务票据(ST)加密方式:ST使用服务账户的密码哈希(RC4-HMAC或AES)加密。
  • 离线破解可行性:攻击者可以请求ST并尝试暴力破解或字典攻击其加密部分,从而获取服务账户的明文密码。

Kerberoasting攻击的实施步骤

1 攻击前提条件

  • 攻击者已获取域内普通用户凭据(可通过钓鱼、凭证转储等方式)。
  • 目标AD环境中存在使用弱密码的服务账户(如SQL Server、IIS等)。

2 攻击流程

  1. 枚举SPN(服务主体名称)
    攻击者使用setspn或PowerShell脚本(如GetUserSPNs.ps1)查询AD中注册的服务账户。

    setspn -T <domain> -Q */*
  2. 请求服务票据(TGS-REQ)
    使用Invoke-KerberoastRubeus等工具请求特定SPN的ST:

    Invoke-Kerberoast -OutputFormat Hashcat | Select-Object Hash | Out-File hashes.txt
  3. 导出票据并离线破解
    攻击者将ST的加密部分(通常是RC4-HMAC或AES加密的哈希)导出,并使用HashcatJohn the Ripper进行破解:

    hashcat -m 13100 hashes.txt rockyou.txt
  4. 横向移动或权限提升
    如果破解成功,攻击者可获取高权限服务账户的密码,进而进行横向渗透或提权。


检测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攻击的风险,保护关键业务系统的安全。

相关文章

快捷方式劫持,隐藏的网络安全威胁与防范策略

** ,快捷方式劫持是一种隐蔽的网络安全威胁,攻击者通过篡改系统或应用程序的快捷方式(如.lnk文件),将用户引导至恶意程序或钓鱼网站,从而窃取敏感信息或植入恶意软件,此类攻击常利用用户对常用程序的...

代码注入点分析,识别与防范安全漏洞的关键

代码注入是常见的高危安全漏洞,攻击者通过输入恶意数据篡改程序逻辑或执行非预期操作,典型的注入点包括:1)未过滤的用户输入(如表单、URL参数);2)动态SQL拼接;3)系统命令调用(如OS命令、eva...

源代码安全审计,保障软件安全的第一道防线

源代码安全审计是保障软件安全的关键环节,通过系统化分析程序源代码,识别潜在漏洞、恶意代码或设计缺陷,从源头规避安全风险,其核心价值在于以主动防御取代被动修复,覆盖SQL注入、缓冲区溢出、身份验证缺陷等...

黑盒测试,软件质量保障的关键手段

黑盒测试是软件测试的重要方法之一,其核心在于在不了解系统内部结构和代码逻辑的情况下,通过输入与输出的验证来评估软件功能是否符合预期,测试人员仅关注用户可见的行为,模拟真实用户操作,检查界面、功能、性能...

测试用例编写,确保软件质量的关键步骤

测试用例编写是确保软件质量的关键步骤,通过系统化的验证手段覆盖功能需求与潜在风险,其核心在于明确测试目标、设计可执行的步骤,并设定预期结果,以验证软件是否满足设计要求,编写时需遵循完整性(覆盖正常、异...

防御绕过技术分析,攻击者的隐形战术与防御对策

防御绕过技术是攻击者为规避安全检测而采用的隐形战术,通常通过混淆代码、滥用合法工具(如Living-off-the-Land)、或利用零日漏洞实现,常见手法包括进程注入、无文件攻击、签名伪造及流量加密...