John The Ripper

  • John The Ripper是一个快速的密码破解工具,用于在已知密文的情况下尝试破解出明文,支持目前大多数的加密算法,如DES、MD4、MD5等。它支持多种不同类型的系统架构,包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS,主要目的是破解不够牢固的Unix/Linux系统密码。除了在各种Unix系统上最常见的几种密码哈希类型之外,它还支持Windows LM散列,以及社区增强版本中的许多其他哈希和密码。它是一款开源软件。Kali中自带John The Ripper

使用John The Ripper暴力破解PDF

  • 安装编译John The Ripper
1
2
3
4
5
6
7
8
9
git clone https://github.com/magnumripper/JohnTheRipper.git
cd ./JohnTheRipper/src
sudo apt-get update
sudo apt-get install libssl-dev
cd ./JohnTheRipper/src
./configure && make
cd ..
cd ./run
ls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
total 86620
drwxr-xr-x 10 root root 12288 4月 7 15:09 ./
drwxr-xr-x 10 root root 4096 4月 7 10:46 ../
-rwxr-xr-x 1 root root 11545 4月 7 10:46 1password2john.py*
-rwxr-xr-x 1 root root 97726 4月 7 10:46 7z2john.pl*
-rwxr-xr-x 1 root root 3799 4月 7 10:46 adxcsouf2john.py*
-rwxr-xr-x 1 root root 2729 4月 7 10:46 aem2john.py*
-rwxr-xr-x 1 root root 894 4月 7 10:46 aix2john.pl*
-rwxr-xr-x 1 root root 2286 4月 7 10:46 aix2john.py*
-rw-r--r-- 1 root root 4086722 4月 7 10:46 alnum.chr
-rw-r--r-- 1 root root 4174257 4月 7 10:46 alnumspace.chr
-rw-r--r-- 1 root root 1950539 4月 7 10:46 alpha.chr
-rwxr-xr-x 1 root root 1368 4月 7 10:46 andotp2john.py*
-rwxr-xr-x 1 root root 3455 4月 7 10:46 androidbackup2john.py*
-rwxr-xr-x 1 root root 7471 4月 7 10:46 androidfde2john.py*
-rwxr-xr-x 1 root root 1758 4月 7 10:46 ansible2john.py*
-rwxr-xr-x 1 root root 731 4月 7 10:46 apex2john.py*
-rwxr-xr-x 1 root root 2140 4月 7 10:46 apop2john.py*
-rwxr-xr-x 1 root root 2074 4月 7 10:46 applenotes2john.py*
-rwxr-xr-x 1 root root 1447 4月 7 10:46 aruba2john.py*
-rw-r--r-- 1 root root 5720262 4月 7 10:46 ascii.chr
-rwxr-xr-x 1 root root 614 4月 7 10:46 atmail2john.pl*
-rwxr-xr-x 1 root root 6299 4月 7 10:46 axcrypt2john.py*
lrwxrwxrwx 1 root root 4 4月 7 15:09 base64conv -> john*
-rwxr-xr-x 1 root root 10577 4月 7 10:46 benchmark-unify*
-rwxr-xr-x 1 root root 10174 4月 7 10:46 bestcrypt2john.py*
-rw-r--r-- 1 root root 2314 4月 7 10:46 bestcryptve2john.py
drwxr-xr-x 2 root root 4096 4月 7 10:46 bip-0039/
-rwxr-xr-x 1 root root 9421 4月 7 10:46 bitcoin2john.py*
-rwxr-xr-x 1 root root 230288 4月 7 15:09 bitlocker2john*
-rwxr-xr-x 1 root root 2719 4月 7 10:46 bitshares2john.py*
-rwxr-xr-x 1 root root 4315 4月 7 10:46 bitwarden2john.py*
-rwxr-xr-x 1 root root 7754 4月 7 10:46 bks2john.py*
-rwxr-xr-x 1 root root 2940 4月 7 10:46 blockchain2john.py*
-rwxr-xr-x 1 root root 22016 4月 7 15:09 calc_stat*
-rwxr-xr-x 1 root root 2057 4月 7 10:46 cardano2john.py*
-rwxr-xr-x 1 root root 26774 4月 7 10:46 ccache2john.py*
drwxr-xr-x 2 root root 4096 4月 7 10:46 ccl_chrome_indexeddb/
-rwxr-xr-x 1 root root 7054 4月 7 10:46 cisco2john.pl*
-rwxr-xr-x 1 root root 898 4月 7 10:46 codepage.pl*
-rw-r--r-- 1 root root 2830 4月 7 10:46 coinomi2john.py
-rwxr-xr-x 1 root root 107400 4月 7 15:09 cprepair*
-rwxr-xr-x 1 root root 880 4月 7 10:46 cracf2john.py*
-rwxr-xr-x 1 root root 2570 4月 7 10:46 dashlane2john.py*
-rwxr-xr-x 1 root root 3771 4月 7 10:46 deepsound2john.py*
-rw-r--r-- 1 root root 4099 4月 7 10:46 dictionary.rfc2865
-rw-r--r-- 1 root root 465097 4月 7 10:46 digits.chr
-rwxr-xr-x 1 root root 7341 4月 7 10:46 diskcryptor2john.py*
-rwxr-xr-x 1 root root 63816 4月 7 15:09 dmg2john*
-rwxr-xr-x 1 root root 5249 4月 7 10:46 dmg2john.py*
drwxr-xr-x 2 root root 4096 4月 7 10:46 dns/
-rwxr-xr-x 1 root root 26130 4月 7 10:46 DPAPImk2john.py*
-rw-r--r-- 1 root root 54925 4月 7 10:46 dumb16.conf
-rw-r--r-- 1 root root 100781 4月 7 10:46 dumb32.conf
-rw-r--r-- 1 root root 60346 4月 7 10:46 dynamic.conf
-rw-r--r-- 1 root root 8539 4月 7 10:46 dynamic_disabled.conf
-rw-r--r-- 1 root root 9542 4月 7 10:46 dynamic_flat_sse_formats.conf
-rwxr-xr-x 1 root root 2053 4月 7 10:46 ecryptfs2john.py*
-rwxr-xr-x 1 root root 5083 4月 7 10:46 ejabberd2john.py*
-rwxr-xr-x 1 root root 9558 4月 7 10:46 electrum2john.py*
-rwxr-xr-x 1 root root 3625 4月 7 10:46 encdatavault2john.py*
-rwxr-xr-x 1 root root 2717 4月 7 10:46 encfs2john.py*
-rwxr-xr-x 1 root root 1107 4月 7 10:46 enpass2john.py*
-rwxr-xr-x 1 root root 1113 4月 7 10:46 enpass5tojohn.py*
-rwxr-xr-x 1 root root 3773 4月 7 10:46 ethereum2john.py*
-rwxr-xr-x 1 root root 1725 4月 7 10:46 filezilla2john.py*
-rw-r--r-- 1 root root 99202 4月 7 10:46 fuzz.dic
-rwxr-xr-x 1 root root 3324 4月 7 10:46 fuzz_option.pl*
-rwxr-xr-x 1 root root 3439 4月 7 10:46 geli2john.py*
-rwxr-xr-x 1 root root 1867 4月 7 10:46 genincstats.rb*
-rwxr-xr-x 1 root root 186808 4月 7 15:09 genmkvpwd*
lrwxrwxrwx 1 root root 4 4月 7 15:09 gpg2john -> john*
-rwxr-xr-x 1 root root 55808 4月 7 15:09 hccap2john*
-rwxr-xr-x 1 root root 7096 4月 7 10:46 hccapx2john.py*
-rwxr-xr-x 1 root root 428 4月 7 10:46 hextoraw.pl*
-rwxr-xr-x 1 root root 1059 4月 7 10:46 htdigest2john.py*
-rw-r--r-- 1 root root 7536 4月 7 10:46 hybrid.conf
-rwxr-xr-x 1 root root 1458 4月 7 10:46 ibmiscanner2john.py*
-rwxr-xr-x 1 root root 710 4月 7 10:46 ikescan2john.py*
-rwxr-xr-x 1 root root 1626 4月 7 10:46 ios7tojohn.pl*
-rwxr-xr-x 1 root root 5715 4月 7 10:46 itunes_backup2john.pl*
-rwxr-xr-x 1 root root 4810 4月 7 10:46 iwork2john.py*
-rwxr-xr-x 1 root root 26567864 4月 7 15:09 john*
-rw-r--r-- 1 root root 33024 4月 7 10:46 john.bash_completion
-rw-r--r-- 1 root root 121662 4月 7 10:46 john.conf
-rw------- 1 root root 180646 4月 7 16:46 john.log
-rw------- 1 root root 0 4月 7 15:09 john.pot
-rw------- 1 root root 160 4月 7 16:46 john.rec
-rw-r--r-- 1 root root 8928 4月 7 10:46 john.zsh_completion
-rw-r--r-- 1 root root 3620 4月 7 10:46 jtrconf.pm
-rw-r--r-- 1 root root 35525 4月 7 10:46 jtr_rulez.pm
-rwxr-xr-x 1 root root 1110 4月 7 10:46 kdcdump2john.py*
-rwxr-xr-x 1 root root 297992 4月 7 15:09 keepass2john*
-rw-r--r-- 1 root root 11308 4月 7 10:46 keplr2john.py
-rwxr-xr-x 1 root root 2955 4月 7 10:46 keychain2john.py*
-rwxr-xr-x 1 root root 3534 4月 7 10:46 keyring2john.py*
-rwxr-xr-x 1 root root 5416 4月 7 10:46 keystore2john.py*
-rwxr-xr-x 1 root root 2643 4月 7 10:46 kirbi2john.py*
-rwxr-xr-x 1 root root 849 4月 7 10:46 known_hosts2john.py*
-rw-r--r-- 1 root root 22635 4月 7 10:46 korelogic.conf
-rwxr-xr-x 1 root root 9677 4月 7 10:46 krb2john.py*
-rwxr-xr-x 1 root root 4431 4月 7 10:46 kwallet2john.py*
-rw-r--r-- 1 root root 1466791 4月 7 10:46 lanman.chr
-rwxr-xr-x 1 root root 4297 4月 7 10:46 lastpass2john.py*
-rw-r--r-- 1 root root 7449800 4月 7 10:46 latin1.chr
-rwxr-xr-x 1 root root 472 4月 7 10:46 ldif2john.pl*
-rwxr-xr-x 1 root root 2628 4月 7 10:46 leet.pl*
drwxr-xr-x 2 root root 4096 4月 7 10:46 lib/
-rwxr-xr-x 1 root root 6253 4月 7 10:46 libreoffice2john.py*
-rwxr-xr-x 1 root root 878 4月 7 10:46 lion2john-alt.pl*
-rwxr-xr-x 1 root root 994 4月 7 10:46 lion2john.pl*
-rw-r--r-- 1 root root 1184244 4月 7 10:46 lm_ascii.chr
-rwxr-xr-x 1 root root 1525 4月 7 10:46 lotus2john.py*
-rw-r--r-- 1 root root 1161863 4月 7 10:46 lower.chr
-rw-r--r-- 1 root root 2464980 4月 7 10:46 lowernum.chr
-rw-r--r-- 1 root root 1209621 4月 7 10:46 lowerspace.chr
-rwxr-xr-x 1 root root 4590 4月 7 10:46 luks2john.py*
-rwxr-xr-x 1 root root 2602 4月 7 10:46 mac2john-alt.py*
-rwxr-xr-x 1 root root 24611 4月 7 10:46 mac2john.py*
-rwxr-xr-x 1 root root 1432 4月 7 10:46 mailer*
-rwxr-xr-x 1 root root 842 4月 7 10:46 makechr*
-rwxr-xr-x 1 root root 2297 4月 7 10:46 mcafee_epo2john.py*
-rwxr-xr-x 1 root root 22736 4月 7 15:09 mkvcalcproba*
-rwxr-xr-x 1 root root 1221 4月 7 10:46 monero2john.py*
-rwxr-xr-x 1 root root 2495 4月 7 10:46 money2john.py*
-rw-r--r-- 1 root root 1055 4月 7 10:46 mongodb2john.js
-rwxr-xr-x 1 root root 6267 4月 7 10:46 mosquitto2john.py*
-rwxr-xr-x 1 root root 2578 4月 7 10:46 mozilla2john.py*
-rwxr-xr-x 1 root root 5440 4月 7 10:46 multibit2john.py*
-rwxr-xr-x 1 root root 942 4月 7 10:46 neo2john.py*
-rwxr-xr-x 1 root root 9676 4月 7 10:46 netntlm.pl*
-rwxr-xr-x 1 root root 5186 4月 7 10:46 netscreen.py*
-rwxr-xr-x 1 root root 11395 4月 7 10:46 network2john.lua*
-rwxr-xr-x 1 root root 133905 4月 7 10:46 office2john.py*
-rwxr-xr-x 1 root root 3072 4月 7 10:46 openbsd_softraid2john.py*
drwxr-xr-x 4 root root 12288 4月 7 10:46 opencl/
-rwxr-xr-x 1 root root 3911 4月 7 10:46 openssl2john.py*
-rwxr-xr-x 1 root root 2844 4月 7 10:46 padlock2john.py*
-rwxr-xr-x 1 root root 203600 4月 7 10:46 pass_gen.pl*
-rw-r--r-- 1 root root 15327454 4月 7 10:46 password.lst
-rwxr-xr-x 1 root root 55349 4月 7 10:46 pcap2john.py*
-rwxr-xr-x 1 root root 59808 4月 7 10:46 pdf2john.pl*
-rwxr-xr-x 1 root root 4960 4月 7 10:46 pdf2john.py*
-rwxr-xr-x 1 root root 4901 4月 7 10:46 pem2john.py*
-rwxr-xr-x 1 root root 3329 4月 7 10:46 pfx2john.py*
-rwxr-xr-x 1 root root 9861 4月 7 10:46 pgpdisk2john.py*
-rwxr-xr-x 1 root root 2751 4月 7 10:46 pgpsda2john.py*
-rwxr-xr-x 1 root root 9647 4月 7 10:46 pgpwde2john.py*
-rw-r--r-- 1 root root 6305 4月 7 10:46 pkcs12kdf.py
-rwxr-xr-x 1 root root 4198 4月 7 10:46 potcheck.pl*
-rwxr-xr-x 1 root root 1462 4月 7 10:46 prosody2john.py*
drwxr-xr-x 2 root root 4096 4月 7 10:46 protobuf/
-rwxr-xr-x 1 root root 2480 4月 7 10:46 pse2john.py*
-rwxr-xr-x 1 root root 1438 4月 7 10:46 ps_token2john.py*
-rwxr-xr-x 1 root root 53472 4月 7 15:09 putty2john*
-rwxr-xr-x 1 root root 1686 4月 7 10:46 pwsafe2john.py*
-rwxr-xr-x 1 root root 38224 4月 7 15:09 racf2john*
-rwxr-xr-x 1 root root 7165 4月 7 10:46 radius2john.pl*
-rwxr-xr-x 1 root root 2274 4月 7 10:46 radius2john.py*
lrwxrwxrwx 1 root root 4 4月 7 15:09 rar2john -> john*
-rwxr-xr-x 1 root root 28440 4月 7 15:09 raw2dyna*
-rw-r--r-- 1 root root 5712 4月 7 10:46 regex_alphabets.conf
-rwxr-xr-x 1 root root 8377 4月 7 10:46 relbench*
-rw-r--r-- 1 root root 54525 4月 7 10:46 repeats16.conf
-rw-r--r-- 1 root root 100475 4月 7 10:46 repeats32.conf
-rwxr-xr-x 1 root root 1606 4月 7 10:46 restic2john.py*
-rwxr-xr-x 1 root root 16427 4月 7 10:46 rexgen2rules.pl*
drwxr-xr-x 2 root root 4096 4月 7 10:46 rules/
-rw-r--r-- 1 root root 107926 4月 7 10:46 rules-by-rate.conf
-rw-r--r-- 1 root root 107977 4月 7 10:46 rules-by-score.conf
-rwxr-xr-x 1 root root 2363 4月 7 10:46 rulestack.pl*
-rwxr-xr-x 1 root root 9541 4月 7 10:46 sap2john.pl*
-rwxr-xr-x 1 root root 1234 4月 7 10:46 sense2john.py*
-rwxr-xr-x 1 root root 544 4月 7 10:46 sha-dump.pl*
-rwxr-xr-x 1 root root 510 4月 7 10:46 sha-test.pl*
-rwxr-xr-x 1 root root 20433 4月 7 10:46 signal2john.py*
-rwxr-xr-x 1 root root 899 4月 7 10:46 sipdump2john.py*
-rwxr-xr-x 1 root root 9677 4月 7 10:46 ssh2john.py*
-rwxr-xr-x 1 root root 25114 4月 7 10:46 sspr2john.py*
-rwxr-xr-x 1 root root 3814 4月 7 10:46 staroffice2john.py*
-rw-r--r-- 1 root root 107571 4月 7 10:46 stats
-rwxr-xr-x 1 root root 760 4月 7 10:46 strip2john.py*
-rwxr-xr-x 1 root root 15572 4月 7 10:46 telegram2john.py*
-rw-r--r-- 1 root root 20198 4月 7 10:46 test_tezos2john.py
-rwxr-xr-x 1 root root 11581 4月 7 10:46 tezos2john.py*
-rwxr-xr-x 1 root root 34848 4月 7 15:09 tgtsnarf*
-rwxr-xr-x 1 root root 3238 4月 7 10:46 truecrypt2john.py*
-rwxr-xr-x 1 root root 72376 4月 7 15:09 uaf2john*
lrwxrwxrwx 1 root root 4 4月 7 15:09 unafs -> john*
lrwxrwxrwx 1 root root 4 4月 7 15:09 undrop -> john*
lrwxrwxrwx 1 root root 4 4月 7 15:09 unique -> john*
-rw-r--r-- 1 root root 21798 4月 7 10:46 unisubst.conf
-rwxr-xr-x 1 root root 1087 4月 7 10:46 unrule.pl*
lrwxrwxrwx 1 root root 4 4月 7 15:09 unshadow -> john*
-rw-r--r-- 1 root root 668568 4月 7 10:46 upper.chr
-rw-r--r-- 1 root root 1220961 4月 7 10:46 uppernum.chr
-rw-r--r-- 1 root root 9286825 4月 7 10:46 utf8.chr
-rwxr-xr-x 1 root root 2250 4月 7 10:46 vdi2john.pl*
-rwxr-xr-x 1 root root 2184 4月 7 10:46 vmx2john.py*
-rwxr-xr-x 1 root root 181056 4月 7 15:09 wpapcap2john*
-rwxr-xr-x 1 root root 4576 4月 7 10:46 zed2john.py*
lrwxrwxrwx 1 root root 4 4月 7 15:09 zip2john -> john*
drwxr-xr-x 2 root root 4096 4月 7 10:46 ztex/
  • 各种脚本
  1. 先要对pdf进行一个hash文件生成,我们要使用pdf2john.pl来生成

    1
    pdf2john.pl ~/test_pdf.pdf > ~/pdf.hash
  2. 查看pdf.hash的内容

    1
    2
    cat pdf.hash
    /home/holelin/test_pdf.pdf:$pdf$4*4*128*-3392*0*16*35452d43302d43442d41362d37362d31*32*e03c2cb0619c1f097b809d54902e3c3ca521bc59f6f6c1312017451c7fadfb1c*32*234753682d045ef5f752ff16ebde039fd0801a75366337c1ea2a4ed57f81cfcf
  3. 最后执行

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    john pdf.hash
    Using default input encoding: UTF-8
    Loaded 1 password hash (PDF [MD5 SHA2 RC4/AES 32/64])
    Cost 1 (revision) is 4 for all loaded hashes
    Will run 40 OpenMP threads
    Proceeding with single, rules:Single
    Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status
    Almost done: Processing the remaining buffered candidate passwords, if any.
    0g 0:00:00:08 DONE 1/3 (2024-04-07 15:09) 0g/s 3682p/s 3682c/s 3682C/s T1900..Ptest1900
    Proceeding with wordlist:./password.lst
    Enabling duplicate candidate password suppressor
    The following keypresses are recognized:
    'q' or Ctrl-C to abort
    'h' for help (this message)
    '>' and '<' to increase or decrease verbosity, respectively
    's' for detailed status (and changes since its previous display)
    'd' for delayed status (right upon completion of current batch)
    'D' for delayed detailed status
    Almost any other key for simple status
    • 此过程需要等待一段时间
  4. 使用命令查看密码

    1
    john --show ~/pdf.hash