Each time I teach my Security class, I give a month-long lab to crack as many passwords as possible. For this spring’s contest (opened on February 26th 2020), I used three different hash types: NTLM, MD5, and SHA-512. The contest was extended to Friday, April 10th at 11:59 PM PDT due to COVID-19. The password hashes (30 total):


64 total submissions. The answers:

  • (MD5) shanemcmahon:voluptuous8887 => 29 students cracked this
  • (MD5) undertaker:un1verse => 52 students cracked this
  • (MD5) niajax:Abovyan => 37 students cracked this
  • (MD5) beckylynch:MAHR => 32 students cracked this
  • (MD5) mickiejames:gwyq => 25 students cracked this
  • (MD5) mandyrose:v2zcyx => 13 students cracked this
  • (MD5) bobbyroode:kY32cWmn => 0 student cracked this
  • (MD5) charlotteflair:a1K#le => 2 students cracked this
  • (MD5) carmella:abc123 => 63 students cracked this
  • (MD5) ajstyles:eviluno => 14 students cracked this
  • (MD5) sethrollins:moxley => 53 students cracked this
  • (MD5) rubyriott:+_X1R*i,Fz”f => 0 student cracked this
  • (SHA-512) johncena:attingeste => 13 students cracked this
  • (SHA-512) alexabliss:prohnan => 10 student cracked this
  • (SHA-512) dolphziggler:lend => 34 students cracked this
  • (SHA-512) sonyadeville:rajeesh => 16 students cracked this
  • (SHA-512) bayley:L!verpool => 5 students cracked this
  • (SHA-512) kevinowens:827916 => 7 students cracked this
  • (SHA-512) randyorton:q6479b => 3 students cracked this
  • (SHA-512) embermoon:siIVuTVz => 0 student cracked this
  • (SHA-512) romanreigns:3>9(&[ => 0 student cracked this
  • (SHA-512) rondarousey:2n76+@4=nN:e => 0 student cracked this
  • (SHA-512) nikkicross:tgZRki#{“,hz => 0 student cracked this
  • (SHA-512) brocklesnar:love14 => 43 students cracked this
  • (NTLM) danabrooke:florida1 => 47 students cracked this
  • (NTLM) themiz:lamata => 50 student cracked this
  • (NTLM) braywyatt:pi1f312in619 => 29 students cracked this
  • (NTLM) kofikingston:SPrsoe => 29 students cracked this
  • (NTLM) finnbalor:9(Z;5= => 15 students cracked this
  • (NTLM) sashabanks:-HP0-g7%85 => 0 student cracked this

To earn all 10 / 10 points for the lab, students had to crack 8 or 9 passwords; 10.5 points were awarded to anyone who cracked 10 or more passwords. The final distribution:

22 (1 total)
21 21 (2 total)
18 (1 total)
17 (1 total)
16 (1 total)
15 (1 total)
14 14 14 (3 total)
13 13 13 (3 total)
12 12 12 (3 total)
11 11 11 11 11 (5 total)
10 10 10 10 10 (5 total)
09 09 09 09 09 09 09 09 (8 total)
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 (15 total)
07 07 07 07 07 07 (6 total)
06 06 (2 total)
05 05 05 (3 total)
03 03 (2 total)
01 01 (2 total)

The winner cracked 22 of the 30 passwords.

Winner 1’s haul and methodology:

carmella:abc123 undertaker:un1verse shanemcmahon:voluptuous8887 mickiejames:gwyq brocklesnar:love14 dolphziggler:lend danabrooke:florida1 themiz:lamata braywyatt:pi1f312in619 niajax:Abovyan beckylynch:MAHR sethrollins:moxley kofikingston:SPrsoe kevinowens:827916 finnbalor:9(Z;5= ajstyles:eviluno johncena:attingeste bayley:L!verpool alexabliss:prohnan sonyadeville:rajeesh mandyrose:v2zcyx randyorton:q6479b I learned Hashcat rather than JTR, since it has GPU support out of the box. I’m running a lot of masks and found a few big word lists. A couple of the passwords were found by a Google Search too.

Strategies used by students who cracked 8 or more passwords:

I used John the Ripper to crack the following passwords, using different flags to extract specific passwords. carmella:abc123 (no flags) danabrooke:florida1 (–format=NT) themiz:lamata (–format=NT) kofikingston:SPrsoe (–format=NT) niajax:Abovyan (–wordlist=A.txt) - using a wordlist containing many words beginning with A beckylynch:MAHR (–wordlist=M.txt) - using a wordlist containing many words beginning with M undertaker:un1verse (–wordlist=U.txt) - using a wordlist containing many words beginning with U sethrollins:moxley (–wordlist=M.txt) - using a wordlist containing many words beginning with M

I started out using John the Ripper on a VM. VMs don’t support GPU acceleration, so I installed Ubuntu on a USB drive so I could boot from that and run the GPU natively. I build JtR Jumbo version which supports GPUs and ran that. I eventually tried using hashcat, which I then realized had an existing windows binary, so I was able to run that in the background instead of tying up the machine running the USB Ubuntu like I had been. With both programs, I tried a few different wordlists such as rockyou.txt and realuniq.lst. The latter ended up being too big with too many non-human readable words which was an inefficient use of the search time. I tried different combinations of rules that substituted or added characters into/onto the wordlist words. I tried some brute force searching as well, which found a couple of the shorter passwords, but grew quickly infeasible for longer ones. I also tried looking up the NTLM passwords in a rainbow table (since they have no salt) which found three (two of which had already been found).

I separated out the first 12 passwords with version $1$ in their own file and ran hashcat with 500 to represent their md5crypt type. The first 2 found were moxley and Abovyan from bt4-passwords.txt in the SecList. I continued through with the entire SecLists folder and then brute-forced for 4 characters. I started a 5 character brute force but stopped since it would take 18 days and my charger was melting:

hashcat -m 500 -a 0 –username crack1.txt SecLists/Passwords/ //Wordlist hashcat -m 500 -a 3 –username crack1.txt ?a?a?a?a (3 hours 19 minutes) //Bruteforce I then did the same thing with sha512 for the next 12 passwords marked as $6$. After finding 5 with the SecLists wordlist, I brute-forced up to 4 characters, then stopped. hashcat -m 1800 -a 0 –username crack2.txt SecLists/Passwords/ After, I ran the NTLM passwords on hashcat (only focusing on the last part of the hash, the other info like 1002:middlehash represents window system information and a weak hash that didn’t matter) with the wordlist and brute force. I found 3 on the wordlist and brute-forced 1 hashcat -m 1000 -a 0 –username crack3.txt SecLists/Passwords/ hashcat -m 1000 -a 3 –username crack3.txt ?a?a?a?a?a (2 min)

Ran John the Ripper and Hashcat to do dictionary attacks on the white-hole server. Used the crackstation human only passwords found online. Used the default –rules option for John the Ripper for password mutation. For the NT/LM hashes, brute force attack is used with Hashcat after initial dictionary attack, up to 6 or 7 characters long.

I used the following wordlists from https://github.com/danielmiessler/SecLists/blob/master:

  • 10-million-password-list-top-1000000.txt
  • alleged-gmail-passwords.txt
  • darkc0de.txt
  • xato-net-10-million-passwords.txt
  • rockyou.txt Oh and I for the SHA512 hashes that I cracked (dolphziggler:lend brocklesnar:love14), I specifically had to use JTR Jumbo. All of the hashes I cracked used JTR. I tried to use hashcat but could that spiraled down into dependency hell.
  1. carmella:abc123 - cracked by running john crackme-spring2020.txt
  2. danabrooke:florida1 - used john with –format=NT
  3. themiz:lamata - used john with –format=NT
  4. kofikingston:SPrsoe - used john with –format=NT
  5. niajax: Abovyan - used ./john with new wordlist from Crackdown2016 from kennyn510 github
  6. dolphziggler: lend - cracked using wordlist cain.txt from cain and able tool
  7. mickiejames:gwyq - cracked using Neo2016.txt wordlist from kennyn510 github
  8. beckylynch:MAHR - cracked using Neo2016.txt wordlist from kennyn510 github
  9. johncena:attingeste - cracked usingInsider2016.txt wordlist from kennyn510 github
  10. undertaker:un1verse - cracked using wordlist
  11. sethrollins:moxley - cracked using wordlist

carmella: abc123 (JohnTheRipper using rockyou.txt) sethrollins: moxley (JohnTheRipper using rockyou.txt) undertaker: un1verse (JohnTheRipper using rockyou.txt) brocklesnar: love14 (JohnTheRipper using rockyou.txt) kofikingston : SPrsoe (isolated the hash from crackme.txt and inputted to onlinehashcrack.com) braywyatt : pi1f312in619 (isolated the hash from crackme.txt and inputted to crackstation.net) danabrooke : florida1 (isolated the hash from crackme.txt and inputted to crackstation.net) themiz: lamata (isolated the hash from crackme.txt and inputted to crackstation.net) finnbalor : 9(Z;5= (isolated the hash from crackme.txt and inputted to onlinehashcrack.com)

I first split the passwords into three different files: crackme-1.txt, for all passwords beginning with $1$ (the MD5 hash); crackme-6.txt, for all passwords beginning with $6$ (SHA-512); and crackme-etc.txt, for all passwords not in the above two files. I ran John the Ripper on crackme-1.txt without specifying a wordlist, and got one password. I then downloaded the xato-net-10-million-passwords file and used that as the wordlist, netting three more passwords. I also used wordlists openwall.net-all and darkc0de to get two more passwords from crackme-1.txt. I then tried running John the Ripper with the xato-net-10-million-passwords file on crackme-6.txt (which took a couple of hours to run). I uncovered two passwords this way. I found three more passwords for crackme-6.txt using the wordlists darkc0de and openwall.net-all.

undertaker:un1verse JtR with wordlist rockyou.txt (found on the internet) ./john ../hashes/md5crypt.txt –wordlist=../wordlists/rockyou.txt carmella:abc123 JtR solo ./john ../hashes/crackme.txt sethrollins:moxley JtR with wordlist rockyou.txt (found on the internet) ./john ../hashes/md5crypt.txt –wordlist=../wordlists/rockyou.txt niajax:Abovyan Hashcat hashcat -m 500 -a 0 -o cracked.txt -O hashes/md5crypt.txt wordlists/Top109Million-probable-v2.txt beckylynch:MAHR hashcat -m 500 -a 0 -o cracked.txt -O hashes/md5crypt.txt wordlists/Top109Million-probable-v2.txt mickiejames:gwyq hashcat -m 500 -a 0 -o cracked.txt -O hashes/md5crypt.txt wordlists/Top109Million-probable-v2.txt johncena:attingeste hashcat -m 1800 -a 0 -o cracked.txt -O hashes/sha512.txt wordlists/Top109Million-probable-v2.txt dolphziggler:lend hashcat -m 1800 -a 0 -o cracked.txt -O hashes/sha512.txt wordlists/Top109Million-probable-v2.txt sonyadeville:rajeesh hashcat -m 1800 -a 0 -o cracked.txt -O hashes/sha512.txt wordlists/Top109Million-probable-v2.txt

carmella:abc123 sethrollins:moxley Mandyrose:v2zcyx nijax:Abovyan undertaker:un1verse beckylynch:MAHR themiz:lamata danabrooke:florida1 brocklesnar:love14 braywyatt:pi1f312in619 I used hashcat on my personal desktop computer to crack these passwords. I didn’t want to brute force for a month and increase my power bill so I think I only brute forced one or two of the passwords. I may have lost one of the ones I brute forced, as I originally was playing around with jtr on kali and got one/two. For the rest/vast majority of these passwords I cracked them using two lists with hashcat: the rockyou text file and a 15 GB list I found called realuniq.lst. I believe that it crack station released it. The biggest trouble I had was on figuring out what the heck the NTLM hashes were and formatting them so that hashcat could crack them. The length of time spent cracking the SHA512 hashes was also quite prohibitive. I think I only ran them through rockyou and it still took around 8 hours. Everything other dictionary attack took no longer than an hour on my machine.