NTLM认证过程

NTLM

NTLM

步骤说明:

  1. 客户端缓存密码的哈希值,丢弃原始密码

  2. 客户端向服务器发送明文形式的用户名

  3. 服务器端生成一个16位的随机数,作为challenge发送给客户端

  4. 客户端使用密码的哈希值加密challenge,并将结果(response)返回给服务器

  5. ①服务器端将收到的用户名、原始challenge、客户端返回的response发送给DC(域控制器)

    ②DC从SAM库中找到该用户名对应的密码散列值

    ③DC使用从SAM库中获取的密码散列值加密原始challenge

    ④比对两个challenge,若相同,则认证成功;否则认证失败

    ⑤DC将结果返回给服务器,最终反馈给客户端

作用:

使用NTLM,在登录telnet时,将使用Windows的账号和密码登录,不用直接使用用户名和密码登录,避免了明文传输用户名和密码

NTLM是以当前用户的身份向Telnet服务器发送登录请求的,而不是用你自己的帐户和密码登录,显然,你的登录将会失败。举个例子来说,你家的机器名为A(本地机器),你登录的机器名为B(远地机器),你在A上的帐户是ABC,密码是1234,你在B上的帐号是XYZ,密码是5678,当你想Telnet到B时,NTLM将自动以当前用户的帐号和密码作为登录的凭据来进行上面的7项操作,即用ABC和1234,而并非用你要登录帐号XYZ和5678,且这些都是自动完成的,根本不给你动手的机会,因此你的登录操作将失败。(摘自百度百科,多读两遍就懂了)

身份验证选项:

NTLM有三种身份验证选项,分别是0、1、2,默认是2

  1. 不使用NTLM
  2. 先用NTLM,如果失败则用用户名和密码
  3. 只能用NTLM