破解含变音符号密码的技术指南

本文详细介绍了如何破解包含德语变音符号(如ü, ö)的Windows密码,涵盖Hashcat和John the Ripper工具的使用技巧,重点解决字符编码转换问题,并演示了字典攻击与暴力破解两种方法的实现过程。

破解含变音符号密码的技术指南

问题场景

我们获得了一个包含变音符号的Windows密码哈希值(示例密码:“Möm Rülez!"),该哈希通过域密码审计工具(DPAT)从Active Directory域控制器提取。哈希格式如下:

1
dpatdomain.local\larry:1603:aad3b435b51404eeaad3b435b51404ee:ecd382f6949d712f7f81982242755cc3:::

其中关键部分是32字符的NTLM哈希值(ecd382…)。

工具对比测试

  1. John the Ripper
    使用字典文件(wordlist.txt)能直接成功破解:

    1
    
    john hashes.ntds -w=wordlist.txt --format=NT
    
  2. Hashcat初始失败
    相同字典文件在Hashcat中失败:

    1
    
    hashcat -m 1000 -a 0 hashes.ntds wordlist.txt
    

编码问题分析

通过xxd工具检查发现:

  • UTF-8编码的变音字符占用两个字节(如ö显示为c3b6
  • 而Windows系统期望ANSI编码(单字节表示,如ö对应f6

解决方案

  1. Windows系统
    使用记事本将字典文件另存为ANSI编码格式

  2. Linux系统
    使用iconv转换编码:

    1
    
    iconv wordlist.txt -f utf-8 -t windows-1252 > wordlist-ansi.txt
    
  3. 验证破解
    转换后Hashcat成功破解,但以HEX格式显示结果:

    1
    
    $HEX[4df66d2052fc6c657a21]
    

暴力破解方案

  1. 使用预定义字符集

    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
    
  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
    
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计