Ntml hash认证流程

1、前言

  密码保存在 %SystemRoot%\system32\config\ sam ,我们登录windows系统的时候,系统自动读取SAM中的密码与我们输入的密码进行比较,相同,则认证成功。

2、NTLM HASH的产生

  NTLM Hash是支持Net NTLM认证协议及本地认证,长度为32位,由数字与字母组成。Windows本身不存储用户的明文密码,它会将用户的明文密码经过加密算法后存储在SAM数据库中。当用户登录时,将用户输入的明文密码也加密成NTLM Hash,与SAM数据库中的NTLM Hash进行比较。NTLM Hash的前身是LMHash。
  明文密码转换为ASCII码——》16进制编码—》Unicode编码—》MD4

3、Windows本地认证

在这里插入图片描述

4、Windows网络认证

(1)第一步协商:客户端主要在这一步向服务器确认协议的版本,是v1还是v2。
(2)客户端向服务器端发送用户信息(用户名)请求,服务器接受到请求,生成一个16位的随机数,被称之为“Challenge”,使用登录用户名对应的NTLM Hash加密Challenge (16位随机字符),生成Challenge1。同时,生成Challenge1后,将Challenge (16位随机字符)发送给客户端。客户端接受到Challenge后,使用将要登录到账户对应的NTLMHash加密Challenge生成Response,然后将Response发送至服务器端
服务器端收到客户端的Response后,比对Chanllenge1与Response是否相等,若相等,则认证通过。
在这里插入图片描述
①Server接收到Client发送的用户名后,判断本地账户列表是否有用户名,如果没有,返回认证失败,如果有,生成Chanllenge,并且从本地查找该用户名对应的NTLM Hash,使用NTLM Hash加密Chanllenge,生成一个Net-NTLM Hash存在内存中,并将Chanllenge发送给Client。
②Client接收到Chanllenge后,将自己提供的用户名的密码转换为NTLM Hash,使用NTLM Hash加密Chanllenge,这个结果叫Response,表现形式是Net-NTLM Hash,最后将Response发送给Server。
③Server接收到Client发送的Response,将Response与之前的Net-NTLM Hash进行比较,如果相等,则认证通过。
提示:Chanllenge是Server产生的一个16字节的随机数,每次认证都不同,Response的表现形式是Net-NTLM Hash,它是由客户端提供的密码Hash加密Server返回的Chanllenge产生的结果。

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 41
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

003安全实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值