29 lines
2.0 KiB
Markdown
29 lines
2.0 KiB
Markdown
### PTH 中 LM hash 和 NTLM hash 的区别
|
||
|
||
**LM Hash (LAN Manager Hash)**
|
||
|
||
- **全称**:LAN Manager Hash
|
||
- **哈希算法**:它是一种非常老旧且脆弱的哈希算法,主要用于 Windows NT 4.0 及更早的版本
|
||
- **加密方式**:
|
||
1. 将用户的明文密码转换为大写
|
||
2. 如果密码长度超过 14 个字符,只取前 14 个。如果不足 14 个,用空字符填充到 14 个
|
||
3. 将 14 个字符的密码分成两部分,每部分 7 个字符
|
||
4. 分别使用 DES(Data Encryption Standard)算法进行加密
|
||
- **主要缺陷**:
|
||
- **不区分大小写**:LM 哈希会将所有字母都转换为大写,导致密码的复杂性大大降低,例如 `password` 和 `PASSWORD` 会生成相同的 LM 哈希
|
||
- **分段加密**:将密码分成两段,每段单独加密,这使得哈希破解变得非常容易,攻击者可以分别破解这两段,大大缩短破解时间
|
||
- **无盐值**:它没有使用盐值(Salt),这使得攻击者可以使用彩虹表(Rainbow Table)进行快速破解
|
||
|
||
**结论**:LM 哈希非常不安全,很容易在几秒钟内被破解。从 Windows Vista 和 Windows Server 2008 开始,LM 哈希默认是禁用的,除非为了向后兼容性而手动启用
|
||
|
||
**NTLM Hash (NT LAN Manager Hash)**
|
||
|
||
- **全称**:NT LAN Manager Hash
|
||
- **哈希算法**:它使用了 **MD4** 哈希算法,并且不对密码进行大小写转换或填充
|
||
- **加密方式**:
|
||
1. 将用户的明文密码转换为 UTF-16LE 编码
|
||
2. 对 UTF-16LE 编码的密码进行 MD4 哈希运算
|
||
- **主要特点**:
|
||
- **区分大小写**:NTLM 哈希保留了密码的大小写,这增加了哈希破解的难度
|
||
- **没有分段**:它对整个密码进行一次性哈希运算,而不是分段
|
||
- **依然没有盐值**:尽管比 LM 哈希更安全,但 NTLM 哈希仍然没有使用盐值,因此,如果密码简单或在字典中,仍然可以通过彩虹表或字典攻击被破解 |