Show Menu
Cheatography

John the Ripper Cheat Sheet (DRAFT) by

--------------------

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Beispiele

$ john --single --format =<Hashtyp> <Passwortdatei>
Angriff mit Single Crack Mode
Nutzt Inform­ationen aus Passwo­rtd­atei, um gezielten Angriff durchz­ufü­hren. Bsp.: User = “john“, Password = “john123“
$&nbsp;john&nbsp;--wordlist=<Wortliste>&nbsp;--format=<Hashtyp>&nbsp;<Passwortdatei>
Angriff mit spezif­ischer Wortliste
$ john –incremental[=Zeichensatz] <Passwortdatei>
Angriff mit inkrem­ent­ellem Modus (Brute Force)

Was ist John the Ripper

Open-S­ource Tool für Passwo­rd-­Cra­cking
Standa­rdmäßig CLI, GUI verfügbar
Erkennt oft Hashtypen automa­tisch
Unters­tützt alle gängigen Hashme­thoden

Voraus­set­zungen

Der Hashwert des gesuchten Passworts, z.B. aus /etc/s­hadow (Linux)
Ggf. der verwendete Hashin­g-A­lgo­rithmus

Funkti­ons­weise von John

1. Hash-Typ (Versc­hlü­sse­lun­gstyp) des gegebenen Hashwerts bestimmen
2. Generi­erung von Hashes für versch­iedene Zeiche­nketten
3. Anhalten, wenn ein generi­erter Hash mit dem gegebenen Hash überei­nstimmt (→ Hashko­lli­sion)

Basisb­efehl

$ john [option] <Pa­ssw­ort­dat­ei>

Masken

RegeEx­-äh­nliche Ausdrü­cke...
... zur Erstellung von Passwö­rtern im Brute-­Force
$ john --mask­='[­Pp]­[Aa­@][­Ss5­][S­s5]­[Ww­][O­o0]­[Rr­][Dd]' passwo­rd.hash — z.B. P@55w0rD
... zur Anpassung von Wörtern aus Wörterbuch
$ john --word­lis­t="w­ord­lis­t.t­xt" --mask­='?­w?d­?d?s' — z.B. password → passwo­rd12!

Umgang mit Salts & speziellen Hashes

Beispiel für einen verket­teten Hash mit Salt
sha1($­s.m­d5(­$p)), $s ‎ = Salt, $p = Passwort
Lösung: Dynamische Formate
Entweder eigene oder vorgef­ertigte Subformate
Auflistung der Subformate
$ john --list­=su­bfo­rmats
Nutzung eines eigenen dynami­schen Formats
--form­at=­dyn­ami­c="s­ha1­($s.md­5($­p))­"
Format des gespei­cherten Hashwerts
[userI­D:]­[$d­yna­mic­_<S­ubf­orm­at_­Nr>­]$b­ase­_16­_ha­sh[­$salt]

Umgang mit Salts & speziellen Hashes

Beispiel für einen verket­teten Hash mit Salt
sha1($­s.m­d5(­$p)), $s ‎ = Salt, $p = Passwort
Lösung: Dynamische Formate
Entweder eigene oder vorgef­ertigte Subformate
Auflistung der Subformate
$ john --list­=su­bfo­rmats
Nutzung eines eigenen dynami­schen Formats
--form­at=­dyn­ami­c="s­ha1­($s.md­5($­p))­"
Format des gespei­cherten Hashwerts
[userI­D:]­[$d­yna­mic­_<S­ubf­orm­at_­Nr>­]$b­ase­_16­_ha­sh[­$salt]

Weitere nützliche Optionen & Befehle

Mehrere CPU-Kerne verwenden
--fork­=<A­nza­hl>
Session einen Namen geben
--sess­ion­=<N­ame>
Unterb­rochene Session wieder­her­stellen
--rest­ore­[=<­Nam­e>]
Gecrackte Hashes mit Passwö­rtern ausgeben
cat ~/.joh­n/j­ohn.pot
Status einer Session ausgeben
--stat­us[­=<N­ame­>]
 

Die Option --format

Unters­tützte Hashtypen
z.B. Raw-SH­A256, md5crypt, bcrypt
Verfügbare Formate auslesen
$ john –list=­formats

Hashes aus versch­lüs­selten Dateien erhalten

Programme, um JtR-ge­eignete Hashes aus Dateien zu extrah­ieren
xxx2john
Extrah­ieren des Hashwerts der Zip-Datei secret.zip
$ zip2john secret.zip > secret.hash
Auflistung aller Skripte
$ locate *2john
Nutzer- und Passwo­rtinfos unter Linux kombin­ieren
$ unshadow /etc/p­asswd /etc/s­hadow > output.db

Nützliche Links

Kompakter "­Ein­sti­egs­gui­de" mit Übungen
Ausfüh­rliche themen­spe­zif­ische Guides
Dokume­ntation
CUPP: Tool zur Erstellung maßges­chn­eid­erter Wörter­listen
 

Der Modus --inc­rem­ental

Unters­tützte Zeiche­nsätze
z.B. digits, upper, alnum, utf8
Verfügbare Zeiche­nsätze auslesen
$ john –list=­inc­-modes