0Pricing
Cyber Security Academy · 课时

Windows 身份验证:NTLM 与 Kerberos

理解 NTLM 挑战—响应机制和 Kerberos 票据授予机制的工作原理。

Windows 身份验证:NTLM 与 Kerberos 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

Windows 身份验证概述

Windows 使用两种主要的身份验证协议:NTLM(较旧的质询-响应协议)和 Kerberos(现代的基于票据的协议)。理解二者对于 Active Directory 的攻击和防御至关重要。

NTLM 质询-响应

NTLM 通过三条消息工作:Negotiate、Challenge 和 Authenticate。客户端使用服务器的随机质询对用户密码进行哈希处理。传输的是哈希值,而不是明文密码。

# NTLM flow:
# 1. Client sends: NEGOTIATE
# 2. Server sends: CHALLENGE (8-byte nonce)
# 3. Client sends: NT hash of (password + nonce)
#
# The NT hash = MD4(UTF-16LE(password))

哈希传递攻击途径

由于 NTLM 使用哈希值进行身份验证,窃取哈希值后即可在不知道明文密码的情况下进行身份验证。这是哈希传递攻击的核心——哈希值 IS 凭据本身。

Kerberos 概述

Kerberos 使用受信任的第三方(KDC——密钥分发中心)来签发票据。它提供双向身份验证,并且在初次签发 TGT 后,避免在网络上传输凭据。

# Kerberos components:
# KDC: Key Distribution Center (domain controller)
# AS: Authentication Service (issues TGTs)
# TGS: Ticket Granting Service (issues service tickets)
# TGT: Ticket Granting Ticket (proves identity)
# ST: Service Ticket (grants access to a service)

Kerberos 身份验证流程

1. 客户端将身份验证服务器请求发送到身份验证服务器(使用密码哈希加密)。2. 身份验证服务器返回使用 krbtgt 密钥加密的 TGT。3. 客户端向 TGS 出示 TGT,请求服务票据。4. 客户端向目标服务出示服务票据。

Kerberos 关键票据

TGT(票据授予票据):用于向 KDC 证明身份,有效期约为 10 小时。服务票据:授予对特定服务的访问权限。两者都使用客户端无法读取的密钥进行加密。

# View tickets on Windows:
klist

# View on Linux (with Kerberos client)
klist -v

# Request a TGT:
kinit username@DOMAIN.COM

NTLM 与 Kerberos:安全性比较

Kerberos 更受推荐:支持相互身份验证,避免明文传输,也更难被中继。Kerberos 失败时 NTLM 会回退(例如通过 IP 地址访问或访问非域主机)——攻击者会强制触发 NTLM 回退来捕获哈希。

NTLM 中继攻击

NTLM 中继会截获一次 NTLM 身份验证尝试,并将其转发到另一项服务,从而在不知道受害者密码的情况下冒充受害者完成身份验证。Responder 负责捕获,ntlmrelayx 负责中继。

# Capture NTLM hashes with Responder
responder -I eth0 -rdwv

# Relay with ntlmrelayx
ntlmrelayx.py -tf targets.txt -smb2support

Kerberos 预身份验证

预身份验证要求客户端先使用密码哈希加密时间戳,然后才能接收 TGT。未要求预身份验证的账户容易受到 AS-REP 烘焙攻击——攻击者可以请求其 TGT,并在离线状态下破解。

黄金票据与白银票据

黄金票据:使用 krbtgt 哈希签名伪造的 TGT,可授予对所有资源的访问权限。白银票据:针对特定服务伪造的服务票据,更加隐蔽,并且不会接触 KDC。

Windows 身份验证加固

在可能的情况下禁用 NTLM,强制启用 SMB 签名以防止中继,为所有账户要求预身份验证,监控异常票据请求(事件 ID 4768、4769),并保护 krbtgt 账户。

快速检查

Kerberos TGT 能够实现什么功能?

总结:NTLM 与 Kerberos

NTLM 通过哈希质询-响应机制进行身份验证,容易受到中继攻击和哈希传递攻击。Kerberos 使用受信任 KDC 签发的票据,安全性更强,但当 KDC 被攻陷时,仍容易受到 Kerberos 票据烘焙攻击、AS-REP 烘焙攻击以及黄金票据和白银票据攻击。了解这两种协议,才能理解 AD 的攻击路径并实施有针对性的加固。

常见问题解答

「Windows 身份验证:NTLM 与 Kerberos」课时是免费的吗?

是的 — 「Windows 身份验证:NTLM 与 Kerberos」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「Windows 身份验证:NTLM 与 Kerberos」这节课中我会学到什么?

理解 NTLM 挑战—响应机制和 Kerberos 票据授予机制的工作原理。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「Windows 身份验证:NTLM 与 Kerberos」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Windows 身份验证:NTLM 与 Kerberos
  2. 哈希传递与票据传递攻击
  3. Kerberoasting 与 AS-REP Roasting
  4. Active Directory 加固
← 返回 Cyber Security Academy