|
|
本帖最后由 yuping 于 2025-12-23 20:19 编辑
NTLM Hash生成步骤如下(基于Windows系统):
1. Unicode编码转换
输入密码:用户输入的密码(如admin)。
转换为Unicode:将密码转换为Unicode编码(小端序),例如admin → 610064006d0069006e00。
2. MD4哈希计算
MD4加密:对Unicode编码后的字符串进行MD4哈希运算,生成128位(16字节)的哈希值。
示例:admin → 32ED87BDB5FDC5E9CBA88547376818D4。
3. 存储格式
十六进制显示:哈希值通常以大写十六进制字符串形式存储(如32ED87BDB5FDC5E9CBA88547376818D4)。
SAM文件:Windows系统将NTLM Hash存储在C:\Windows\System32\config\SAM文件中,格式为用户名:SID:LM-HASH:NTLM-HASH。
关键点说明
大小写敏感:NTLM Hash对明文密码的大小写敏感,无法通过哈希值判断原始密码长度或是否小于8字节。
安全性:MD4算法是单向哈希函数,破解难度较高,但可通过彩虹表等工具加速破解。
注意事项
LM Hash:Windows Vista及以上版本默认禁用LM Hash,仅保留NTLM Hash。
认证流程:NTLM协议通过挑战-响应机制验证用户身份,服务器发送随机挑战,客户端用密码哈希生成响应。
打开 命令提示符(cmd)
输入以下命令(将 admin 替换为你想加密的密码):
powershell -Command "$pwd = 'admin'; $utf16 = [System.Text.Encoding]::Unicode.GetBytes($pwd); $md4 = New-Object System.Security.Cryptography.MD4CryptoServiceProvider; $hash = $md4.ComputeHash($utf16); [System.BitConverter]::ToString($hash).Replace('-', '').ToUpper()"
示例输出:
32ED87BDB5FDC5E9CBA88547376818D4
|
|