01Einführung
Crack the Hash ist ein Easy-Raum auf TryHackMe der sich komplett ums Hash-Cracking dreht. Kein Netzwerkscan, keine Shell — hier geht es darum Hash-Typen zu erkennen und mit den richtigen Tools zu knacken. Genau die Fähigkeit die du nach einem erfolgreichen Exploit oft brauchst um an Passwörter zu kommen.
02Benötigte Tools
- hash-identifier — erkennt Hash-Typen anhand von Muster und Länge
- hashid — alternative Hash-Erkennung mit detaillierteren Ergebnissen
- hashcat — GPU-beschleunigter Hash-Cracker, 300+ Algorithmen
- CrackStation (crackstation.net) — Online-Datenbank für bekannte Hashes
03Level 1
Level 1 enthält fünf Hashes mit steigender Schwierigkeit. Wir identifizieren jeden Hash-Typ und nutzen dann hashcat mit der rockyou.txt Wordlist.
Can you complete the level 1 tasks by cracking the hashes?
🔐 Hash #1 — MD5
Wir starten mit hash-identifier um den Algorithmus zu bestimmen. Das Tool analysiert Länge und Muster des Hashes.
hash-identifier 48bb6e862e54f2a795ffc4e541caed4dHASH: 48bb6e862e54f2a795ffc4e541caed4d
Possible Hashs:
[+] MD5
[+] Domain Cached Credentials - MD4(MD4(($pass)).(strtolower($username)))
Least Possible Hashs:
[+] RAdmin v2.x
[+] NTLM
[+] MD4
[+] MD2
[+] MD5(HMAC)
Bestätigt: MD5, hashcat ID 0. Los geht's:
hashcat -m 0 -a 0 48bb6e862e54f2a795ffc4e541caed4d /usr/share/wordlists/rockyou.txt$ hashcat -m 0 -a 0 48bb6e862e54f2a795ffc4e541caed4d /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting...
Dictionary cache built:
* Filename..: /usr/share/wordlists/rockyou.txt
* Passwords.: 14344391
48bb6e862e54f2a795ffc4e541caed4d:easy
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 0 (MD5)
Hash.Target......: 48bb6e862e54f2a795ffc4e541caed4d
Recovered........: 1/1 (100.00%)
🔐 Hash #2 — SHA-1
40 Zeichen langer Hash — ein klassisches Merkmal von SHA-1. hash-identifier bestätigt das.
hash-identifier CBFDAC6008F9CAB4083784CBD1874F76618D2A97HASH: CBFDAC6008F9CAB4083784CBD1874F76618D2A97
Possible Hashs:
[+] SHA-1
[+] MySQL5 - SHA-1(SHA-1($pass))
Least Possible Hashs:
[+] Tiger-160,3
[+] Haval-160
SHA-1, hashcat ID 100:
hashcat -m 100 -a 0 CBFDAC6008F9CAB4083784CBD1874F76618D2A97 /usr/share/wordlists/rockyou.txt$ hashcat -m 100 -a 0 CBFDAC6008F9CAB4083784CBD1874F76618D2A97 /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting...
Dictionary cache hit:
* Filename..: /usr/share/wordlists/rockyou.txt
* Passwords.: 14344391
cbfdac6008f9cab4083784cbd1874f76618d2a97:password123
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 100 (SHA1)
Hash.Target......: CBFDAC6008F9CAB4083784CBD1874F76618D2A97
Recovered........: 1/1 (100.00%)
🔐 Hash #3 — SHA-256
64 Zeichen langer Hash — deutet auf SHA-256 hin. hash-identifier bestätigt.
hash-identifier 1C8BFE8F801D79745C4631D09FFF36C82AA37FC4CCE4FC946683D7B336B63032HASH: 1C8BFE8F801D79745C4631D09FFF36C82AA37FC4CCE4FC946683D7B336B63032
Possible Hashs:
[+] SHA-256
[+] Haval-256
Least Possible Hashs:
[+] GOST R 34.11-94
[+] RipeMD-256
[+] Snefru-256
SHA-256, hashcat ID 1400:
hashcat -m 1400 -a 0 1C8BFE8F801D79745C4631D09FFF36C82AA37FC4CCE4FC946683D7B336B63032 /usr/share/wordlists/rockyou.txt$ hashcat -m 1400 -a 0 1C8BFE8F801D79745C4631D09FFF36C82AA37FC4CCE4FC946683D7B336B63032 /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting...
Dictionary cache hit:
* Filename..: /usr/share/wordlists/rockyou.txt
* Passwords.: 14344391
1c8bfe8f801d79745c4631d09fff36c82aa37fc4cce4fc946683d7b336b63032:letmein
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 1400 (SHA2-256)
Hash.Target......: 1C8BFE8F801D79745C4631D09FFF36C82AA37FC4CCE4FC946683D7B336B63032
Recovered........: 1/1 (100.00%)
🔐 Hash #4 — bcrypt
hash-identifier findet nichts — aber das Präfix $2y$ ist ein eindeutiges Kennzeichen für bcrypt. Eine kurze Google-Suche bestätigt das.
HASH: $2y$12$Dwt1BZj6pcyc3Dy1FWZ5ieeUznr71EeNkJkUlypTsgbX1H68wsRom
Not Found.
→ hash-identifier kennt diesen Typ nicht.
→ Aber das Präfix $2y$ verrät alles:
$2y$ = bcrypt (PHP-Implementierung)
→ hashcat Mode: 3200
AI Overview:
The $2y$ hash prefix indicates a specific version of a bcrypt hash,
primarily associated with PHP's implementation of bcrypt.
→ hashcat Mode: 3200 (bcrypt $2*$, Blowfish)
$) den Hash immer in einfache Anführungszeichen setzen oder in einer .txt Datei speichern!bcrypt ist absichtlich langsam. Der THM-Hint verrät: das Passwort hat 4 Kleinbuchstaben. Wir speichern den Hash und starten hashcat:
echo '$2y$12$Dwt1BZj6pcyc3Dy1FWZ5ieeUznr71EeNkJkUlypTsgbX1H68wsRom' > hash.txt
hashcat -m 3200 -a 0 hash.txt /usr/share/wordlists/rockyou.txt$ echo '$2y$12$Dwt1BZj6pcyc3Dy1FWZ5ieeUznr71EeNkJkUlypTsgbX1H68wsRom' > hash.txt
$ hashcat -m 3200 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting...
Status...........: Running
Speed.#1.........: 28 H/s (sehr langsam — bcrypt ist by design slow)
Progress.........: 840/14344391
Zu langsam! Wir filtern die rockyou.txt auf genau 4 Kleinbuchstaben:
grep -x '[a-z]{{4}}' /usr/share/wordlists/rockyou.txt > rockyou_4lower.txt
wc -l rockyou_4lower.txt$ grep -x '[a-z]{4}' /usr/share/wordlists/rockyou.txt > rockyou_4lower.txt
$ wc -l rockyou_4lower.txt
8403 rockyou_4lower.txt
→ Von 14 Millionen auf 8403 Einträge reduziert!
hashcat -m 3200 -a 0 hash.txt rockyou_4lower.txt$ hashcat -m 3200 -a 0 hash.txt rockyou_4lower.txt
hashcat (v6.2.6) starting...
Status...........: Running
Speed.#1.........: 28 H/s
Progress.........: 560/8403 (6.66%)
$2y$12$Dwt1BZj6pcyc3Dy1FWZ5ieeUznr71EeNkJkUlypTsgbX1H68wsRom:lolo
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 3200 (bcrypt $2*$, Blowfish (Unix))
Recovered........: 1/1 (100.00%)
Alternativ per Mask-Attack (dauert aber länger):
hashcat -m 3200 -a 3 hash.txt '?l?l?l?l'$ hashcat -m 3200 -a 3 hash.txt '?l?l?l?l'
Mask.....: ?l?l?l?l [4]
Keyspace.: 456976
→ ?l = lowercase letter (a-z)
→ 26^4 = 456,976 Kombinationen
🔐 Hash #5 — MD4
Sieht wie MD5 aus — gleiche Länge. hash-identifier zeigt MD5 als möglichen Typ. Wir versuchen MD5 zuerst, aber kein Ergebnis. Wir nutzen hashid für mehr Details:
HASH: $2y$12$Dwt1BZj6pcyc3Dy1FWZ5ieeUznr71EeNkJkUlypTsgbX1H68wsRom
Possible Hashs:
[+] MD5
[+] Domain Cached Credentials - MD4(MD4(($pass)).(strtolower($username)))
hashid 279412f945939ba78ce0758d3fd83daa$ hashid 279412f945939ba78ce0758d3fd83daa
Analyzing '279412f945939ba78ce0758d3fd83daa'
[+] MD2
[+] MD5
[+] MD4
[+] Double MD5
[+] LM
[+] RIPEMD-128
[+] Haval-128
[+] Tiger-128
[+] Skein-256(128)
[+] Skein-512(128)
[+] Lotus Notes/Domino 5
[+] Skype
[+] Domain Cached Credentials
[+] Domain Cached Credentials 2
[+] DNSSEC(NSEC3)
[+] RAdmin v2.x
→ THM Hint bestätigt: MD4 (hashcat -m 900)
→ Nicht in rockyou.txt → CrackStation nutzen!
Der THM-Hint bestätigt MD4 (ID 900). Aber selbst hashcat liefert kein Ergebnis — das Passwort ist nicht in der rockyou.txt. Lösung: CrackStation!
04Level 2
Level 2 wird komplexer — unbekanntere Algorithmen, manche Hashes kommen mit Salt und erfordern spezifischere hashcat-Befehle.
This task increases the difficulty. All answers are in the rockyou password list.
🔐 Hash #1 — SHA-256
64 Zeichen, SHA-256. hash-identifier bestätigt sofort.
hash-identifier F09EDCB1FCEFC6DFB23DC3505A882655FF77375ED8AA2D1C13F640FCCC2D0C85HASH: F09EDCB1FCEFC6DFB23DC3505A882655FF77375ED8AA2D1C13F640FCCC2D0C85
Possible Hashs:
[+] SHA-256
[+] Haval-256
→ SHA-256 bestätigt → hashcat -m 1400
hashcat -m 1400 -a 0 F09EDCB1FCEFC6DFB23DC3505A882655FF77375ED8AA2D1C13F640FCCC2D0C85 /usr/share/wordlists/rockyou.txtf09edcb1fcefc6dfb23dc3505a882655ff77375ed8aa2d1c13f640fccc2d0c85:paule
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 1400 (SHA2-256)
Recovered........: 1/1 (100.00%)
🔐 Hash #2 — NTLM
Sieht wie MD5 aus. hashcat mit MD5 liefert kein Ergebnis. hash-identifier zeigt als mögliche Typen MD5 und Domain Cached Credentials — der THM-Hint klärt auf: es ist NTLM, das Windows-Passwort-Format, hashcat ID 1000.
HASH: 1DFECA0C002AE40B8619ECF94819CC1B
Possible Hashs:
[+] MD5
[+] Domain Cached Credentials - MD4(MD4(($pass)).(strtolower($username)))
→ Sieht aus wie MD5, ist aber NTLM!
→ THM Hint: NTLM → hashcat -m 1000
hashcat -m 1000 -a 0 1DFECA0C002AE40B8619ECF94819CC1B /usr/share/wordlists/rockyou.txt1dfeca0c002ae40b8619ecf94819cc1b:n63umy8lkf4i
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 1000 (NTLM)
Recovered........: 1/1 (100.00%)
🔐 Hash #3 — SHA-512crypt
Weder hash-identifier noch hashid können diesen Typ direkt zuordnen. Aber das Präfix $6$ ist eindeutig: SHA-512crypt — das Linux-Format für /etc/shadow Passwörter. hashcat ID 1800. Da der Salt im Hash eingebettet ist, erkennt hashcat ihn automatisch:
echo '$6$aReallyHardSalt$6WKUTqzq.UQQmrm0p/T7MPpMbGNnzXPMAXi4bJMl9be.cfi3/qxIf.hsGpS41BqMhSrHVXgMpdjS6xeKZAs02.' > hash_l2h3.txt
hashcat -m 1800 -a 0 hash_l2h3.txt /usr/share/wordlists/rockyou.txt$ echo '$6$aReallyHardSalt$6WKUTqzq.UQQmrm0p/T7MPpMbGNnzXPMAXi4bJMl9be.cfi3/qxIf.hsGpS41BqMhSrHVXgMpdjS6xeKZAs02.' > hash_l2h3.txt
$ hashcat -m 1800 -a 0 hash_l2h3.txt /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting...
→ $6$ Präfix = SHA-512crypt (Linux /etc/shadow Format)
→ Salt wird automatisch aus dem Hash extrahiert
$6$aReallyHardSalt$6WKUTqzq...:waka99
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 1800 (sha512crypt $6$, SHA512 (Unix))
Recovered........: 1/1 (100.00%)
🔐 Hash #4 — HMAC-SHA1
Dieser Hash kommt mit einem externen Salt (tryhackme). hash-identifier zeigt SHA-1, aber der THM-Hint verrät: es ist HMAC-SHA1, hashcat ID 160. Der Salt ist nicht im Hash eingebettet — wir müssen ihn separat mit : übergeben:
HASH: e5d8870e5bdd26602cab8dbe07a942c8669e56d6
Possible Hashs:
[+] SHA-1
[+] MySQL5 - SHA-1(SHA-1($pass))
→ Sieht wie SHA-1 aus — aber der externe Salt (tryhackme) verrät:
→ HMAC-SHA1 → hashcat -m 160
→ Format bei hashcat: hash:salt
echo 'e5d8870e5bdd26602cab8dbe07a942c8669e56d6:tryhackme' > hash.txt
hashcat -m 160 -a 0 hash.txt /usr/share/wordlists/rockyou.txt$ echo 'e5d8870e5bdd26602cab8dbe07a942c8669e56d6:tryhackme' > hash.txt
$ hashcat -m 160 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting...
→ Salt wird mit : direkt an den Hash angehängt
→ hashcat erkennt das Format automatisch
e5d8870e5bdd26602cab8dbe07a942c8669e56d6:tryhackme:481616481616
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 160 (HMAC-SHA1 (key = $pass))
Recovered........: 1/1 (100.00%)
05Fazit & Lernpunkte
Crack the Hash ist ein perfekter Raum um Hash-Cracking systematisch zu erlernen. Die Bandbreite von MD5 bis HMAC-SHA1 zeigt wie vielfältig Hash-Algorithmen sind und wie wichtig die richtige Tool-Wahl ist.
- Präfixe lesen:
$2y$= bcrypt,$6$= SHA-512crypt — oft verrät der Hash seinen eigenen Typ - hash-identifier + hashid ergänzen sich — wenn eines versagt, hilft das andere
- rockyou.txt ist nicht alles — CrackStation bei unbekannten Passwörtern versuchen
- bcrypt ist langsam — Wordlist vorher mit grep filtern spart enorm Zeit
- Sonderzeichen in Hashes immer in einfache Anführungszeichen einschließen
- HMAC-Hashes brauchen das Format
hash:saltbei hashcat - NTLM — das Windows-Passwort-Format, begegnet dir bei echten Pentests sehr häufig
📋 Alle Hashes auf einen Blick
| Level | Algorithmus | ID | Methode |
|---|---|---|---|
| 1·#1 | MD5 | 0 | hashcat + rockyou |
| 1·#2 | SHA-1 | 100 | hashcat + rockyou |
| 1·#3 | SHA-256 | 1400 | hashcat + rockyou |
| 1·#4 | bcrypt | 3200 | hashcat + gefiltert |
| 1·#5 | MD4 | 900 | CrackStation |
| 2·#1 | SHA-256 | 1400 | hashcat + rockyou |
| 2·#2 | NTLM | 1000 | hashcat + rockyou |
| 2·#3 | SHA-512crypt | 1800 | hashcat + rockyou |
| 2·#4 | HMAC-SHA1 | 160 | hashcat + Salt |