Password Cracking

Cheatsheet

::: note

I have alias hashcat='hashcat -d 2 in order to use the CUDA backend. Not sure why this isn't automatically detected/used out of the box, but worth considering.

:::

Common Hash Types

TIP

-D 2 tells hashcat to use the GPU, and -O tells hashcat to use an optimized kernel (may not do anything with some hash types, but it doesn't hurt).

NTLM:

hashcat -a 0 -m 1000 -O -D 2 \
  -r rules/best64.rule \
  hashes/example.ntlm \
  wordlists/Leaked-Databases/rockyou.txt

SSHA-1 (salted SHA-1) from LDAP server:

hashcat -a 0 -m 111 -O -D 2 \
  -r rules/best64.rule \
  hashes/example.ntlm \
  wordlists/Leaked-Databases/rockyou.txt

Kerberoast:

hashcat -a 0 -m 1000 -O -D 2 \
  -r rules/best64.rule \
  hashes/example.kerberoast \
  wordlists/Leaked-Databases/rockyou.txt

AS-REP Roast:

hashcat -a 0 -m 1000 -O -D 2 \
  -r rules/best64.rule \
  hashes/example.asreproast \
  wordlists/Leaked-Databases/rockyou.txt

Useful Masks

Full character set, up to 8 characters in length:

hashcat -a 3 -m 1000 -O -D 2 \
  --increment \
  hashes/example.ntlm \
  ?a?a?a?a?a?a?a?a

Characters humans are more likely to use, up to 8 characters in length:

hashcat -a 3 -m 1000 -O -D 2 \
  --increment \
  -1 '?l?u?d._!-@* #/$&\,+=)(??'"'"';]' \
  hashes/example.ntlm \
  ?1?1?1?1?1?1?1?1

Common Toggles/Options

Unleash the full power of your GPU (make sure you aren't running this with a GUI!):

hashcat -w 4

Dump plaintext passwords to a specific potfile:

hashcat --potfile-path=/path/to/cracked.pot

The hashes are formatted username:hash:

hashcat --username

Display the crack status every N seconds:

hashcat --status --status-timer="${NUM_SECONDS}"
Last Updated: