IT评测·应用市场-qidao123.com技术社区

标题: Windows 身份验证协议 [打印本页]

作者: 商道如狼道    时间: 前天 03:13
标题: Windows 身份验证协议
本文中的图文内容均取自《域渗透攻防指南》,本人仅对感兴趣的内容做了汇总及附注。
导航

0、前言

在 Windows 工作组及域环境中经常会使用的两个身份验证协议:NTLM 和 Kerberos。
NTLM (New Technology LAN Manager) 协议是微软用于 Windows 身份验证的紧张协议之一。它既可用于工作组中的机器身份验证,又可用于域环境身份验证,还可为 SMB、HTTP、LDAP、SMTP 等上层微软应用提供身份验证。
Kerberos 协议是由麻省理工学院提出的一种网络身份验证协议,是一种在开放的非安全网络中认证并辨认用户身份信息的方法。它旨在使用密钥加密技术为客户端/服务端应用程序提供强身份验证。
1、NTLM 协议

NTLM 协议是一种基于 Challenge/Response(质询/响应)的验证机制,由三种类型消息构成:
NTLM 协议有 NTLM v1 和 NTLM v2 两个版本,目前使用最多的是 NTLM v2。 NTLM v1 与 NTLM v2 最显著的区别是 Challenge 值与加密算法不同,共同之处是都使用 NTLM Hash 进行加密。
注:NTLM Hash 和 NTLM 协议不是一个概念。NTLM Hash 是一种类似 MD5 的散列算法,而 NTLM 协议是一种类似 PAP 认证的认证协议。
1.1、控制台

在用户输入密码进行本地认证的过程中,全部操纵都是在本地进行的。体系会首先将用户输入的密码转换为 NTLM Hash,然后与 SAM 文件中用户对应的 NTLM Hash 进行比较,如果类似,说明密码精确,反之则错误。
注:Windows 本地用户的密码在经过 NTLM Hash 处理之后均存储在 C:\Windows\ system32\config\SAM 文件中。
当用户注销、重启、锁屏后,操纵体系会让 winlogon.exe 显示登录界面,也就是输入框。当 winlogon.exe 接收到输入后,会将密码交给 lsass.exe 历程,而 Isass.exe 历程会保存一份明文密码,然后将明文密码加密成 NTLM Hash 与 SAM 数据库进行比较和认证。
注: 使用 mimikatz 工具获得的用户 明文密码/NTML Hash 密码 就是在 lsass.exe 历程中抓取的。但现在微软已做了安全防护,lsass.exe 历程中已抓取不到明文密码,只能抓到 NTLM Hash 值。
1.2、工作组环境


注:下面是以上身份验证流程普通化之后的表述。
1.3、域环境


注:下面是以上身份验证流程普通化之后的表述。
1.4、NTLM 协议的安全问题

2、Kerberos 协议

Kerberos 是一种基于票据(Ticket)的认证方式。客户端想要访问服务端的某个服务,首先必要购买服务端认可的 ST( Service Ticket,服务票据)。也就是说,客户端在访问服务之前必要先买好票,等待服务验票之后才能访问。但是这张票并不能直接购买,必要一张 TGT(Ticket Granting Ticket,认购权证)。也就是说,客户端在买票之前必须先获得一张 TGT。TGT 和 ST 均是由 KDC 发放的,因为 KDC 运行在域控上,所以说 TGT 和 ST 均是由域控发放的。
注:Kerberos 基于票据的认证方式有点类似于生存中去景区买票逛景点的场景。TGT 票据相当于身份证,ST 票据相当于景区门票。
Kerberos 是西方神话传说地狱保卫三头犬的名字,之所以叫这个名字,是因为它必要三方共同到场才能完成一次认证。而这三颗脑壳映射在服务和生存中分别对应的是:
在 Kerberos 协议中,紧张有以下三个角色。
下图是 Kerberos 协议认证的整个流程,后面各小节会详细分析 Kerberos 认证流程中的每个步骤。

2.1、AS-REQ & AS-REP


AS-REQ 哀求:当域内某个用户想要访问域内某个机器上的服务时,输入用户名和密码,本机就会向 KDC 的 AS 发送 一 个 AS-REQ(认证哀求)。该哀求包中包含的信息如图 1-68a 所示。
AS-REP 响应:当 KDC 的 AS 接收到客户端发来的 AS-REQ 后,AS 会从活动目录数据库中取出该用户的密钥,然后用该密钥对哀求包中的预认证部门进行解密。如果解密成功,并且时间戳在有用的范围内,则证明哀求者提供的用户密钥精确。KDC 的 AS 在成功认证客户端的身份之后,发送 AS-REP 包给客户端。AS-REP 包中紧张包括的信息如图 1-68b 所示。
注:下面是以上身份验证流程普通化之后的表述。
2.2、TGS-REQ & TGS-REP

客户端在收到 KDC 的 AS-REP 后,使用用户密钥解密 enc_Logon Session Key(也就是最外层的 enc-part),得到 Logon Session Key,并且也获得了 TGT。之后它会在本地缓存此 TGT 和 Logon Session Key。 现在客户端必要凭借这张 TGT 向 KDC 购买相应的 ST。ST 是 KDC 的另一个服务 TGS( Ticket Granting Service)授予服务发放的。【注:在这个阶段,微软还引入了两个扩展协议 S4u2Self 和 S4u2Proxy,但本文不包含这部门内容。】

TGS-REQ 哀求:客户端用上一步获得的 TGT 发起 TGS-REQ,向 KDC 购买针对指定服务的 ST,该哀求紧张包含的信息,如图 1-76a 所示。
TGS-REP 响应:KDC 的 TGS 服务接收到 TGS-REQ 之后会进行如下操纵。首先,使用 krbtgt 密钥解密 TGT 中的加密部门,得到 Logon Session Key 和 PAC 等信息,解密成功则说明该 TGT 是 KDC 颁发的;然后,验证 PAC 的签名,签名精确证明 PAC 未经过篡改;最后,使用 Logon Session Key 解密 authenticator 得到时间戳等信息,如果能够解密成功,并且票据时间在有用范围内,则验证了会话的安全性。
在完成上述的检测后,KDC 的 TGS 就完成了对客户端的认证,TGS 发送回复包给客户端。该回复包中紧张包括的信息,如图 1-76b 所示。
注意:TGS-REP 中 KDC 并不会验证客户端是否有权限访问服务端。因此,不管用户有没有访问服务的权限,只要 TGT 精确,均会返回 ST。
注:下面是以上身份验证流程普通化之后的表述。
2.3、AP-REQ & AP-REP 双向认证

客户端收到 KDC 返回的 TGS-REP 消息后,从中取出 ST,准备开始申请访问服务。由于我们是通过 SMB 协议远程毗连的,因此 AP-REQ & AP-REP 消息是放在 SMB 协议中的。

AP-REQ 哀求:客户端接收到 KDC 的 TGS 回复后,通过缓存的 Logon Session Key 解密 enc_Service Session key 得到 Service Session Key,同时它也拿到了 ST。Serivce Session Key 和 ST 会被客户端缓存。客户端访问指定服务时,将发起 AP-REQ,该哀求紧张包含的信息如图 1-84a 所示。
AP-REP 响应:这一步是可选的,当客户端希望验证提供服务的服务端时(也就是 AP-REQ 哀求中 mutual-required 选项为 True),服务端才会返回 AP-REP 消息。服务端收到客户端发来的 AP-REQ 消息后,通过服务密钥解密 ST 得到 Service Session Key 和 PAC 等信息,然后用 Service Session Key 解密 Authenticator 得到时间戳。如果解密成功且时间戳在有用范围内,则验证了客户端的身份。验证了客户端身份后,服务端从 ST 中取出 PAC 中代表用户身份权限信息的数据,然后与哀求的服务 ACL 做对比,生成相应的访问令牌。同时,服务端会检查 AP-REQ 哀求中 mutual-required 选项是否为 True,如果是,则说明客户端想验证服务端的身份。此时,服务端会用 Service Session Key 加密时间戳作为 Authenticator,在 AP-REP 包中发送给客户端进行验证,该哀求紧张包含的信息如图 1-84b 所示。如果 mutual-required 选项为 False,服务端会根据访问令牌的权限决定是否返回相应的服务给客户端。
注:下面是以上身份验证流程普通化之后的表述。
2.4、Kerberos 协议的安全问题


注:以上安全问题被攻击的条件条件分别如下。
哈希通报攻击:需获得用户的 NTLM Hash。
域用户名枚举攻击:拥有用户名字典即可。
密码喷洒攻击:拥有用户名和密码字典即可。
黄金票据攻击:需获得 krbtgt 用户的 NTLM Hash。
白银票据攻击:需获得服务启动账户的 NTLM Hash。
AS-REP Roasting 攻击:首先必要有域用户已关闭预身份验证功能,然后才能获得由域用户的 NTLM Hash 加密的 Logon Session Key,最后才能爆破该加密内容,从而获得用户的明文密码。
Kerberoasting 攻击:需先获得一域用户的凭证,然后才能获得域中已注册服务的 ST 票据,然后才能爆破获得服务启动账户的明文密码。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4