John the Ripper

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
ofmueller
Beiträge: 34
Registriert: 11.04.2013 13:24:52

John the Ripper

Beitrag von ofmueller » 22.11.2018 13:51:54

Frage 1
Ich möchte die mögliche Anzahl der Versuche pro Sekunde ermitteln, die John the Ripper konkret auf meinem Rechner erreicht. Dazu nutze ich folgende Möglichkeiten:
  1. john -test
    Ausgabe:

    Code: Alles auswählen

    Benchmarking: descrypt, traditional crypt(3) [DES 128/128 SSE2-16]... DONE
    Many salts:	5841K c/s real, 5841K c/s virtual
    Only one salt:	5623K c/s real, 5623K c/s virtual
    ...
  2. john -i myshadow;
    bei Nutzung einer beliebigen Taste bekomme dan ich folgende Ausgabe:

    Code: Alles auswählen

    0g 0:01:46:42 0g/s 492.6p/s 492.6c/s 492.6C/s hebaku..hunimy
Was bedeuten die einzelnen Angaben in Punkt 1 und Punkt 2? Kann ich daraus konkrete Schlussfolgerungen für die Geschwindigkeit beim Knacken von Linux-Passwörtern (ENCRYPT_METHOD SHA512) auf meinem Rechner ziehen?

Frage 2
John the Ripper nutzt bei standardmäßiger Anwendung nur einen Prozessorkern. Wie erreiche ich, dass alle Kerne in die Berechnung einbezogen werden?

Gunman1982
Beiträge: 923
Registriert: 09.07.2008 11:50:57
Lizenz eigener Beiträge: MIT Lizenz

Re: John the Ripper

Beitrag von Gunman1982 » 22.11.2018 14:10:26

ofmueller hat geschrieben: ↑ zum Beitrag ↑
22.11.2018 13:51:54
Frage 2
John the Ripper nutzt bei standardmäßiger Anwendung nur einen Prozessorkern. Wie erreiche ich, dass alle Kerne in die Berechnung einbezogen werden?
So weit ich weiss brauchst du für multicore die pro version. https://www.openwall.com/john/pro/linux/

wanne
Moderator
Beiträge: 7448
Registriert: 24.05.2010 12:39:42

Re: John the Ripper

Beitrag von wanne » 22.11.2018 15:14:11

von Linux-Passwörtern (ENCRYPT_METHOD SHA512)
Die Passworthashmethoden der verschiedenen Distros sind deutlich unterschiedlich.
In Debian ist das per default ein SHA-512 mit 5000 Runden und Salt. Kurz: $6$. Verstehen tut es aber SHA-512 und SHA-256 mit beliebig vielen runden MD5-crypt und den klassischen DES-crypt. PLAIN will im Gegensatz zu dem was in der Manpage steht nicht.
Viele RPM-Basierte Distros nutzen auch bcrypt-basierte Varianten. Haben den Vorteil der besseren Resistenz gegen Hardware-Cracker und den Nachteil der großen Komplexität, die wiederholt schwächen hatte.
Nutzung einer beliebigen Taste bekomme dann ich folgende Ausgabe
Die Zeile drüber wäre interessant gewesen. Der john in debian kann keinen sha512 kann aber wohl auf die glibc zurückgreifen. (Die in Debian wohl kein DES/Crypt aber wohl blowfish kann.)
Siehe auch man 3 crypt (Auch der Hinweis kommt in der versteckten Ausgabe)
Die ist vermutlich stinkenlahm weil nicht aufs cracking optimiert. Du willst dir eigentlich immer die jumbo Variante holen, die deutlich mehr Cipher und auch sonst mehr kann.
konkrete Schlussfolgerungen für die Geschwindigkeit beim Knacken
In dem Fall ist das relativ einfach: Du kannst 492.6 Passwörter pro Sekunde durchprobieren. (492.6p/s) davon stimmen 0 pro Sekunde (0g/s).
Da du nur einen User hast, sind das auch genau so viele Crackversuche pro Sekunde (492.6C/s) und da $6$ nicht ganz dämlich aufgebaut ist brauchst du für jedes Passwort eine Hasberechnung und hast entsprechend genau so viele Hashberechnungen (492.6c/s) pro Sekunde. (Bei manchen Algorithmen ist es möglich mehrere Passwortkanidaten mit einer Hashberechung testen (ungesalzene Hashes) und bei anderen können mehrere Passwörter mit einer Hashberechnung abgearbeitet werden (DES).)
John the Ripper nutzt bei standardmäßiger Anwendung nur einen Prozessorkern. Wie erreiche ich, dass alle Kerne in die Berechnung einbezogen werden?
john (zumindest in der jumbo Variante) kann eine Menge Wege:
Klassisch teilt man den Passwortbereiche einfach in mehrere Teile auf und startet dann für jeden Teil ein john. Das ist beliebig flexibel anpassbar. Dafür gibt es diverse Automatisierungen.
Moderner setzt man die "distributed" Variante auf. Eine Instanz erzeugt die Passwörter versendet die über IP, die anderen Rechnen. Da kann man dann auch über mehrere Knoten hinweg rechnen. Dazu nimmt john glaube ich OpenMPI. Den support dafür muss man aber erst einkompilieren.
Seit einer Weile gibt es die Variante 1 etwas bequemer aber nur für einen Rechner: --fork=n Teilt den Passwortbereich automatisch auf n Instanzen auf und startet die. D.h. aber auch, dass die anderen weiter probieren obwohl die erste das PW schon gefunden hat.
In deiner Statusausgabe bekommst du dann mehrere Zeilen. Für jeden Prozess eine. Die 1 am Anfang der Zeile sagt bei dir, dass es der erste Prozess ist. Gibst du 3 an kommt eine 2 und 3 dazu.
Als nächstes gibt es Multithreadding. Kann die jumbo Variante aber ist auch nicht default. Etwas (meist nicht mal messbar) langsamer als die vorherigen und funktioniert nicht mit jedem Algorithmus. Dafür werden die passwörter dynamisch auf verschiedene Threads verteilt. John läuft dann nur noch als ein Prozess.
rot: Moderator wanne spricht, default: User wanne spricht.

ofmueller
Beiträge: 34
Registriert: 11.04.2013 13:24:52

Re: John the Ripper

Beitrag von ofmueller » 28.11.2018 10:41:55

Danke für die ausführliche Antwort. Ich bin erst heute dazu gekommen, sie gründlich zu lesen und konnte entsprechend deinen Aussagen mich weiter informieren. Ich kann jedem empfehlen, der diesbzgl. Fragen hat, die obige Antwort gründlich zu lesen.

So bin ich durch die Anregung oben auch noch auf diese Seite gestoßen, die mir weitergeholfen hat:
https://www.aychedee.com/2012/03/14/etc ... -formats/

Antworten