内网渗透:网络认证机制(1)——NTLM 认证


一、网络认证概述

什么是网络认证?

网络认证是指在 Windows 操作系统中,用户在进行网络通信和资源访问时,通过验证身份和授权权限来确保网络安全的一种机制。它可以有效限制未经授权的访问,并根据用户权限级别进行操作。

常见的网络认证方式

  1. 用户名和密码认证
    用户通过提供有效的用户名和密码来完成身份验证。这是最基础的认证方式,适用于本地计算机账户或域账户。

  2. Kerberos 认证
    Kerberos 是一种网络身份验证协议,广泛应用于 Windows 域环境中。它通过使用票据和票据授予票证(TGT)来完成身份验证,并生成会话密钥以加密通信。

  3. NTLM 认证
    NTLM(NT LAN Manager)是早期的 Windows 网络认证协议,采用质询-响应机制进行身份验证。尽管 Kerberos 是现代系统的首选协议,但 NTLM 仍在某些旧版系统或非 Windows 系统中使用。

  4. 密钥认证
    使用预先共享的密钥进行身份验证,通常应用于特定场景或应用程序中。

  5. 远程桌面认证
    即 Remote Desktop Authentication,用户在远程访问计算机时需要输入目标计算机的凭据进行认证,以获得访问权限。


二、NTLM 协议质询响应认证机制

基本流程

NTLM 协议采用质询(Challenge)/响应(Response)认证机制,主要包括以下步骤:

  1. 协商阶段
    确定传输协议的版本和其他配置信息,这也是为了解决历史遗留问题并保证向后兼容。

  2. 质询阶段
    服务端生成随机的 Challenge,并将其发送给客户端。这一步是质询响应机制的关键。

  3. 验证阶段
    客户端使用 NTLM-Hash 对 Challenge 加密后生成 Response,服务端通过相同方式验证 Response。

成功认证流程

  1. 客户端向服务端发起连接请求,并协商传输协议。
  2. 服务端本地生成随机 Challenge(16 位或 8 位)并发送给客户端。
  3. 客户端接收到 Challenge 后,利用 NTLM-Hash 加密 Challenge,结合用户信息生成 Response 并发送给服务端。
  4. 服务端验证客户端发送的 Response,匹配则认证成功,否则失败。

在这里插入图片描述


三、NTLM 抓包分析

实验环境

  • 操作系统:两台 Windows Server 2008
  • IP 地址:
    • 192.168.41.239
    • 192.168.41.187

实验步骤

  1. 使用 net use \\IP /u:账号 密码 进行认证。
  2. 同时打开 Wireshark 抓包工具进行数据流量分析,关注smb协议流量包。

在这里插入图片描述

抓包分析要点

  1. 协商阶段
    前四个数据包主要用于协商协议版本和参数,内容简单且意义不大。
    第五个数据包是用户启动身份的验证包,以及包含一些规则。

  2. Challenge 数据包
    第 6 个数据包包含服务端生成的随机 Challenge。

    • NTLMv1 使用 8 位 Challenge。
    • NTLMv2 使用 16 位 Challenge(自 Windows Vista 起默认启用)。
      在这里插入图片描述
  3. Response 数据包
    第 7 个数据包中包含客户端生成的 Response 和账户名等相关信息。

  4. 验证结果
    第 8 个数据包显示服务端验证结果:成功或失败。失败通常会返回 ERROR 信息。


四、Challenge 和 Response 分析

Challenge 和 Response 的作用

  • Challenge
    服务端生成的随机字符,用于防止重放攻击。NTLMv1 为 8 位,NTLMv2 为 16 位。

  • Response
    客户端通过 Challenge、用户凭据和其他信息加密生成,用于身份验证。

Response 的生成过程

  1. NTLMv2-Hash

    • 用户名(大写)和域名编码为 Unicode。
    • 将上述结果与 NTLM-Hash 通过 HMAC-MD5 加密生成 NTLMv2-Hash。
  2. NTProofStr 和 blob

    • 使用 NTLMv2-Hash 对 Challenge 和 blob 进行 HMAC-MD5 加密,生成 NTProofStr。
    • blob 包含时间戳、目标信息和随机填充字符。
  3. 完整 Response
    Response = NTProofStr + blob。


五、NTLMv1 和 NTLMv2 的区别

  1. Challenge 的长度

    • NTLMv1 使用 8 位 Challenge。
    • NTLMv2 使用 16 位 Challenge。
  2. Response 的生成方式

    • NTLMv1:将 NTLM-Hash 填充为 42 位,分为三组,每组 14 位,通过 DES 加密 Challenge 后拼接成 Response。
    • NTLMv2:包含 NTProofStr 和 blob,使用 HMAC-MD5 加密生成。
  3. 安全性
    NTLMv2 提供更强的安全性,防止弱密码的暴力破解。


六、NTLM 协议安全问题

  1. PTH(Pass-the-Hash)攻击
    攻击者只需获取目标系统的 NTLM-Hash,无需明文密码即可模拟认证。

  2. Net-NTLM Hash Relay 攻击
    通过中间人攻击截获 Net-NTLM Hash,重放以绕过身份验证。

  3. Hash 破解

    • NTLMv1 使用 DES,破解较为容易。
    • NTLMv2 使用碰撞攻击或彩虹表,破解难度较大但并非不可能。
  4. 向后兼容性漏洞
    旧版系统的协议设计缺陷容易被攻击者利用。应优先启用更安全的认证协议(如 Kerberos)并禁用 NTLMv1。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值