编程学习网 > IT圈内 > 遗忘的密码终于被破解!多亏了这款利器
2022
07-09

遗忘的密码终于被破解!多亏了这款利器

日常工作中,经常要给文档或压缩包设置密码,美其名曰防止被他人“偷”走,但最终结果往往是“贼”没来,自己被拦在外面——密码忘记了!作茧自缚,防了个寂寞!

不知道,大家有没有遇到过类似的情况。面对如此尴尬的局面,关键是快速恢复密码。说到这,给大家推荐一款号称是世界上最快和最先进的密码恢复工具——hashcat

简介

hashcat是世界上最快和最先进的密码恢复实用程序,支持超过 300 种高度优化的哈希算法的五种独特的攻击模式。hashcat 目前支持 Linux、Windows 和 macOS 上的 CPU、GPU 和其他硬件加速器,并具有帮助实现分布式密码破解的工具。

安装

1. Windows

文末按提示下载最新版压缩包,解压后运行.\hashcat.exe

2. Linux

apt install hashcat

或者在文末按提示下载最新版压缩包,运行./hashcat.bin

3. Mac OS

brew install hashcat

常用参数

1.  -m 破解hash类型

指定要破解的 hash 类型,后面跟 hash 类型对应的数字,如果不指定类型,则默认是 MD5。

可以直接使用hashcat --help查看hash对照表,部分类型如下:

 10400 | PDF 1.1 - 1.3 (Acrobat 2 - 4)                    | Documents
  10410 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #1       | Documents   10420 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #2       | Documents   10500 | PDF 1.4 - 1.6 (Acrobat 5 - 8)                    | Documents
  10600 | PDF 1.7 Level 3 (Acrobat 9)                      | Documents
  10700 | PDF 1.7 Level 8 (Acrobat 10 - 11)                | Documents
   9400 | MS Office 2007                                   | Documents
   9500 | MS Office 2010                                   | Documents
   9600 | MS Office 2013                                   | Documents
   9700 | MS Office <= 2003 $0/$1, MD5 + RC4               | Documents
   9710 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #1  | Documents    9720 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #2  | Documents    9800 | MS Office <= 2003 $3/$4, SHA1 + RC4              | Documents
   9810 | MS Office <= 2003 $3, SHA1 + RC4, collider #1    | Documents    9820 | MS Office <= 2003 $3, SHA1 + RC4, collider #2    | Documents   11600 | 7-Zip                                            | Archives
  12500 | RAR3-hp                                          | Archives
  13000 | RAR5                                             | Archives
    14700 | iTunes backup < 10.0                             | Archives
  14800 | iTunes backup >= 10.0                            | Archives
  23001 | SecureZIP AES-128                                | Archives
  23002 | SecureZIP AES-192                                | Archives
  23003 | SecureZIP AES-256                                | Archives
  13600 | WinZip                                           | Archives

2. -a 破解模式

指定破解模式,后面跟破解模式对应的数字,如:-a 1 使用组合破解

# | Mode  ===+======
  0 | Straight                #使用字典破解   1 | Combination             #使用组合破解   3 | Brute-force             #掩码破解   6 | Hybrid Wordlist + Mask  #字典+掩码破解   7 | Hybrid Mask + Wordlist  #掩码+字典破解 

3.掩码设置

  • 内置掩码:
   ? | Charset
 ===+=========
  l | abcdefghijklmnopqrstuvwxyz   #小写字母   u | ABCDEFGHIJKLMNOPQRSTUVWXYZ   #大写字母   d | 0123456789                   #数字   h | 0123456789abcdef             #数字+小写字母   H | 0123456789ABCDEF             #数字+大写字母   s |  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ #特殊符号
  a | ?l?u?d?s       #大小写字母+数字+特殊符号
  b | 0x00 - 0xff    #十六进制表达式 

举例

?l?l?l 表示3位纯数字密码
?a?a?a 表示3位未知密码
?l?l?l?s?l?l 表示6位密码,前3位和后2位为小写字母,第4位为特殊符号
  • 自定义掩码规则:
-1, --custom-charset1 User-defined charset
-2, --custom-charset2 User-defined charset
-3, --custom-charset3 User-defined charset
-4, --custom-charset4 User-defined charset
  • 例一:
--custom-charset1 #等同于 -1 abcd0123~!%@ #都表示  ?1 就表示abcd0123~!%@ 
  • 例二:
--custom-charset2 ?l?u #?2 就表示?l?u即 数字 + 大写字母 
  • 例三:
-3 xyz -4 789 # ?3?3?4?4就表示为前二位可能是xyz,后四位可能是789 

4.-i, --increment 设置待密码破解长度

参数1:--increment-min 设置最小密码长度

--increment-min=4  #表示最小密码长度是4位; 

参数2:--increment-max 设置最大密码长度

 --increment-max=8 #表示最大密码长度是8位; 

5.-o, --outfile

指定破解成功后的 hash 及所对应的明文密码的存放位置

6.--force

忽略警告信息

范例

RAR密码恢复(Windows为例)

在使用hashcat恢复密码前,需要提取文件的哈希值,这里使用哈希破解工具John来提取哈希值,这是一个工具包,包含了提取rar,zip,office等多种软件的哈希值

1.获取哈希值

#使用rar2john获取加密文件的哈希值 F:\JohnTheRipper> .\rar2john.exe 001.rar
001.rar:$rar5$16$5257b691860aeae438e527be5f503e1e$15$419881fac1b60dfedbb54b85e80d5cf9$8$e4f4973adf386b9a 

2.hashcat恢复密码

.\hashcat.exe -m 13000 -a 3 --force ‘$rar5$16$5257b691860aeae438e527be5f503e1e$15$419881fac1b60dfedbb54b85e80d5cf9$8$e4f4973adf386b9a‘ ?d?d?d?d?d?d -o password.txt

其中:-m 是hash类型,因为我们要恢复的是rar5,对应的数值是13000;如果是rar3,则对应值为12500;

注意:由于hash值里包含特殊符号,系统可能会误以为是转义字符,所有在使用时要加引号,或者将hash值保存在.hash格式文件中,再调用!!!

#上述代码可以使用下面的替换 .\hashcat.exe -m 13000 -a 3 --force myhash.hash ?d?d?d?d?d?d -o password.txt

同样的思路,针对zip,office等文件,我们先使用哈希破解工具John里的zip2john.exe,office2john.py 获取对应的hash值后,再使用hashcat进行恢复操作

最后:hashcathashcat作为最快和最先进的密码恢复实用程序,其功能之强大,模式之丰富,远远超出的想象;其不仅可以恢复文件密码,还可以恢复数据库,Linux,Wifi等的密码,有兴趣的朋友,可以研究一下哦!

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取