NTML网络认证
Windows认证分为本地认证和网络认证,当我们开机登录用户账户时,就需要将lsass.exe进程转换的明文密码hash与 sam文件进行比对,这种方式即为——本地认证
而当我们访问同一局域网的一台主机上的SMB共享时,需要提供凭证通过验证才能访问,这个过程就会设计windows的网络认证。
NTLM协议
NTLM协议的认证共需要三个步骤完成:协商、挑战、认证。也叫挑战响应机制
协商,这个是为了解决历史遗留问题,也就是为了向下兼容,双方先确定一下传输协议的版本等各种信息。版本主要分为两种:NTLMv1与NTLM v2
挑战,下面会介绍。
验证,对质询的最后结果进行一个验证,验证通过后,即允许访问资源
NTLMv1、NTLM v2区别
不同点
NTLM v1的Challenge有8位,NTLM v2的Challenge为16位
NTLM v1的主要加密算法是DES,NTLM v2的主要加密算法是HMAC-MD5。
共同点
都是通过NTLM Hash进行的加密
挑战的完整过程

工作组中
client向server发送用户信息(即用户名)请求
server接受到请求后,判断本地用户列表是否存在client发送的用户名,如果没有返回认证失败,如果有,生成一个16位的随机数即Challenge, 然后使用登录用户名对应的NTLM Hash加密Challenge, 生成Challenge1保存在内存中。同时,生成Challenge1后,将Challenge发送给client。
当client接收到Chalenge时,将发送的用户名所对应的NTLM hash对Chalenge进行加密即Response(NET-NTLM-Hash),并Response发送给server。
接着就是验证过程了,server在收到Response后,将其与Chalenge1进行比对,如果相同,则验证成功
域环境中
由于域机器SAM文件中不存在域用户的NTLM hash,所以服务器将客户端用户名、Challenge、response通过 Netlogon协议交到域控手中,让域控对其进行身份验证。
域控通过客户端用户名在自己的ntds.dit中找到对应的NTLM-Hash,用Challenge对其进行加密,再与NET-NTLM-Hash进行对比。如果相同则表示用户拥有的密码是正确的,否则则验证失败,DC将结果返回给服务器。
服务器根据DC的结果成功与否返回给客户端。
wirshark抓包分析
1、模拟client访问server的共享

2、抓包看下共享产生的SMB协议,其中Negotiate Protocol Responss就是进行协商的过程
3、服务器向客户端返回16位长的challenge

4、接着客户端将发送的用户名所对应的NTLM hash对Chalenge进

本文详细介绍了NTLM网络认证的原理,包括NTLMv1和NTLM v2的区别,以及在工作组和域环境中的认证过程。通过Wireshark抓包分析展示了NTLM认证的挑战和响应机制。此外,文章还探讨了如何利用Responder工具进行NTLM-Relay攻击,以及使用impacket工具如smbrelayx.py和ntlmrelayx.py进行重放攻击的步骤。
最低0.47元/天 解锁文章
426

被折叠的 条评论
为什么被折叠?



