kizumi_header_banner_img

这里是幻灬十一的博客,欢迎来到我的世界

加载中

文章导读

Kerberos 票据离线爆破风险评估报告内容总结


avatar
11 2026年8月13日 15

一、基础测试信息

  1. 测试域环境:xwf.example.test
  2. 核心工具版本:Hashcat v6.2.6、Impacket、name-that-hash(哈希类型识别工具)
  3. 本次验证两类高风险 Kerberos 域内攻击:Kerberoasting(TGS 票据爆破)AS-REP Roasting(AS 票据爆破)

二、Kerberoasting 攻击核心总结

1. 完整复现流程

  1. 环境前置配置:域控 PowerShell 执行setspn为普通域用户hr001注册 MSSQL 服务 SPN,账户绑定 SPN 是攻击必要条件;
  2. 票据抓取:攻击者持有低权限普通账号it001,使用impacket-GetUserSPNs向 KDC 请求目标服务账户 TGS 票据,过滤提取$krb5tgs$23$格式哈希保存至本地;
  3. 离线爆破:使用hashcat -m 13100加载哈希与本地字典离线破解,成功还原hr001明文密码;
  4. 关键特点:仅需任意域普通账号权限,无需目标服务账号密码,票据可离线长期破解。

2. 协议原理

标准 Kerberos 分为三段认证(AS-REQ→TGS-REQ→AP-REQ);绑定 SPN 的账户,其 TGS 票据负载由自身 NTLM 哈希加密,攻击者拿到密文后可本地字典遍历破解,不受域网络限制。

3. 加固修复方案

  1. 口令管控:人工服务账户设置≥32 位随机强密码,定期轮换、禁止弱口令与密码复用;
  2. 根治方案:业务服务统一使用gMSA 组托管服务账户,由域控自动生成超长随机密码,人工无法读取;
  3. 安全监控:审计 KDC 事件 ID 4769,对短时间批量请求多 SPN 票据的 IP 触发告警,定期清理绑定 SPN 的普通域用户。

三、AS-REP Roasting 攻击核心总结

1. 完整复现流程

  1. 环境前置配置:域用户it001账户属性勾选「不需要 Kerberos 预身份验证」,关闭预认证为漏洞触发前提;
  2. 票据抓取:通过 Impacket 工具无需任何账号密码,仅传入用户名即可向 KDC 获取 AS-REP 票据,导出$krb5asrep$23$哈希;
  3. 离线爆破:使用hashcat -m 18200执行字典爆破,前期踩坑误用 13100 模式导致格式不匹配报错,更换对应模式后可正常破解用户密码。

2. 协议原理

正常 Kerberos 要求客户端携带密码加密时间戳完成预认证,KDC 校验后才下发 TGT;若账户关闭预认证,KDC 直接返回 AS-REP,其中会话密钥由用户 NTLM 哈希加密,攻击者可离线解密遍历获取明文。

3. 加固修复方案

  1. 紧急根治:取消用户「不需要 Kerberos 预身份验证」勾选,无老旧系统兼容场景全域禁用该配置;
  2. 全域巡检:批量扫描域内所有关闭预认证的高危账号,及时整改;
  3. 日志监控:审计域控事件 ID 4768,识别Pre-Authentication Type=0(无预认证)的异常 AS 请求并告警拦截;
  4. 辅助防护:域用户启用高强度密码、账户锁定策略,限制外部终端访问域控 LDAP 端口。

四、通用辅助工具与踩坑要点

  1. name-that-hash工具可自动识别哈希类型、匹配对应 hashcat 模式号,避免模式参数填写错误;
  2. 两类攻击哈希格式、hashcat 模式严格区分:
    • Kerberoast:$krb5tgs$23$-m 13100
    • AS-REP Roast:$krb5asrep$23$-m 18200
  3. 两类攻击均属于离线爆破,仅依靠抓取的票据密文即可破解,在线防护策略无法完全阻断,必须从账户配置、服务托管层面根治。

五、整体风险结论

  1. Kerberoasting 风险面更广:企业大量业务服务账号绑定 SPN,仅需低权限域账号即可发起攻击;gMSA 是最有效根治手段;
  2. AS-REP Roasting 攻击门槛更低:无需任何域账号凭据,仅需目标用户名即可抓取票据,核心防护为强制开启 Kerberos 预认证;
  3. 基础防护共性:统一高强度口令、完整 Kerberos 审计日志、内网微分段缩小域控攻击面。

我要写一篇博客 美化一下 留出放图片的位置

内网 Kerberos 两大经典票据爆破:Kerberoasting & AS-REP Roasting 全复现与防御指南

前言

在内网渗透中,Kerberos 协议相关票据离线爆破是获取域内高权限账号的高频手段,分为两类经典攻击:Kerberoasting(TGS 票据爆破)AS-REP Roasting(AS 票据爆破)。 本文基于自建域环境 xwf.example.test 完整复现两种攻击流程,拆解协议底层原理、记录实操踩坑点,并给出可落地的企业加固方案,附实操截图位置,方便配套图文阅读。

环境基础信息 测试域:xwf.example.test 爆破工具:Hashcat v6.2.6 攻击套件:Impacket、name-that-hash(哈希自动识别工具)


一、Kerberoasting:针对绑定 SPN 服务账号的离线爆破

1.1 漏洞前置环境配置(域控端)

原理前置

Kerberoasting 攻击触发的必要条件:域账户(用户 / 计算机)绑定 SPN(服务主体名称),企业 SQL、Web、中间件服务几乎都会配置 SPN,攻击面极大。

实操命令(域控 PowerShell 管理员执行)

  1. 为域普通用户 hr001 注册 MSSQL 服务 SPN
setspn -A MSSQLSvc/sqlserver.xwf.example.test:1443 hr001
  1. 校验 SPN 是否挂载成功
setspn -L hr001

执行成功输出两条 SPN 记录,证明环境搭建完成。

1.2 Kali 攻击机:SPN 枚举 + TGS 票据哈希抓取

攻击前置权限:仅需任意一个普通域账号(本次使用低权限账号 it001),不需要目标服务账号 hr001 的密码

完整抓取命令

impacket-GetUserSPNs xwf.example.test/it001:XianWenF1999. -dc-ip 192.168.111.10 -request | grep '\$krb5tgs' > /home/kali/Desktop/kerberoast_hash.txt

参数说明:

  • -request:主动向 KDC 请求 TGS 票据;
  • grep '\$krb5tgs':过滤冗余日志,只保留爆破所需哈希;
  • 输出文件:桌面kerberoast_hash.txt存储 TGS 密文哈希。

查看抓取的哈希文件

cat /home/kali/Desktop/kerberoast_hash.txt

哈希标准特征:以 $krb5tgs$23$ 开头,对应 Hashcat 专用模式 13100

1.3 Hashcat 离线字典爆破全过程

正确爆破命令

hashcat -m 13100 /home/kali/Desktop/kerberoast_hash.txt /home/kali/Desktop/123.txt

参数释义:

  • -m 13100:固定标识 Kerberos TGS-REP 票据哈希,不可混用;
  • 第一个文件:抓取到的 TGS 哈希;
  • 第二个文件:自定义密码字典。

爆破结果解读

日志关键标识 Status...........: Cracked 代表破解成功,日志末尾会直接输出 hr001 账号明文密码 Xwf19990104。 核心攻击结论:攻击者仅持有普通域账号,即可离线破解高权限服务账号,全程无需访问目标业务服务器。

1.4 Kerberoasting 协议底层原理

标准 Kerberos 三段认证流程:

  1. AS-REQ/AS-REP:客户端认证身份,从 KDC 获取 TGT 票据;
  2. TGS-REQ/TGS-REP:携带 TGT 申请服务专用 TGS 票据;
  3. AP-REQ/AP-REP:持 TGS 访问目标业务服务。

漏洞核心逻辑:

  1. 账户绑定 SPN 后,KDC 下发的 TGS 票据负载由服务账号自身 NTLM 哈希加密
  2. 任意域内用户均可向 KDC 发起 TGS 票据请求,无需服务账号密码;
  3. 票据可离线导出、长期存储,脱离内网环境进行字典爆破,无法通过在线策略拦截。

1.5 企业级加固修复方案

方案 1:口令基线管控(临时缓解)

  1. 人工维护的服务账号统一使用32 位以上随机混合强密码,禁用生日、业务名、连续数字类弱口令;
  2. 所有服务账号独立口令,禁止跨业务复用密码;
  3. 设置 90 天强制密码轮换策略。

方案 2:gMSA 托管账户(根治方案,推荐)

组托管服务账户 gMSA 由域控自动生成、自动轮换超长随机密码,运维人员无法查看原始口令,从根源杜绝离线爆破风险。 所有 SQL、Web、中间件业务,逐步淘汰普通域用户,迁移至 gMSA 托管。

方案 3:日志审计与实时告警

  1. 监控域控 KDC 事件 ID 4769(TGS 票据请求日志);
  2. 告警规则:同一 IP 短时间批量请求大量不同 SPN 的 TGS 票据,判定 Kerberoasting 扫描攻击;
  3. 定期巡检域内所有绑定 SPN 的普通用户,逐步替换为 gMSA。

二、AS-REP Roasting:免凭据获取用户 AS 票据爆破

2.1 漏洞前置环境配置(域控端)

漏洞触发条件

域用户账户属性勾选 不需要 Kerberos 预身份验证,关闭预认证后 KDC 不再校验客户端身份,直接返回加密 AS 票据。

2.2 Kali 攻击机:无凭据抓取 AS-REP 票据哈希

该攻击最大特点:不需要任何域账号、密码,仅输入目标用户名即可向 KDC 请求票据。

抓取命令

python3 GetNPUsers.py XWF.EXAMPLE.TEST/it001 -no-pass > /home/kali/Desktop/asrep3.txt

哈希标准特征:以 $krb5asrep$23$ 开头,对应 Hashcat 模式 18200

2.3 Hashcat 离线爆破 & 实操踩坑记录

正确爆破命令

hashcat -m 18200 /home/kali/Desktop/asrep3.txt /home/kali/Desktop/123.txt

高频踩坑点

初期测试误用 -m 13100(Kerberoast 模式),程序报Signature unmatched哈希格式不匹配,两种票据哈希模式不可混用。

哈希类型辅助识别工具

遇到未知哈希可使用name-that-hash自动匹配对应 hashcat 模式号,避免参数错误:

# 安装工具
sudo apt install name-that-hash
# 识别哈希文件
nth /home/kali/Desktop/asrep3.txt

2.4 AS-REP Roasting 协议底层原理

正常 Kerberos 预认证机制

正常用户发起AS-REQ请求时,必须上传自身密码加密的时间戳,KDC 解密校验通过,才会下发 TGT 票据,防止匿名获取加密数据。

漏洞异常流程

  1. 攻击者仅传入目标用户名,发送不带预认证时间戳的AS-REQ
  2. 账户开启免预认证,KDC 跳过身份校验,直接返回AS-REP数据包;
  3. AS-REP 包含两段加密内容:
    • Session Key:目标用户 NTLM 哈希加密(攻击核心密文);
    • TGT 票据:域 KRBTGT 账号哈希加密(攻击者无法解密);
  4. 攻击者本地遍历密码字典,计算 NTLM 哈希尝试解密 Session Key,解密成功即可获取用户明文密码。

2.5 漏洞修复加固方案

1. 紧急根治配置

  1. 打开「AD 用户和计算机」,选中风险用户 → 属性 → 账户;
  2. 取消勾选「不需要 Kerberos 预身份验证」,保存后立即生效;
  3. 管控规范:无老旧系统兼容需求时,全域禁止开启该选项,仅遗留老旧设备临时启用并单独隔离。

2. 全域漏洞巡检脚本

批量扫描域内所有关闭预认证的高危用户,定期巡检整改:

python3 GetNPUsers.py xwf.example.test/ -usersfile userlist.txt -no-pass

3. 安全日志监控

审计域控事件 ID 4768(AS 票据请求日志),重点匹配特征: Pre-Authentication Type = 0 = 客户端未携带预认证数据,判定 AS-REP 扫描攻击; 对接 SIEM 平台配置告警,短时间大量异常请求直接阻断攻击 IP。

4. 辅助防护策略

  1. 域内所有用户强制使用高强度长密码,提升离线爆破成本;
  2. 启用域账户锁定策略,抵御在线暴力破解;
  3. 内网微分段,限制普通终端、外网设备直连域控 389 LDAP 端口,缩小攻击面。

三、两种 Kerberos 攻击核心对比总结

表格

攻击方式 触发条件 哈希前缀 Hashcat 模式 攻击门槛 根治方案
Kerberoasting 账户绑定 SPN $krb5tgs$23$ 13100 需任意普通域账号 使用 gMSA 托管服务账号
AS-REP Roasting 账户关闭 Kerberos 预认证 $krb5asrep$23$ 18200 仅需目标用户名,无需凭据 强制开启预身份验证

四、内网 Kerberos 通用安全基线

  1. 业务服务账号禁止使用普通域用户,统一迁移 gMSA;
  2. 全域强制开启 Kerberos 预认证,关闭免预认证配置;
  3. 域控完整开启 Kerberos 审计日志,对接告警平台监控异常票据请求;
  4. 特权账号、服务账号统一 32 位以上随机强密码,定期轮换;
  5. 内网网络分段,限制非运维终端访问域控 LDAP/KDC 服务端口。

文末小结

两类票据爆破均属于离线攻击,抓取票据后可脱离内网长期破解,仅靠防火墙、账户锁定无法完全防御,必须从账户配置、服务托管层面做根源加固。 日常渗透测试、企业安全巡检中,可优先扫描这两类漏洞,提前规避域权限沦陷风险。



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码

站点统计

📄 文章 32
📁 分类 4
🏷️ 标签 0
📝 总字数 337k
⏱️ 运行 483天
头像
关于本站
在代码和动漫的夹缝里收集细碎美好
欢迎同好交流、素材互换
站点持续装修优化中✨