John the Ripper 破解 Kerberos 安全审计实战:KDC哈希提取与AS-REP/TGS破解完整指南
【免费下载链接】johnJohn the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAs项目地址: https://gitcode.com/gh_mirrors/jo/john
John the Ripper (JtR) 是一款支持数百种哈希与密文类型的离线密码破解工具,本指南带你走通 Kerberos 安全审计的三条核心路径:从 KDC 数据库提取哈希、Kerberoast(TGS 票据破解)到 AS-REP Roasting,覆盖 RC4 与 AES 全部 etype,并给出对应的 JtR 格式与防御建议。
为什么 Kerberos 是域安全审计的第一目标 🎯
Kerberos 是 Windows 域环境(Active Directory)的默认认证协议。它的三个环节各自对应一个经典攻击面:
| 攻击场景 | 数据来源 | 破解对象 | JtR 格式 |
|---|---|---|---|
| KDC 数据库提取 | KDC 服务账户密码哈希 | krb5-17/krb5-18/nt | src/krb5_db_fmt_plug.c |
| Kerberoast(TGS 票据) | 带 SPN 的服务账户票据 | krb5tgs/krb5tgs-sha1 | src/krb5_tgs_fmt_plug.c |
| AS-REP Roasting | 关闭预认证的账户 | krb5asrep | src/krb5_asrep_fmt_plug.c |
一个合法的域用户即可枚举带servicePrincipalName(SPN)的账户并请求票据,而票据的加密密钥正是由账户密码派生——这就是 Kerberos 审计的核心逻辑:拿票据 → 离线爆破 → 还原口令。
一、KDC 哈希提取:三条落地路径
路径 1:MIT KDC + Heimdal hprop 解密
运行 MIT Kerberos 时,用kdb5_util导出"加密态"哈希,再配合主密钥(stash 文件)解密。由于 Heimdal 与 MIT 在同一系统上会冲突,通常需要在另一台机器上安装 Heimdal 获得hprop工具(详细步骤见 doc/Kerberos-Auditing-HOWTO.md):
# KDC 机器上:导出加密哈希并取主密钥 $ sudo kdb5_util dump -b7 kdc.dump $ cp /etc/krb5kdc/stash stash # 分析机器上:hprop 解密并提取 etype 23 (rc4-hmac) 哈希 $ hprop --database=kdc.dump --master-key=stash --source=mit-dump \ --decrypt --stdout | hpropd -n --print | \ grep -oP "23:\K(.+?)(?=:)"若运行的是 Heimdal KDC,hprop可直接输出未加密哈希,一步到位。
路径 2:kdcdump 补丁直接导出明文态
doc/README-krb5-18-23 中描述了为 MITkdb5_util打补丁的方式,可在 KDC 上直接导出未加密的 realm 数据库:
test/admin@OLYMPE.OL 18,fc77e6ffc07b469ba90ad4a979bcbb64709177c74af7f8eceaada0cdc84c1117 23,1667b5ee168fc31fba85ffb8f925fb70一键转换:kdcdump2john.py
JtR 自带转换脚本 run/kdcdump2john.py,把上面的 dump 翻译成 JtR 可直接加载的格式:
test/admin@OLYMPE.OL:$krb18$OLYMPE.OLtestadmin$fc77e6ff...09177c74... test/admin@OLYMPE.OL:$krb23$1667b5ee168fc31fba85ffb8f925fb70版本提示⚠️:现代 JtR 已移除旧的krb5-23格式——因为 etype 23 的哈希本质就是 NT 哈希。kdcdump2john.py现在直接输出$NT$格式,由高速的 NT 格式负责破解(AES 加密的 etype 17/18 则分别由krb5-17、krb5-18处理)。
二、Kerberoast:TGS 票据破解全拆解 🔓
原理:域内任何已认证用户都可请求带 SPN 账户的 TGS 票据(例如 MsSQL 服务账户)。TGS-REP 票据中校验票提交者身份的关键部分由该账户的域密码派生的密钥加密。拿到票据即可离线爆破。
AD 提供 4 种派生算法:DES(默认禁用)、RC4-HMAC-MD5(etype 23)、AES128-CTS-HMAC-SHA1-96(etype 17,4096 轮 PBKDF2)、AES256-CTS-HMAC-SHA1-96(etype 18)。对应 JtR 格式:
krb5tgs(etype 23,RC4 系)— 见 src/krb5_tgs_common.hkrb5tgs-sha1(etype 17/18,AES 系)— 见 src/krb5_tgsrep_fmt_plug.c
$73c916e8d09e56a1d07a5d37211d353d$23$CONTOSO$SQLSVC$79e59853...$... $krb5tgs-sha1$17$CONTOSO$SQLSVC$...$...完整的攻击背景、工具用法与票据获取方式见 doc/README.krb5tgs-17-18-23.md。
三、AS-REP Roasting:绕过预认证的账户
若某账户未启用 Kerberos 预认证,攻击者可发送 AS-REQ 请求,KDC 会返回一个用用户密钥(即其密码派生)签名的加密片段,可离线爆破还原密码。
krb5asrep格式同时支持 etype 17/18/23(AES 与 RC4),核心公共逻辑位于 src/krb5_asrep_common.h:
$krb5asrep$23$454c433a4b3a493243374847$8896f7f585670948686458... $krb5asrep$18$svc$e2e8c5f0...$8896f7f5...💡 即使在启用预认证的环境中,只要抓到包含 AS-REP 消息的 Kerberos 流量(pcap),该格式同样可用(见 src/krb5_asrep_fmt_plug.c 头部注释)。
四、实战:一条命令启动破解 ⚡
JtR 能自动识别上述所有哈希格式,通常无需手动指定--format:
$ ./run/john hashes.txt # 自动识别并加载哈希 $ ./run/john --show # 查看已破解结果 $ ./run/john --test # 运行基准测试加速技巧:
- GPU 加速:AES 系格式(
krb5-17/18、krb5tgs-sha1、krb5asrep)均提供 OpenCL 实现,见 src/opencl_krb5_asrep_aes_fmt_plug.c、src/opencl_krb5_tgsrep_fmt_plug.c,OpenCL 总览见 doc/README-OPENCL - 多核并行:设置
OMP_NUM_THREADS=4启用 OpenMP 多线程 - 掩码/规则:结合 doc/MASK 与 doc/RULES 生成定向字典,提高命中率
- 会话管理:
--session=audit --restore支持长时间审计任务的断点续破
五、审计之后:Kerberos 加固清单 🛡️
- 强制启用预认证— 杜绝 AS-REP Roasting 攻击面
- 服务账户(带 SPN)使用强随机密码— Kerberoast 无法绕过长随机口令
- 优先 AES 加密类型— 逐步弃用 RC4(etype 23),缩小可被
nt格式高速爆破的面 - 保护 KDC 资产— stash 文件中的主密钥派生"故意难以逆向",但数据库被拖库即全盘失守,KDC 主机权限必须最小化
- 监控异常模式— 短时间内大量 TGS 请求、AS-REQ 对无预认证账户的探测,都是审计告警信号
相关文档与模块索引
| 内容 | 路径 |
|---|---|
| Kerberos 审计完整 HOWTO | doc/Kerberos-Auditing-HOWTO.md |
| TGS 票据(Kerberoast)说明 | doc/README.krb5tgs-17-18-23.md |
| KDC dump 补丁与转换 | doc/README-krb5-18-23 |
| KDC 导出转换脚本 | run/kdcdump2john.py |
| KDC 数据库格式源码 | src/krb5_db_fmt_plug.c |
| TGS-REP 破解格式 | src/krb5_tgs_fmt_plug.c |
| AS-REP 破解格式 | src/krb5_asrep_fmt_plug.c |
| 破解模式与选项 | doc/OPTIONS |
从 KDC 提取到票据爆破,John the Ripper 的 Kerberos 格式族覆盖了审计所需的每个环节——理解 etype 与格式映射,你就能在真实域环境中高效完成密码强度评估。
【免费下载链接】johnJohn the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAs项目地址: https://gitcode.com/gh_mirrors/jo/john
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考