githubEdit

Hashcat

Hash Identification

# Identify hash type
hashcat --identify hash.txt

# Using hashid
hashid hash.txt

# Using hash-identifier
hash-identifier

Common Hash Modes

Mode
Hash Type
Example Use

0

MD5

Web apps, databases

10

md5($pass.$salt)

Salted MD5 (pass first)

20

md5($salt.$pass)

Salted MD5 (salt first), CMS Made Simple

100

SHA1

Web apps

1400

SHA256

Modern apps, CrushFTP

1700

SHA512

Modern apps, CrushFTP

1800

sha512crypt ($6$)

Linux /etc/shadow

500

md5crypt ($1$)

Older Linux

3200

bcrypt ($2*$)

Modern web apps

10900

PBKDF2-HMAC-SHA256

Flask/Werkzeug, Superset, Grafana

1000

NTLM

Windows SAM/NTDS

5600

NetNTLMv2

Windows network auth

13100

Kerberos TGS-REP (etype 23)

Kerberoasting

18200

Kerberos AS-REP (etype 23)

AS-REP Roasting

5300

IKE-PSK MD5

IPsec VPN

5400

IKE-PSK SHA1

IPsec VPN

2500

WPA/WPA2

WiFi

22000

WPA-PBKDF2-PMKID+EAPOL

WiFi (modern)

13400

KeePass 1/2 (.kdbx)

Password managers


Basic Usage

Example

Example

  • Hash f806fc5a2a0d5ba2471600758452799c

  • -a 0 sets the attack mode to a dictionary attack

  • -m 0 sets the hash mode for cracking MD5 hashes; for other types, run hashcat -h for a list of supported hashes.

  • f806fc5a2a0d5ba2471600758452799c this option could be a single hash like our example or a file that contains a hash or multiple hashes.

  • /usr/share/wordlists/rockyou.txt the wordlist/dictionary file for our attack

  • We run hashcat with --show option to show the cracked value if the hash has been cracked:

Brute-Force attack

  • Brute force a 4 digit pin

  • -a 3 sets the attacking mode as a brute-force attack

  • ?d?d?d?d the ?d tells hashcat to use a digit. In our case, ?d?d?d?d for four digits starting with 0000 and ending at 9999

  • --stdout print the result to the terminal

Example of 4 digit pin hash

Last updated