在内网渗透测试中,NTLM(NT LAN Manager)和LM(LAN Manager)都是与Windows网络身份验证相关的协议。下面分别介绍这两种协议以及它们在渗透测试中的重要性。
NTLM(NT LAN Manager)
1. 简介:
- NTLM 是微软在Windows NT系列操作系统中引入的身份验证协议,用于网络环境中的用户身份验证。相比之前的LM协议,NTLM提供了更好的安全性和更强的功能。
2. 工作机制:
- NTLM使用三步身份验证方式(挑战-响应机制),具体流程如下:
1. 客户端向服务器请求身份验证。
2. 服务器生成随机数(挑战),并将其发送给客户端。
3. 客户端对挑战进行加密处理,使用用户的密码生成哈希值,然后将这个哈希值发送回服务器。
4. 服务器收到后进行验证。
3.生成实例:
1. 用户密码输入
假设用户的密码是 **"password"**。
2. 密码转换
用户输入的密码首先被转成Unicode格式(UTF-16LE编码):
- **"password"** 的Unicode表示为:`0x70 0x00 0x61 0x00 0x73 0x00 0x73 0x00 0x77 0x00 0x6F 0x00 0x72 0x00 0x64 0x00`
3. 计算哈希
将上述Unicode字符串传递给MD4哈希函数进行哈希计算,得到一个128位的哈希值。假设经过计算,得到的NTLM哈希为:
32ED87BDB5F244F8F7B3C3B2D3A1D1E7
4. 存储哈希
这个哈希值将被存储在Windows的SAM数据库中,与用户账户相关联。
5. 身份验证过程
- 当用户再次输入密码进行登录时,系统会重复上述转换和哈希过程。
- 计算出的哈希值与SAM数据库中的哈希值进行比较:
- 如果匹配,则用户验证通过。
- 如果不匹配,则用户验证失败。
安全性注意事项
即便这个过程看似简单,实际的安全性问题仍然很突出。比如,攻击者可以利用彩虹表(预先计算好的哈希值与密码的映射表)或暴力破解手段,快速猜测出用户的密码,特别是如果用户使用的密码较弱或常见。
因此,在现代应用中,建议使用更安全的认证方式,比如使用加盐的哈希算法、Kerberos或其他更加安全的身份验证机制。
4. 安全性问题:
- 尽管NTLM比LM安全,但它仍然存在一些问题,如凭证捕获和中间人攻击。攻击者能够通过网络捕获NTLM哈希,并进行离线破解。
5. 渗透测试中的应用:
- 渗透测试者可能会尝试捕获NTLM哈希,并使用工具(如Hashcat或John the Ripper)进行破解,以获取用户凭证。还可以利用工具进行NTLM relay攻击,从而获得对其他系统的访问权限。
LM(LAN Manager)
一. 简介:
- LM是早期的Windows身份验证协议,主要用于Windows 95和Windows NT 4.0之前的系统。由于其安全性较低,已逐渐被NTLM取代,但在某些情况下仍可能被使用。只是被禁用,未被删除
二. 工作机制:
LM(LAN Manager)哈希是一种早期的身份验证机制,主要用于Windows系统。以下是LM哈希的原理和工作过程的详细介绍:
LM哈希的工作原理
1. 密码处理:
- 用户输入密码后,LM哈希会对其进行处理。处理的步骤如下:
- 转换为大写:LM哈希将输入的密码转换为全大写字母。这意味着“Password”和“PASSWORD”会被认为是相同的。
- 字符限制:LM哈希仅处理前14个字符的密码。如果密码超过14个字符,超出的部分将被截断。
2. 分割与填充:
- LM哈希将提取的14个字符分为两个7字符的部分。如果密码长度不足14个字符,系统会在其后填充空格以达到长度要求。
- 例如,密码“abc”会被处理为“ABC ”(填充空格)。
3. 生成DES哈希:
- 每个7字符的部分都会被转化为一个64位(8字节)的DES密钥。LM哈希使用DES算法将每个7字符部分进行加密,生成两个8字节的哈希值。
4. 拼接哈希值:
- 最终的LM哈希是将两个8字节的哈希值拼接在一起,形成一个16字节(128位)的LM哈希值。
### 安全性问题
由于LM哈希的设计缺陷,存在多种安全性问题:
1. **弱加密算法**:使用的DES加密算法已经被证明相对不安全,容易受到攻击。
2. **大小写不敏感**:由于哈希的生成过程中将密码转换为全大写字母,这也大大减少了密码的复杂性,使其容易被暴力破解。
3. **只使用部分密码**:仅使用密码的前14个字符,加之填充方式,使得即使攻击者获取了LM哈希,也能通过彩虹表等方式快速破解。
实际例子:
好的,让我们通过一个实际例子来更好地理解LM哈希的生成过程。
### 示例:LM哈希生成过程
假设用户的密码为“Password123”。
1. 步骤一:转换为大写
- 输入的密码“Password123”首先会被转换为大写:
- 大写后:`PASSWORD123`
2. 步骤二:字符限制
- LM哈希仅处理前14个字符。在这个例子中,“PASSWORD123”只有12个字符,因此剩下的两个字符用空格填充:
- 填充后的结果:`PASSWORD12 `(后面有两个空格)
3. 步骤三:分割与生成DES密钥
- 将填充后的字符串分为两个7字符的部分:
- 第一部分:`PASSWOR`
- 第二部分:`D12 `(包含空格)
4. 步骤四:生成DES哈希
- 每个7字符的部分会生成一个DES密钥,并使用该密钥进行哈希计算。
- 假设经过DES加密算法处理后:
- 第一部分`PASSWOR`的哈希值为`ABCDEF01`
- 第二部分`D12 `的哈希值为`12345678`
5. 步骤五:拼接哈希值
- 将两个8字节的哈希值拼接在一起,得到最终的LM哈希值:
- 最终LM哈希值为:`ABCDEF0112345678`
在这个例子中,尽管密码是“Password123”,但是由于LM哈希的设计限制,攻击者可以轻易地猜测或使用预先计算好的哈希值表(例如彩虹表)来破解这个哈希。
三. 安全性问题:
- LM使用固定长度的哈希,且易于暴力破解,因而安全性极低。攻击者可以利用工具快速破解LM哈希,并获取用户密码。
四. 渗透测试中的应用:
- 虽然新的系统不再广泛采用LM,但在老旧系统或配置不当的环境中,渗透测试人员可能会发现并利用LM哈希进行攻击。
原文始发于微信公众号(泷羽sec-云和):内网渗透-NTML和LM
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论