Kerberos票据伪造

工作原理

client KDC
阶段1
AS Exchange(认证服务交换)
目的:获取 TGT(票据授予票据),用于后续请求服务票据。
发送明文请求,包含:用户名、服务名(通常是 krbtgt)、时间戳(防止重放攻击)
->
AS
<-
TGT(加密)SK1(用 Client 密码的 Hash 加密) 返回给 Client。
AS 验证用户身份(检查域账户数据库)。
生成 Logon Session Key(临时会话密钥,记为 SK1)。
生成 TGT,包含: Client 信息(用户名、SID 等)。SK1(加密)。 TGT 有效期。
加密方式:用 krbtgt 账户的 NTLM Hash(或 AES 密钥)加密 TGT。
**利用方法:**获取 krbtgt 账户的 NTLM Hash(需域管理员权限)。
**影响范围:**域内的所有服务

伪造流程
1.生成恶意 TGT
使用工具(如 Mimikatz)用 krbtgt 的 Hash 加密伪造的 TGT,包含:
任意用户名(如 Domain Admin)。
自定义的 SK1(攻击者生成)。
超长有效期(如 10 年)。
2.绕过 AS 认证
直接向 TGS 发送伪造的 TGT,请求 ST。
TGS 无法区分 TGT 的真伪(因加密密钥正确),返回合法的 ST。
3.访问任意服务
用伪造的 TGT 获取任意服务的 ST,完全控制域内资源。
特点
权限最大化:可伪造域管理员身份。
持久性:即使域管理员密码修改,只要 krbtgt Hash 未变,票据仍有效。
阶段2
TGS Exchange(票据授予服务交换)
目的:获取 ST(服务票据),用于访问特定服务。
TGT(从 AS 获取)。 Authenticator1:包含时间戳、Client 信息,用 SK1 加密。 目标服务名(如 CIFS/file-server)。
->
TGS
<-
ST(加密)SK2(用 SK1 加密) 返回给 Client
TGS 用 krbtgt 的 Hash 解密 TGT,获取 SK1。
用 SK1 解密 Authenticator1,验证时间戳和 Client 身份。
生成 Service Session Key(记为 SK2),用于 Client 与 Server 的通信。
生成 ST(服务票据),包含: Client 信息。 SK2(加密)。 ST 有效期。 加密方式:用 目标服务账户的 NTLM Hash(如文件服务器的机器账户 Hash)加密 ST。
**利用方法:**获取 目标服务账户的 NTLM Hash(如文件服务器的机器账户 Hash)。
**影响范围:**域内特定服务
伪造流程
1.生成恶意 ST
使用工具(如 Mimikatz)用目标服务的 Hash 加密伪造的 ST,包含:
任意用户名。
自定义的 SK2(攻击者生成)。
目标服务名(如 CIFS)。
2.绕过 TGS 认证
直接向目标服务发送伪造的 ST 和 Authenticator2。
服务无法区分 ST 的真伪(因加密密钥正确),允许访问。
特点
精准攻击:仅对特定服务有效(如文件共享、SQL 数据库)。
隐蔽性高:无需与 KDC 交互,难以被检测。
阶段3
AP Exchange(应用服务交换)
目的:使用 ST 访问目标服务。
ST(从 TGS 获取)。
Authenticator2:包含时间戳,用 SK2 加密
->
Server
<-
若验证通过,允许 Client 访问服务。
Server 用 自己的 NTLM Hash 解密 ST,获取 SK2。
用 SK2 解密 Authenticator2,验证时间戳和 Client 身份。

攻击特征

黄金票据

日志特征

  • 事件 ID 4768(TGT 请求)
    • 异常用户:请求 TGT 的用户名不存在于域账户数据库中,或权限异常(如普通用户请求高权限服务)。
    • 异常加密类型:使用弱加密算法(如 RC4)而非 AES。
    • 时间戳异常:TGT 请求时间与用户正常活动时间不符(如深夜)。
  • 事件 ID 4769(服务票据请求)
    • 大量跨服务请求:短时间内通过同一 TGT 请求多个高权限服务的 ST(如域控、SQL 服务)。
    • 目标服务异常:普通用户频繁请求域管理员相关服务(如 LDAPCIFS)。

票据属性

  • 超长有效期:黄金票据的 TGT 有效期通常远超默认值(默认 10 小时,黄金票据可能设为数年)。
  • 伪造的 PAC:黄金票据中的 PAC(特权属性证书)可能包含不匹配的 SID 或组权限(如普通用户被标记为域管理员)。

网络行为

  • 绕过 AS 阶段:攻击者直接与 TGS 交互,无初始 AS 认证日志(事件 ID 4768 缺失)。
  • 跨域请求:从非域内主机(如外部 IP)发起 TGS 请求。

权限提升

  • 异常权限访问:普通账户突然访问域控、DNS 管理等敏感服务。

白银票据

日志特征

  • 事件 ID 4769(服务票据请求)
    • 缺失 TGT 记录:白银票据直接伪造 ST,因此无对应的 TGT 请求日志(事件 ID 4768)。
    • 无效的请求来源:ST 请求来自未通过 AS 认证的 Client。
  • 事件 ID 4624(登录日志)
    • 服务登录异常:服务账户(如机器账户 FILE-SERVER$)的登录行为异常(如非工作时间)。

票据属性

  • 服务限制性:伪造的 ST 仅针对特定服务(如 CIFSHTTP),且用户名与服务权限不匹配。
  • 时间戳冲突:票据时间戳与系统时间偏差过大(可能因攻击者未正确同步时间)。

网络行为

  • 直接与服务通信:绕过 KDC,Client 直接向目标服务发送 ST,无 TGS 交互记录。
  • 无预认证请求:未通过 AS 和 TGS 阶段,直接进行 AP 交换。

服务端异常

  • 重复票据使用:同一 ST 被多次使用(正常 ST 仅使用一次)。
  • 无效的 PAC 校验:服务端若启用 PAC 验证,可能记录 PAC 校验失败的日志。

一个仍在爬山的人