Allgemein:
John the Ripper ist ein Password-Crack-Programm, das beispielsweise per DES (Data Encryption Standard) verschlüsselte Passwörter entschlüsseln kann. (Linux und Unix Passwörter werden standardmäßig per DES verschlüsselt). Das Passwort darf allerdings maximal 8 Zeichen lang sein. Da die zum decrypten benötigte Zeitspanne stark von der Geschwindigkeit des Prozessors abhängt sollte man darauf achten, die für den verwendeten Prozessortyp optimierte Programmdatei zu verwenden. Im Unterverzeichnis /run des john-16 Ordners findet man dazu neben der standard john.exe Datei auch noch zwei Ziparchive in denen sich eine für MMX und eine für K6 optimierte Programmdatei befinden. Zum verwenden der ensprechenden Version, entpackt man diese in das /run Verzeichnis und überschreibt die vorhandene john.exe Datei. Die Funktionsweise von John beruht darauf, die definierten Möglichkeiten (je nachdem in welchem Mode John gestarted wird, single;wordlist;incremental;external) auch beispielsweise per DES zu verschlüsseln und dann mit dem zu entschlüsselnden Passwort zu vergleichen. Stimmen die Passwörter im verschlüsselten Zustand überein, so müssen sie auch im entschlüsselten Zustand übereinstimmen, da ja das selbe Verschlüsselungsverfahren (DES) verwendet wurde.
Zu beachten ist noch, dass bei den meisten Servern heutzutage die Passwörter nicht mehr in der (meistens zugänglichen) passwd-File sondern in der (meistens nicht zugänglichen) shadow-Datei gespeichert werden.
Modes:
-Single Mode:
In diesem Mode versucht John die in der Password-Datei gespeicherten GECOS-Informationen (General Electric Comprehensive Operating System) , dass sind persönliche Daten zu jedem User wie z.B. Name, Telefonnummer ect, als Passwort einzusetzen. Falls die Daten in der passwd geshadowed wurden (shadowing ist eine Sicherheitsmaßnahme der neueren Linux/Unix Versionen, die bewirkt, dass die Passwörter aus der passwd entfernt werden und stattdessen in der shadow Datei gespeichert werden), werden zwar die Passwörter in der shadow-Datei gespeichert, aber die GECOS-Infos befinden sich noch immer in der passwd. In diesem Fall hilft das Programm Unshadow, dessen Programmdatei unshadow.exe sich mit im /run Ordner befindet. Dieses Programm führt die passwd und die shadow Datei zusammen, sodass sowohl die Passwörter als auch die GECOS-Informationen wieder in der gleichen Datei enthalten sind. Dieser Mode ist natürlich nur dann effektiv, wenn die User auch ihre persönlichen Informationen als Passwort verwenden. Allerdings ist dieser Mode auch sehr schnell, weshalb man ihn nicht unterschätzen sollte. Die Effektivität dieses Modes steigt mit der Anzahl der in der Password-Datei enthalten User, da er die GECOS-Informationen jedes Users bei allen anderen Usern auch als mögliches Passwort überprüft.
-Wordlist Mode:
Die Effizienz dieses Modes hängt komplett von der Größe und vor allem von der Qualität der verwendeten Wordlist ab. So kann man server- bzw. adminspeziefische Wordlists erstellen und damit die Erfolgswahrscheinlichkeit erhöhen, da man sämtliche zur Verfügung stehenden Informationen benutzen kann; und genau darin liegt die Stärke dieses Modes. Da es unwahrscheinlich ist das z.B. die passwd eines australischen Servers deutsche Passwörter enthält, kann der deutsche Teil der Wordlist in einem solchen Fall erstmal weggelassen werden. Die Wordlist muss dabei so aufgebaut sein, dass in jeder Zeile nur eine Zeichenfolge steht. Auch sollte darauf geachted werden, dass die Wordlist beispielsweise alphabetisch sortiert ist, da John ein wenig schneller arbeitet wenn aufeinaderfolgende Wörter oder Zeichenfolgen sich nicht allzu stark voneinander unterscheiden (es gibt Programme die beim Verwalten von Wordlists helfen, indem sie beispielsweise mehrere Listen zusammenügen, diese alphabetisch ordnen oder doppelte Einträge entfernen).
-Incremental Mode:
Dies ist Johns mächtigster Mode. Er kann jedes existierende Password, unabhängig davon ob es aus Buchstaben, Sonderzeichen, Zahlen oder Kombinationen besteht, decrypten indem er sämtliche möglichen Kombinationen überprüft. Diese Methode wird auch Brute-Force genannt. Hierbei ist allerdings zu beachten, dass die zum decrypten benötigte Zeitspanne (abhängig von Prozessorleistung, Passwortlänge und der im Passwort verwendeten Zeichen) sehr groß sein kann.
-External Mode:
Dieser Mode ist eher für die erfahrenen Benutzer ausgelegt, da er vollständig konfiguriert werden muss. Durch das definieren der Parameter hinter[LIST.EXTERNAL:MODE] in der john.ini Datei, wird ein komplett neuer, individueller Mode erstellt. Dadurch wird es vor allem den Benutzern, die mit John schon Erfahrungen gemacht haben, ermöglicht einen Mode ihren persönlichen Bedürfnissen anzupassen.
Die Befehle:
Hier die wichtigsten Befehle:
john -single dieser Befehl started John im Single-Mode
john -i dieser Befehl started John im Incremental-Mode
john -w:namederwordlist dieser Befehl started John im Wordlist-Mode
john -e:MODE dieser Befehl started John im External-Mode unter Verwendung der bei LIST.EXTERNAL: definierten MODE Eigenschaften
john dieser Befehl lässt John zuerst den Single- dann den Wordlist und schließlich noch den Incremental-Mode durchlaufen
john -show dieser Befehl zeigt die decrypteten Passwörter an
Hinter jedem dieser Befehle muss noch die Passwort-Datei angegeben werden.
Der Befehl john (ohne Zusatz) listed alle verfügbaren Parameter auf.
Die Password-Datei:
In dieser Datei müssen die zu entschlüsselnden Passwörter mit dazugehörigem Benutzernamen enthalten sein. Sie müssen durch einen Doppelpunkt getrennt nach dem Schema USERNAME:PASSWORD gespeichert sein. Wieviele socher Paarungen in der Datei gespeichert sind ist nicht relevant, es muss nur beachted werden dass jeweils nur ein USERNAME:PASSWORD-Paar pro Zeile steht. Die Passwörter dürfen auch nicht geshadowed sein, sondern müssen zum Decrypten im normal verschlüsselten Zustand sein (Bsp: geshadowed= john:x oder john:* ; verschlüsselt= john:Gjstv0eYjOEhc). Falls der Single-Mode verwendet werden soll, müssen auch noch die GECOS-Informationen sowie der Pfad des Userverzeichnisses dahinterstehen (Bsp: john:OozDCtCCAa/lM:11202:0:99999:7:0:.
Die Bedienung:
Anhand eines Beispiels wird nun der Vorgang beim decrypten nochmals genau beschrieben.
Im Beispiel wird davon ausgegangen, dass sich die John.exe Datei im Verzeichnis C:johnjohn-16run befindet. Im gleichen Verzeichnis befinden sich auch die Password-Datei mit dem Namen pwd1.txt und die Wordlist-Datei mit dem Namen wordlist.txt. Der Inhalt der Password-Datei ist in diesem Fall:
john:OozDCtCCAa/lM
John funktioniert NUR vom Dos-Modus oder von der Eingabeaufforderung aus. Also startet man die Eingabeaufforderung und wechselt ins C:johnjohn-16run Verzeichnis. Da man nichts konkretes über den Server bzw. Admin weiss, started man eine Standard-Attacke. In diesem Fall ist der Single-Mode zwar nutzlos, aber Wordlist- und Incremental-Mode werden die Arbeit übernehmen.
Man benutzt also den Befehl:
john pwd1.txt
Nach einem Druck auf die Entertaste bestätigt John mit der Meldung:
Loaded 1 password (Standard DES [48/64 4K])
und beginnt seine Arbeit.
Nun wartet man bis John sich selbst beendet. Das geschieht wenn er die Passwörter aus der Passwordfile decrypted hat, oder die zugewiesenen Modes erfolglos durchlaufen wurden. In unserem Beispiel wird er sich beenden nachdem er das Passwort decrypted hat, da zumindest der Incremental-Mode Erfolg hat. Im Beispiel beendet sich John nach einer Weile und mit dem Befehl:
john -show pwd1.txt
lassen wir uns das entschlüsselte Passwort anzeigen. In diesem Fall gibt John folgende Meldung aus:
john:ripper
1 password cracked, 0 left
Damit ist der Crackvorgang erfolgreich abgeschlossen!
Die neusten Versionen von JtR bekommt ihr auf der offiziellen John the Ripper Page http://www.openwall.com/john/
Anmerkung: Dieses Tut ist speziell für Anfänger gedacht. Es sind nicht alle Funktionen aufgeführt oder näher beschrieben.