网络认证
概述
网络认证:Windows网络认证指在Windows操作系统中进行网络通信和资源访问时,验证用户身份和授权权限的过程。确保只有经过身份验证的用户才能够访问网络资源,并根据其权限级别进行授权操作。
认证方式
1、用户名和密码认证
最为常见的认证方式,用户提供有效的用户名和密码用于验证身份,这种认证方式适用于本地计算机账户或域账户。
2、Kerberos认证
Kerberos是一种网络身份验证协议,在Windows域环境中被广泛使用, 通过使用票据和票据授予票证(TGT)来验证用户身份,并生成会话密钥用于加密通信。
3、NTLM协议
NTLM(NT LAN Manager)是一种早期的Windows网络认证协议,基于挑战(Challenge)-响应(Response)的方式进行身份验证。
目前Kerberos已成为首选的认证协议,但NTLM仍然在少数情况下使用,特别是与旧版Windows系统或非Windows系统进行互操作时。
4、密钥身份认证
Windows支持使用密钥来进行身份的验证,这种方式涉及使用预先共享的密钥对用户进行身份验证,通常用于特定的场景和应用。
5、远程桌面认证(Remote Desktop Authentication)
在进行远程桌面连接时,用户需要提供目标计算机的凭证进行认证,以验证身份并获得远程访问权限。
NTLM协议
主机A想要访问主机B上的资源,就要向主机B发送一个存在于主机B上的一个账户,主机B接收以后会在本地进行验证,如果验证成功,才会允许主机A进行相应的访问。
NTLM(NT LAN Manager)认证是一种早期的Windows网络身份验证协议,在Windows系统中用于验证用户的身份,并提供对网络资源的访问控制。
NTLM协议是一种基于挑战(Challenge)/响应(Response)认证机制
NTLM协议 挑战 /响应认证机制
大致流程如下:
1、协商:双方确定传输协议的版本等信息
2、质询:Challenge/Response 认证机制的关键之处
3、验证:对质询的最后结果进行一个验证,验证通过后,即允许访问资源
认证过程
认证分为认证成功与认证失败两种
1、client端会向server端发起请求连接商议信息
2、server端会在本地生成一个(16位或8位)随机字符,即challenge,并将生成的challenge 传递给client端
3、当client端接收到challenge信息时,将username的NTLM-hash对challenge进行加密,并和用户名、域名、机器名等相关信息生成response,并将response发送给给server端
4、server端在收到response后,将其和相同的方法进行加密生成另一个response。如果相同,则验证成功, 如果不同,则验证失败。
Wireshark抓包分析
实验环境
两台Windows server 2008 R2机器进行NTLM认证抓包分析
机器IP地址 | 机器名 | 机器用户 |
---|---|---|
192.168.110.7 | lm | administrator |
192.168.110.8 | WIN-LUOQFIF9141 | administrator |
在机器192.168.110.7上执行net use \IP /u:账号名 密码 进行认证,同时进行抓包
流量分析
前四条数据都是用于信息协商
第五个数据包是用户的身份验证信息和某些规则,主要为flag里面的规则
第六条数据包 包含同意列表和challenge值
可以观察到该challenge值为16位,这是因为采用的是NTLM v2协议。如果是NTLM v1协议,则challenge值为8位。
第七个数据包是发送response的数据包,包含账户名和response等相关信息
第8个数据包返回的是结果,用于表示成功还是失败
challenge值与response值
Challenge是服务器端发送给客户端的一串随机字符,NTLM-v1协议中是8位,NTLM-v2协议中是16位,自从Windows vista之后就开始默认使用v2协议了。
Reponse值是由客户端生成发送给服务端,用于进行校验。
协议对比
- LM-HASH:针对早期Windows用户密码进行加密的hash值
- NTLM-HASH:针对目前Windows用户密码进行加密的hash值
- NTLM协议认证:一种认证方式,用于建立两台计算机的信任,分为NTLM-v1协议和NTLM-v2协议
- NTLM-v2-hash:在NTLM-v2协议认证过程中的一段加密的hash值
- NET-NTLM v1 hash:是由不同字段组成的值,用于计算机进行对比
NTLM协议安全问题
- PTH攻击:因为在NTLM认证过程中,会使用到用户的NTLM-HASH值进行计算,如果攻击者知道计算机中用户的hash值,就可以进行PTH攻击
- NET-NTLM hash relay攻击:NTLM中间人攻击,如果获得net-NTLM v1 hash可以重放,进行认证
- NET-NTLM v1 & v2 hash破解:v1破解比较简单,使用DES容易破解。如果是V2就要使用碰撞的方式,可以使用彩虹表等方式,获取明文的账号及密码
本文系作者 @小白学安全 原创发布在 xbxaq.com 站点,未经许可,禁止转载!
评论