Crunch Wordlist Tutorial
[Bearbeiten] Was ist Crunch?
Mit Crunch lassen sich Bruteforce Wordlists erstellen, diese können individuell gestaltet und in vielen Szenarien eingesetzt werden. z.b. zum "Knacken" eines WPA/WPA2 Passwortes.
[Bearbeiten] Die Installation
Crunch läuft auf allen Linux-Distributionen.
Downloadlink: http://sourceforge.net/projects/crunch-wordlist/
Installation allgemein:
tar -xvf crunch-3.1.tgz
cd crunch3.1/
make && make install
Insallation Backtrack 5:
Crunch wurde im Repository von BT5 aufgenommen, somit ist die Installation mit "apt-get" möglich.
apt-get update
apt-get install crunch
[Bearbeiten] Übersicht der Optionen
-b bestimmt die maximale Größe der Datei in Bytes, so lässt sich die Wordlist aufteilen. Muss in kombination mit "-o START"benutzt werden.
-c Bestimmt die Anzahl der Zeilen in der der Wordlist. Auch hier muss "-o START" benutzt werden.
-e Stoppt das generieren der Wordlist bei einem definierten Passwort
-f Definiert den Pfad zu einer Zeichenliste (Standard ist /pentest/passwords/crunch/charset.lst
-i Invertiert die Ausgabe der Wörter von ltr(left-to-right) zu rtl(right-to-left) bsp. (aaa,aab,aac... zu aaa,baa,caa...)
-l Bestimmt welche Platzhalter als Sonderzeichen behandelt werden (@,%^)
-o Erstellen einer Datei (z.b. /Wordlists/Test.txt)
-p Permutationen der Eingabe
-q Permutationen von Wörterlisten
-r Wiederaufnehmen der Berechnung
-s von einer bestimmten Position starten
-t Zeichen bestimmen die "feststehen" (eine der wichtigsten Funktionen)
Platzhalter für Zeichenliste
- @ -- Kleinbuchstaben (oder manuelle Vorgabe)
- , -- Großbuchstaben
- % -- Zahlen (0-9)
- ^ -- Sonderzeichen (mit Leerzeichen)
-u Übergabe an andere Programme (z.b. Aircrack, Pyrit, Cowpatty usw.)
verhindert 3 sek. Anzeige von Größe und Zeilen.
-z Komprimieren der Ausgabe Datei mit gzip,bzip2 oder lzma
[Bearbeiten] Hinweise
Die Erstellung der Wordlist kann innerhalb von 3 sek. nach Start abgebrochen werden! (Während Größe und Zeilenanzahl gezeigt werden)
Standardpfad in Backtrack 5: /pentest/passwords/crunch
Dieser Pfad wird in allen Beispielen verwendet.
Außerdem benutze ich Version 3.0.1 (da ich keine Lust habe neue Screenshots zu machen :) ) und in Version 3.1 nur die Option -e dazugekommen ist.
[Bearbeiten] Bedienung
[Bearbeiten] Allgemeine Bedienung
Um Crunch vom Rootverzeichnis aus zu starten gibt man folgendes ein:
/pentest/passwords/crunch/crunch [min länge] [max länge] [zu verwendende Zeichen] [Optionen]
Beispiele:
/pentest/passwords/crunch/crunch 8 8 abc + + \!\@\# -t TEST^%,@ -o Test.txt
Ausgabe in der Shell
./crunch [min länge] [max länge] [zu verwendende Zeichen] [Optionen]
Ausgabe in eine Datei
./crunch [min länge] [max länge] [zu verwendende Zeichen] [Optionen] -o Dateiname.txt
Werden keine Zeichen angegeben, so werden automatisch Kleinbuchstaben benutzt
./crunch 4 4
Manuelle Angabe der zu verwendenden Zeichen
./crunch 4 4 0123456789abcDEF

Um Sonderzeichen zu verwenden muss ein "Backslash" [\] vorangestellt werden
./crunch 4 4 \!\#\$\?\@

[Bearbeiten] Aufteilen/Splitten nach Größe
Zum Aufteilen/Splitten benutzen wir die Option -b um die Größe der Ausgabedateien festzulegen. Hier muss -o START benutzt werden.
Die Größe kann in kb, mb, gb oder kib, mib, gib angegeben werden.
kb, mb und gb (1KB = 1000 byte)
kib, mib und gib (1KB = 1024 byte)
Die Ausgabedateien werden nach dem ersten und letzten Eintrag in den Wordlists benannt.
Erstellen von Wordlists die nicht größer als 1 mb sind
./crunch 6 6 0123456789 -b 1mb -o START

Erstellen von Wordlists die nicht größer als 1 gb sind
./crunch 6 6 0123456789 -b 1gb -o START
usw.
[Bearbeiten] Aufteilen/Splitten nach Zeilenanzahl/Wörteranzahl
Zum Aufteilen/Splitten benutzen wir die Option -c um die max. Zeilenanzahl/Wörteranzahl festzulegen. Hier muss -o START benutzt werden.
Die Ausgabedateien werden nach dem ersten und letzten Eintrag in den Wordlists benannt.
Erstellen von Wordlists mit max. 200000 Zeilen/Wörtern
./crunch 6 6 abcdefghij -c 200000 -o START

Erstellen von Wordlists mit max. 150000 Zeilen/Wörtern
./crunch 6 6 012456789 -c 150000 -o START
usw.
[Bearbeiten] Bestimmtes Ende
Mit der Option -e lässt sich, bei erreichen einer definierten Zeichenkette, die Generierung Beenden.
Bsp. ./crunch 4 4 0123 -e 3000
Im Beispiel ist die Generierung bei 3000 beendet. Ohne -e ginge es bis 3333
[Bearbeiten] Die Zeichenliste
Im Installationsverzeichnis befindet sich die Datei charset.lst. In dieser Liste befinden sich "Zeichenketten" die zur Generierung von Wordlists verwendet werden können. Somit braucht man die zu verwendenden Zeichen nicht mehr Manuell anzugeben.
Die Liste kann nach belieben verändert oder erweitert werden oder man erstellt eine neue.
Zum Aufrufen einer der "Zeichenketten" aus der Liste benutzten wir die Option -f den Namen der Liste und den Namen vor der entsprechenden Zeichenkette
Wordlist mit 6 Hexadezimalen Zeichen nur Kleinbuchstaben
./crunch 6 6 -f charset.lst hex-lower

[Bearbeiten] Invertieren
Um die Ausgabe von ltr zu rtl zu invertieren benutzen wir die Option -i
./crunch 6 6 -f charset.lst hex-lower -i
Info: Die ersten Zeichen werden immer als erstes verwendet!
./crunch 4 4 abcd --> erstes Wort in der Wordlist aaaa
./crunch 4 4 dcba --> erstes Wort in der Wordlist dddd
[Bearbeiten] Permutationen
Hier benutzen wir die Optionen -p und -q. Wer schon mal was von Anagrammen gehört hat kann sich denken um was es hier geht ;-)
Eine kleine Besonderheit ist das wir [Optionen] vor [zu verwendende Zeichen] schreiben müssen. [min länge] und [max länge] sind immer 1
Anagramme oder vertauschen von Zeichen in einem Wort/Zeichenkette mit der Option -p
./crunch 1 1 -p igel
Vertauschen von Wörtern/Zeichenketten mit der Option -p
./crunch 1 1 -p Hund Katze Maus
Alle Permutationen von Wörtern in einer Wordlist mit der Option -q
Als Beispiel habe ich einen Textfile angelegt mit 6 Wörtern und im Installationsverzeichnis von Crunch gespeichert.
./crunch 1 1 -q wordlist.txt
Achtung! Nicht zu viele Wörter benutzen. Die Wordlist wird sonst sehr groß.
[Bearbeiten] Wiederaufnahme der Berechnung
Mit der Option -r lässt sich die Berechnung einer Wordlist wieder aufnehmen. Dazu muss exakt der Selbe Befehl eingegeben werden mit -r am Ende.
./crunch 8 8 0123456789 -o test.txt
Stop mit Strg+c und Wiederaufnahme mit -r
./crunch 8 8 0123456789 -o test.txt -r
[Bearbeiten] Start von Position X
Um die Berechnung bei einer bestimmten Zeichenkette zu starten benutzen wir die Option -s und kombinieren das mit -r (es könnte ja sein das die Liste zu groß wird, der Speicherplatz nicht reicht und man auf einer anderen Platte weiter machen muss ;-) )
Beim Erstellen einer Wordlist legt Crunch eine temporäre Datei an, mit dem Namen START. In dieser Datei schauen wir nach den letzten Einträgen, kopieren die Datei und benennen diese um.(Umbennen ist wichtig da die START Datei überschrieben wird)
Beispiel:
./crunch 8 8 0123456789 -o test.txt
- stoppen mit Strg+c
- schauen nach den letzten Einträgen in der START Datei
tail -n 2 START
- kopieren und umbenennen der Datei
cp START weiter.txt
- Wiederaufnahme vom letzten Eintrag
./crunch 8 8 0123456789 -s 52446694 -o test.txt
Natürlich kann man auch einfach nur an einer bestimmten Position starten wenn man das möchte.
[Bearbeiten] Fixe Vorgaben
[Bearbeiten] Allgemeine Bedienung
Eine der wichtigsten Funktionen ist die Option -t. Damit lassen sich fixe Vorgaben machen. In den folgenden Beispielen wird das deutlicher.
Außerdem benutzen wir die Platzhalter @,%^
Nehmen wir an das Passwort hat 6 Zeichen, besteht nur aus Kleinbuchstaben und beginnt mit dog.
./crunch 6 6 -t dog@@@
Oder dog am Ende
./crunch 6 6 -t @@@dog
Oder dog in der Mitte
./crunch 6 6 -t @@dog@
Oder dog zu beginn gefolgt von Großbuchstaben, Zahlen und Sonderzeichen
./crunch 6 6 -t dog,%^
Ok, vergessen wir den faulen Hund mal kurz und schauen uns nur die Platzhalter an.
[Bearbeiten] Platzhalter
Alle vier Platzhalter gemischt
./crunch 8 8 -t @@%%^^,,
Nur Kleinbuchstaben
./crunch 4 4 -t @@@@
Nur Zahlen
./crunch 4 4 -t %%%%
Nur Großbuchstaben
./crunch 4 4 -t ,,,,
Nur Sonderzeichen
./crunch 4 4 -t ^^^^
Bauen wir den Hund mal mit ein und mischen alles.
./crunch 9 9 -t ^%@DoG^%@
[Bearbeiten] Platzhalter definieren
Als nächstes definieren wir die Platzhalter etwas genauer. Wir brauchen ja nicht immer alle Zeichen aus der "Zeichenliste".
Dabei ist unbedingt die folgende Reihenfolge einzuhalten!
Kleinbuchstaben - Großbuchstaben - Zahlen - Sonderzeichen
./crunch 8 8 abcdef ABCDEF 123456 @#$%- -t @@,,%%^^
Möchte man nur bestimmte Platzhalter definieren, müssen die undefinierten durch ein + ersetzt werden.
./crunch 8 8 abcdef + 123456 + -t @@,,%%^^
Der Platzhalter @ hat noch eine Besonderheit. Er übernimmt die Zeichen bei einer manuellen Eingabe.
./crunch 8 8 123abcDEF -t test@@@@
[Bearbeiten] Leerzeichen
Um Leerzeichen zu verwenden, müssen die benutzten Zeichen in Anführungsstriche gesetzt werden.
./crunch 8 8 "123a bcDEF" -t test@@@@
[Bearbeiten] Sonderzeichen
Sonderzeichen muss auch hier ein "Backslash" vorangestellt sein
./crunch 8 8 123abcDEF\!\@\%\& -t test@@@@
Weitere Fälle mit Sonderzeichen
./crunch 4 4 -t 12\!@
Das @ lässt sich leider nicht, wie oben gezeigt, mithilfe von "Backslash" schreiben.
Hier verwenden wir die Option -l
./crunch 4 4 -t 12\!@
[Bearbeiten] Telefonnummern
Es lassen sich auch sehr leicht Listen mit Telefonnummern erstellen
./crunch 11 11 -t 0321/%%%%%%
[Bearbeiten] Piping/Übergabe
Die Ausgabe von Crunch kann auch direkt an andere Programme wie z.B. aircrack, pyrit, cowpatty usw. übergeben werden. Dazu benutzen wir die Option -u um die 3sek. Wartezeit abzuschalten und das Pipesymbol
[|] (Alt Gr + >)
Beispiel für die Übergabe an aircrack
./crunch 8 8 -t %%%%%%%% -u | aircrack-ng -e SSID -w - /pathto/capfile.cap
Beispiel für die Übergabe an pyrit
./crunch 8 8 -t %%%%%%%% -u | pyrit -i - -r /pathto/capfile.cap -e ESSID attack_passthrough
Beispiel für die Übergabe an cowpatty
./crunch 8 8 -t %%%%%%%% -u | cowpatty -f - -r /pathto/capfile.cap -s SSID
[Bearbeiten] Komprimieren
Die Ausgabedatei/Wordlist lässt sich auch direkt packen. Dazu verwenden wir -z . Die unterstützten Formate sind gzip,bzip2,lzma. Dabei erreicht gzip die schwächste und lzma die stärkste Komprimierung
Beispiel:
./crunch 6 6 -f charset.lst lalpha -o wordlist.txt -z gzip
[Bearbeiten] Ende
Wer sich jetzt alles durchgelesen hat sollte in der Lage sein, auch ohne Englischkenntnisse, seine eigenen Wörterlisten zu erstellen.
Viel Spaß damit.
P.S. Wer denkt er könne sich jetzt eine vollständige Liste für die Fritzbox Standardpasswörter erstellen, den muss ich leider enttäuschen.
Soviel Speicherplatz haben wohl die Wenigsten ;-)
[Bearbeiten] Quellen
http://adaywithtape.blogspot.com/2011/05/creating-wordlists-with-crunch-v30.html (Englisch)
http://sourceforge.net/projects/crunch-wordlist/
























