From aldeid
Jump to navigation Jump to search


This tutorial teaches some methods to crack zip password protected archives.

Brute force

Let's use zip2john to extract the password hashes first:

$ /data/src/john-1.9.0-jumbo-1/run/zip2john Evelyn\ > evelyn.hashes
ver 2.0 efh 5455 efh 7875 Evelyn Davis.vcf PKZIP Encr: 2b chk, TS_chk, cmplen=137, decmplen=155, crc=133F127D
ver 2.0 efh 5455 efh 7875 Evelyn PKZIP Encr: 2b chk, TS_chk, cmplen=23743, decmplen=27018, crc=87E609B9
NOTE: It is assumed that all files in each archive have the same password.
If that is not the case, the hash may be uncrackable. To avoid this, use
option -o to pick a file at a time.

It results in the below file:

$ cat evelyn.hashes 
Evelyn$pkzip2$2*2*1*0*8*24*87e6*92fc*fc2c41155ff6b3c6d3cc89249bcd9b6b113c3574456807b8c3f0f5938a8e3c097e039f49*2*0*89*9b*133f127d*0*4a*8*89*133f*926d*f299079bdc49a88f5ec5927d1919241863552513893ab3c058c7a1edc7b482a86ada9ee13b99de8bd0ed5c0c660ed08d1c76944275c86a05b04fb4423293f2efb1816b4d65f64626bd69eb610aa4ea97bacc6494f11fa6615d6598716b11135cbdcb0212298ef47d708f7ffb0715c2b342f897d691c3da89bffe18733758ba16fcbe59a03040669c93*$/pkzip2$::Evelyn Davis.vcf, signature.png:Evelyn

Now, let's use John the Ripper to brute force a password

$ /data/src/john-1.9.0-jumbo-1/run/john evelyn.hashes 
Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Will run 8 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
Warning: Only 5 candidates buffered for the current salt, minimum 8 needed for performance.
Almost done: Processing the remaining buffered candidate passwords, if any.
Warning: Only 2 candidates buffered for the current salt, minimum 8 needed for performance.
Proceeding with wordlist:/data/src/john-1.9.0-jumbo-1/run/password.lst, rules:Wordlist
Proceeding with incremental:ASCII
basher           (Evelyn
1g 0:00:00:01 DONE 3/3 (2020-03-22 14:03) 0.6329g/s 455093p/s 455093c/s 455093C/s 096935..ch3187
Use the "--show" option to display all of the cracked passwords reliably
Session completed

Plaintext attack using template

Suppose that we have the 2 below zip archives:

$ zipinfo Evelyn\ 
Archive:  Evelyn
Zip file size: 24248 bytes, number of entries: 2
-rw-r--r--  3.0 unx      155 TX defN 16-Jul-24 12:19 Evelyn Davis.vcf
-rw-r--r--  3.0 unx    27018 BX defN 16-Jul-24 12:23 signature.png
2 files, 27173 bytes uncompressed, 23856 bytes compressed:  12.2%
$ zipinfo Ryan\ 
Archive:  Ryan
Zip file size: 98482 bytes, number of entries: 2
-rw-r--r--  3.0 unx      146 TX defN 16-Jul-24 12:19 Ryan King.vcf
-rw-r--r--  3.0 unx   100990 BX defN 16-Jul-27 15:27 signature.png
2 files, 101136 bytes uncompressed, 98096 bytes compressed:  3.0%

We have already been able to crack the password of the first zip archive (Evelyn And considering both zip archives have a similar content, we can easily guess what the content of the Ryan King.vcf looks like, based on Evelyn Davis.vcf:

Evelyn\ Davis.vcf (we know it) Ryan King.vcf (assumption)
FN:Evelyn Davis
ORG:Defund Corp;
EMAIL;type=INTERNET;type=WORK;type=pref:[email protected]
FN:Ryan King
ORG:Defund Corp;
EMAIL;type=INTERNET;type=WORK;type=pref:[email protected]

Now, we can use pkcrack to perform a plaintext attack:

$ pkcrack-1.2.2/src/pkcrack -C Ryan\ -c 'Ryan King.vcf' -P -p 'Ryan King.vcf' -d -a
Files read. Starting stage 1 on Sat Aug 27 10:23:09 2016
Generating 1st generation of possible key2_133 values...done.
Found 4194304 possible key2-values.
Now we're trying to reduce these...
Done. Left with 64012 possible Values. bestOffset is 24.
Stage 1 completed. Starting stage 2 on Sat Aug 27 10:23:13 2016
Strange... had a false hit.
Ta-daaaaa! key0=86cdf919, key1=bd44c60c, key2=60dbe8f7
Probabilistic test succeeded for 114 bytes.
Strange... had a false hit.
Strange... had a false hit.
Strange... had a false hit.
Strange... had a false hit.
Strange... had a false hit.
Stage 2 completed. Starting zipdecrypt on Sat Aug 27 10:47:01 2016
Decrypting Ryan King.vcf (be2570e236508bf4c50b6b92)... OK!
Decrypting signature.png (0d296646595805d826ba79ab)... OK!
Finished on Sat Aug 27 10:47:01 2016


Keywords: crack zip password archive john ripper bruteforce pkcrack plaintext