Windows 身份验证
NTLM 与 Kerberos
Windows 身份验证 是 CoddyKit 上的免费 Ethical Hacking Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ethical Hacking Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ethical Hacking Academy 课程共包含 4 节课。
Windows 如何证明身份
Windows 会在授予访问权限前验证用户身份。在域环境中,客户端与域控制器之间会持续进行这一过程。
两种主要协议是 NTLM(较旧的质询-响应协议)和克伯罗斯(现代的基于票据的协议)。二者都是攻击者重点瞄准的对象。
密码哈希
Windows 从不为本地账户存储明文密码,而是将哈希存储在 SAM 数据库中。其关键格式是 NT 哈希(密码的 MD4 值)。
如果攻击者转储这些哈希,就可以离线破解,或直接重复使用它们。
NTLM 质询-响应
NTLM 无需发送密码即可完成身份验证:
- 服务器发送一个随机的质询。
- 客户端使用 NT 哈希对其加密并回复。
- 服务器(或 DC)验证响应。
虽然它属于旧协议,但为了兼容性,许多网络仍然启用它。
传递哈希
由于 NTLM 使用哈希而非明文进行身份验证,窃取哈希的攻击者无需破解它即可完成身份验证。
这就是传递哈希(PtH)——一种针对 NTLM 的强大横向移动技术。
克伯罗斯概览
克伯罗斯是 Active Directory 中的默认协议。它使用域控制器上的可信密钥分发中心(KDC)和有时限的票据,而不是反复发送凭据。
TGT 和服务票据
克伯罗斯流程:
- 用户完成身份验证并收到票据授予票据(TGT)。
- 要使用某项服务时,客户端出示 TGT 并获取服务票据(TGS)。
- 服务验证票据,整个过程中无需发送密码。
Kerberoasting
Kerberoasting 会请求运行服务的账户(SPN)的服务票据。该票据使用服务账户的密码哈希进行加密。
攻击者提取票据后,可在离线状态下破解它,从而恢复服务账户的密码。
传递票据与黄金票据
Kerberos 票据也可能被窃取并重复使用(传递票据)。更严重的是,如果攻击者获取了 krbtgt 账户的哈希,就可以伪造黄金票据——一种由攻击者自行制作、可授予整个域访问权限的 TGT。
转储凭据
许多攻击都从受入侵主机中提取凭据开始。工具会从 lsass.exe 内存或 SAM/SECURITY 注册表配置单元中转储哈希和票据。
Mimikatz 是最知名的工具;secretsdump 是一种常见的远程替代工具。
强化身份验证
防御人员可以通过以下方式降低这些风险:
- 在可能的情况下禁用 NTLM。
- 为服务账户强制使用强度高且长度足够的密码。
- 保护 lsass(Credential Guard、PPL)。
- 轮换 krbtgt 密钥,并限制管理员凭据的重复使用。
检查您的会话
您可以从会话中检查当前的身份验证上下文和缓存的 Kerberos 票据。
whoami /upn
klist # lists cached Kerberos tickets快速检查
识别专门针对 NTLM 的攻击。
回顾
您已经了解了 Windows 如何进行身份验证,以及攻击者如何发起攻击:
- SAM 中的 NT 哈希支持离线破解和传递哈希攻击。
- Kerberos 使用 KDC、TGT 和服务票据。
- Kerberoasting、传递票据和黄金票据会滥用 Kerberos。
- 强化措施:禁用 NTLM、保护 lsass、为服务账户设置强密码。
下一步:学习进攻性 PowerShell。
常见问题解答
「Windows 身份验证」课时是免费的吗?
是的 — 「Windows 身份验证」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ethical Hacking Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ethical Hacking Academy 课程共包含 4 节课。
「Windows 身份验证」这节课中我会学到什么?
NTLM 与 Kerberos 你通过在浏览器中直接运行的动手代码来练习 Ethical Hacking Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ethical Hacking Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ethical Hacking Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「Windows 身份验证」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ethical Hacking Academy 课中编写并运行代码吗?
能。每节 Ethical Hacking Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Windows 架构
- 注册表
- Windows 身份验证
- 面向攻击者的 PowerShell