破解含变音符号密码的技术指南
问题场景
我们获得了一个包含变音符号的Windows密码哈希值(示例密码:“Möm Rülez!"),该哈希通过域密码审计工具(DPAT)从Active Directory域控制器提取。哈希格式如下:
|
|
其中关键部分是32字符的NTLM哈希值(ecd382…)。
工具对比测试
-
John the Ripper
使用字典文件(wordlist.txt)能直接成功破解:1
john hashes.ntds -w=wordlist.txt --format=NT
-
Hashcat初始失败
相同字典文件在Hashcat中失败:1
hashcat -m 1000 -a 0 hashes.ntds wordlist.txt
编码问题分析
通过xxd
工具检查发现:
- UTF-8编码的变音字符占用两个字节(如
ö
显示为c3b6
) - 而Windows系统期望ANSI编码(单字节表示,如
ö
对应f6
)
解决方案
-
Windows系统
使用记事本将字典文件另存为ANSI编码格式 -
Linux系统
使用iconv转换编码:1
iconv wordlist.txt -f utf-8 -t windows-1252 > wordlist-ansi.txt
-
验证破解
转换后Hashcat成功破解,但以HEX格式显示结果:1
$HEX[4df66d2052fc6c657a21]
暴力破解方案
-
使用预定义字符集
1 2 3
hashcat -m 1000 -a 3 hashes.ntds \ -1 /usr/share/hashcat/charsets/special/German/de_ISO-8859-1-special.hcchr \ -2 ?1?u?l?s ?2?2?2?2?2?2?2?2?2?2
-
十六进制字符集定义
1 2
hashcat -m 1000 -a 3 hashes.ntds \ --hex-charset -1 ?l?u?sf6fc ?1?1?1?1?1?1?1?1?1?1