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 15, 2022), I used two different hash types: MD5 and SHA-512. The contest closed on March 15th at 11:59 PM PDT. The password hashes (16 total):


114 submissions across two classes. The answers:

  • (MD5) jackbear:20100728 => 90 students cracked this
  • (MD5) brotherbear:L!verpool => 39 students cracked this
  • (MD5) fancybear:54ck3n => 108 students cracked this
  • (MD5) barneybear:gofast => 113 students cracked this
  • (MD5) pandabear:IDLER => 103 students cracked this
  • (MD5) yogibear:Wh@t3ver! => 12 students cracked this
  • (MD5) papabear:1632TEAR => 107 students cracked this
  • (MD5) grizzlybear:069rG2 => 4 students cracked this
  • (SHA-512) sisterbear:774415 => 43 students cracked this
  • (SHA-512) teddybear:csh1sA => 0 students cracked this
  • (SHA-512) polarbear:220493 => 104 students cracked this
  • (SHA-512) bluebear:ukflbjkec => 88 students cracked this
  • (SHA-512) blackbear:4utumn1# => 28 students cracked this
  • (SHA-512) mamabear:Concurrent => 60 students cracked this
  • (SHA-512) carebear:C@gx”9ZY)V => 0 student cracked this
  • (SHA-512) cozybear:#BHRN(@xKoa/ => 0 student cracked this

To earn all 10 / 10 points for the lab, students had to crack 6 or more passwords. The final distribution:

13 (x2)
12 (x2)
11 (x13)
10 (x11)
9 (x11)
8 (x16)
7 (x23)
6 (x29)
5 (x6)

The co-winner’s methodology and haul:

For this lab, I employed several cracking strategies. First, I used
cat and file redirection to combine all of the SecLists repository
into one massive file, which I ran through John the Ripper for all the
hashes. I also downloaded several other wordlists, including a list by
berzerk0 on GitHub of 109 million "most probable" passwords, a
wordlist called Kaonashi, and CrackStation's human based wordlist,
combining them into one list called BCK_full.txt, which was also run
through John the Ripper. Some other wordlists I experimented with was
one I wrote code to generate which created all possible digit-only
strings up to a certain length, the full CrackStation wordlist, the
full Kaonashi wordlist, OpenWall's entire wordlist, and a wordlist
taken by combining several wordlists created by someone from Oxford
University. I ran a vast majority of my cracking attempts using the
Tufts HPC, which proved even more effective when I eventually switched
to using Hashcat, which could utilize multiple GPUs in parallel. I
typically used NVIDIA A100 or NVIDIA Tesla 4 GPUs, up to at least 16
at a time running several cracking instances. I also utilized
OnlineHashCrack.com, which ran some cloud password cracking on its own
hidden wordlists and rules on the hashes I gave it, and it was able to
crack one password, which I paid 15$ to reveal (since it was over 8
characters in length). I also ran some pure brute force on Hashcat,
including generating all possible strings for some small lengths, and
also trying this on larger length strings by restricting the
characters that could be used in the passwords. Finally, I also
utilized some rules as a way of "mangling" wordlists; the rules I
mainly used was the best64 rule and the InsidePro-PasswordsPro rule.

jackbear:20100728 (From 2020-200_most_used_passwords.txt)
barneybear:gofast (From Most-Popular-Letter-Passes.txt)
fancybear:54ck3n (From bt4-password.txt)
pandabear:IDLER (From darkc0de.txt)
papabear:1632TEAR (From xato-net-10-million-passwords-1000000.txt)
brotherbear:L!verpool (From crack station wordlist )
yogibear:Wh@t3ver!  (From weakpass_3 from weakpass.com)
grizzlybear:069rG2 ( Hashcat Brute force with A100 GPUs in GCP)

(From hashesorg2019)
blackbear:4utumn1# (from seclists)
The first 7 password ran from M1 chip. switch to GPU later for optimal
performance.  Wordlists from SecLists Git Repo, Crack Station, and
weakpass.com. Had to brute force on GCP A100 GPU for grizzlybear.


ls ~/wl/*.txt | xargs -t  -I% john --session=attack1 --wordlist=% -fork=8 hash1.txt

john --format=md5crypt-opencl --wordlist=weakpass_3 --devices=gpu crack1.txt

SHA512. All jobs done in GCP A100 GPU instances with hashcat. John had
some problems in opencl driver with the instances.

Command: hashcat -O -m 1800 -o result.txt -a 0 -w 3  hash.txt wordlist
Used john the ripper, ran simple "john file.txt" for 3.5 days
and found 3 passwords so far that way. Also ran john with password
lists from danielmeissler using --format== sha512crypt to get fancy
bear, and --format== HMAC-SHA256 for cozy bear.

carebear: panthers
bluebear: Leto
polarbear: 931592
fancybear: letmein123
cozybear: jacket025
pandabear: 41255066

The runners-up methodology and haul:


John the ripper using: all wordlists from SecLists, rockyou.txt, and

Passwords cracked: 12 (7 MD5 + 5 SHA512)

My process:

1. Used one of the largest list from the SecLists repository,
containing a million of the most common passwords. Ran this wordlist
with john and cracked 1 or 2 of the MD5 hashes in under 5 minutes.

2. Used a list of 1.4 billion passwords found online mentioned in
seclists somewhere. This wordlist is ~10 GB. Using this list, john ran
for 20 minutes and found 2 or 3 more MD5 hashes, so I had 4 cracked
MD5 hashes total.

3. Battled to get john or hashcat cracking SHA512 hashes on my M1 Mac,
but had no luck.

4. Switched to my PC for cracking SHA512 hashes. Downloaded the
rockyou dataset (~140 MB) and used it on the SHA512 hashes with
hashcat, which cracked two of them in under 10 mins.

5. Downloaded CrackStation.net’s entire dictionary (~15 GB) and used
it to try to crack the remaining MD5 hashes with hashcat. Got two more
of the MD5 hashes with this method in about 40 minutes.

6. Found some of the most effective rules for hashcat. Many of them
took too long to run, so I found a simpler rule file called
cyclone_250 containing the 250 top rules for cracking hashes. Running
this file with the rockyou dataset on the MD5, I found another one of
the MD5 hashes in just under an hour. I tried a bunch of other rules
with some of the smaller datasets, but had no luck.

7. Ran the 1.4 billion password wordlist on the SHA512 hashes
overnight, which cracked another two of them.

8. Merged all the other password files from the SecLists repository
together, then used that combined wordlist to crack another SHA512

Methodologies used by students:

I used hashcat with all the small wordlists (< 1mb) and some big
wordlists (darkc0de.txt, bt4-password.txt, SCRABBLE-large.txt,
SCRABBLE-munged-large.txt, xato-net-10-million-passwords-1000000.txt)
to crack the passwords. The first five are from MD5, last four are
from SHA512.
- I started with just having john the ripper use the automatic
  wordlist on the first three hashes in my file "crackme.txt" but it
  didn't crack any passwords that way, and it has been running using
  the brute force method and still hasn't cracked any passwords that
  way. Then, I had two terminal windows running: "crackme2.txt" with
  the first 8 hashes and "crackme3.txt" with the last 8. I used the
  wordlist with 10,000,000 passwords and have been having much more
  success with that.

- I got pandabear after 12 hours of running john the ripper using a
  wordlist by crackstation called "humanwordlist"

- I got sisterbear after about a day of running john the ripper using
  "humanwordlist" by crackstation.

- I got jackbear in less than 1 second by running john the ripper
  using "2020-200_most_used_passwords.txt" by danielmiessler

- I got fancybear in about 2 minutes running john and using wordlist
  “darkc0de.txt"I got mamabear in about 1 hour running john and using

- I got mamabear in about 1 hour running “darkc0de.txt”
Methodology: I set up an Ubuntu instance on Google Cloud to run John
the Ripper using as much of the CPU as possible with --fork. I found
the first three passwords with the rockme.txt wordlist, then ran JtR
incremental mode for about a week and got the next two. Once I hadn't
gotten any for a few days, I switched tactics and ran all of the
wordlists from SecLists using a bash script that iterated through them
and got the next five (lesson learned: run all the lists, not just the
biggest one).
I used wordlists to crack these passwords. I used SecLists as my

For fancybear and pandabear, I used darkc0de.txt 

For jackbear, I used 2020-200_most_used_passwords.txt 

For barneybear, papabear, bluebear and polarbear, I used

I first saved the first 8 passwords in a file and ran john on that
file with the wordlist files, and then did the same for the last 8
Overall: 7 passwords were cracked. 

First Submission: 

Cracking methodology was running the word list SecLists on a
crackme.txt file I created and put both of those in my Desktop folder
called "lab5." I ran the command: john
--wordlist="SecLists/Passwords/darkc0de.txt" crackme.txt, which was a
file which had all the hashes we could run on john the ripper through
the mac terminal.

Password       Username 
IDLER (pandabear)
54ck3n (fancybear)

Second Submission: 

This was run on john
crackme.txt I also had put the format into format=md5crypt-long to
find two more passwords.

Password    Username 
gofast (barneybear)
1632TEAR (papabear)

Third Submission: 

This was run on john --wordlist="SecLists/Passwords/darkc0de.txt"
password.txt I took out the format=md5crypt-long to find another
password and simply ran the last 8 as these are not md5.

Password    Username 

Fourth Submission:

This was ran on john
password.txt I took out the format=md5crypt-long to find another
password and simply ran the last 8 to find these two, as the last 8
are not md5.

Password    Username 
ukflbjkec (bluebear)
220493 (polarbear)
For these passwords, I split the MD5 into two sets of four (because it
seemed as though there were different MD5 variants) and ran them on a
combined wordlist I made. The way I created the wordlist was by
concatenating all the files in the SecLists wordlist directory with a
simple script. I also used the rockyou wordlist and am in the process
of using the crackstation wordlist. I got the first SHA password via
brute force.
I've been using John the Ripper. I took the original file of password
hashes and separated it into 2 files with the 2 differrent types of
hashes. I first ran JtR on the default wordlist. Then I then
downloaded all the password lists from Daniel Miessler's github. I
combined all the lists into 1 big txt file and used that on each of
the hash files. Then I googled around and found a couple more very
large word lists that i downloaded (~2 GB) and ran each word list
through those. I cn currently still running each hash list on a new
wordlist but this is what i have so far.  
basic john md5 on wsl





hashcat w/ darkc0de password list

pandabear: IDLER

mamabear: Concurrent


hashcat w/ xato-net-10-million-passwords-1000000

papabear: 1632TEAR

polarbear: 220493

bluebear: ukflbjkec