Windows NTLM认证

文章目录

    • NTLM
      • NTLM工作流程
      • 为何采用NTLM
      • NTLM使用场景

NTLM

NTLM工作流程

Windows NTLM认证_第1张图片

  1. client本地生成NTLM hash,值为用户密码的hash值。
  2. 客户端将用户名以纯文本的方式发送到要访问的服务器
  3. 服务器产生一个 16 字节的随机数并将该随机数发送给客户端,该随机数通常称为:挑战(Challenge或Nonce)
  4. 客户端使用用户密码的散列值加密服务器发送过来的 Challenge,并将结果发回给服务器, 该步骤通常称为:应答 (Response)
  5. 服务器将用户名、Challenge、Response三项内容发送到域控制器 (Domain Controller)
  6. 域控制器使用 用户名 从安全账号管理数据库 (Security Account Manager database)中获得用户密码的散列值, 并使用获得的密码散列值来加密 Challenge
  7. 域控制器比较步骤(5)中计算得到的加密后的 Challenge值与步骤(4)中客户端加密得到的 Response,如果两者一致,则认证通过

为何采用NTLM

微软采用 Kerberos 作为 Windows 2000及之后的活动目录域的默认认证协议。当某个服务器隶属于一个Windows 服务器域或者通过某种方式(如Linux到Windows AD的认证)与Windows 服务器域建立了信任关系的时候,通常采用Kerberos作为认证协议。但是无论你是否拥有活动目录域,NTLM都可以被采用。

NTLM使用场景

(1) 客户端使用 IP 地址向服务器认证
(2) 客户端向另一个有 Legacy NTLM 信任而非传递性林间信任的活动目录域林的服务器
认证
(3) 客户端向一个未加入域的服务器认证
(4)未使用活动目录的场景(通常指 ‘工作组’ 或 ‘对等网络’)
(5) 防火墙策略限制了 Kerberos 使用的端口(通常为 TCP port 88)

你可能感兴趣的:(内网渗透,服务器,运维)