Unbekannte Hash-Typen identifizieren

Kali LinuxBeginner
Jetzt üben

Einleitung

In den Bereichen Cybersicherheit und digitale Forensik werden Sie häufig auf kryptografische Hashes stoßen. Ein Hash ist eine Zeichenkette fester Größe aus Bytes, die das Ergebnis einer Einweg-mathematischen Funktion ist, die auf einen beliebigen Datenblock angewendet wird. Bevor Sie versuchen können, einen Passwort-Hash zu knacken, müssen Sie zuerst den Algorithmus identifizieren, der zu seiner Erstellung verwendet wurde, wie z. B. MD5, SHA-1 oder NTLM.

In diesem Lab lernen Sie die wesentliche Fähigkeit, unbekannte Hash-Typen zu identifizieren. Sie werden gängige Kommandozeilen-Tools, die in Linux verfügbar sind, verwenden, um eine Liste von Beispiel-Hashes zu analysieren und ihre entsprechenden Algorithmen zu bestimmen. Dies ist ein entscheidender erster Schritt für jede Passwort-Knack-Aktivität.

Sammeln einer Liste verschiedener Beispiel-Hashes

In diesem Schritt erstellen Sie eine Textdatei, die mehrere verschiedene Hash-Typen enthält. Diese Datei dient als Eingabe für die Identifizierungswerkzeuge in den nachfolgenden Schritten. Jeder Hashing-Algorithmus erzeugt einen Hash mit einer bestimmten Länge und einem bestimmten Zeichensatz, wodurch Identifizierungswerkzeuge zwischen ihnen unterscheiden können.

Verwenden Sie zuerst den Befehl cat mit einem Here Document (<<EOF), um eine Datei namens hashes.txt im Verzeichnis ~/project zu erstellen. Diese Datei wird drei gängige Hash-Typen enthalten: MD5, SHA-1 und NTLM.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

cat << EOF > hashes.txt
d41d8cd98f00b204e9800998ecf8427e
da39a3ee5e6b4b0d3255bfef95601890afd80709
32ed87bd5fdc5e204e2620a05a069858
EOF

Nachdem Sie die Datei erstellt haben, können Sie ihren Inhalt mit dem Befehl cat erneut überprüfen.

cat hashes.txt

Sie sollten die folgende Ausgabe sehen, die bestätigt, dass die drei Hashes in der Datei gespeichert wurden:

d41d8cd98f00b204e9800998ecf8427e
da39a3ee5e6b4b0d3255bfef95601890afd80709
32ed87bd5fdc5e204e2620a05a069858

Nachdem Sie nun Ihre Liste von Hashes haben, sind Sie bereit, mit deren Identifizierung zu beginnen.

Verwenden des hashid-Tools in Kali

In diesem Schritt verwenden Sie das Tool hashid, um die Hashes zu analysieren, die Sie in der Datei hashes.txt gespeichert haben. hashid ist ein Kommandozeilen-Dienstprogramm, das verschiedene Hash-Typen durch Analyse ihrer Länge und Zeichenzusammensetzung identifiziert. Es ist ein einfaches, aber leistungsfähiges Werkzeug für die anfängliche Phase der Hash-Analyse.

Um hashid zu verwenden, übergeben Sie einfach die Datei, die die Hashes enthält, als Argument. Das Tool verarbeitet jede Zeile der Datei und versucht, den Hash in dieser Zeile zu identifizieren.

Führen Sie hashid auf Ihrer hashes.txt-Datei aus:

hashid hashes.txt

Das Tool analysiert jeden Hash und gibt seine Ergebnisse im Terminal aus. Die Ausgabe zeigt den Hash-String, gefolgt von einer Liste möglicher Hash-Algorithmen.

--File 'hashes.txt'--
d41d8cd98f00b204e9800998ecf8427e
[+] MD5
[+] Domain Cached Credentials (DCC)
da39a3ee5e6b4b0d3255bfef95601890afd80709
[+] SHA-1
[+] RipeMD-160
32ed87bd5fdc5e204e2620a05a069858
[+] NTLM
[+] MD4
[+] MD5
--End of file 'hashes.txt'--

Wie Sie sehen können, liefert hashid eine oder mehrere mögliche Übereinstimmungen für jeden Hash. Im nächsten Schritt lernen Sie, wie Sie diese Ausgabe interpretieren.

Analysieren der Ausgabe von hashid

In diesem Schritt lernen Sie, wie Sie die Ausgabe von hashid interpretieren. Obwohl das Tool eine Liste von Möglichkeiten anbietet, müssen Sie oft den Kontext oder eine weitere Analyse verwenden, um den korrekten Hash-Typ einzugrenzen.

Lassen Sie uns die Ausgabe aus dem vorherigen Schritt aufschlüsseln:

  • Für den ersten Hash (d41d8cd98f00b204e9800998ecf8427e) schlägt hashid MD5 und Domain Cached Credentials (DCC) vor. MD5 ist der gebräuchlichste Typ für einen Hash dieses Formats.
  • Für den zweiten Hash (da39a3ee5e6b4b0d3255bfef95601890afd80709) sind die Vorschläge SHA-1 und RipeMD-160. SHA-1 ist eine sehr gängige Wahl.
  • Für den dritten Hash (32ed87bd5fdc5e204e2620a05a069858) listet hashid NTLM, MD4 und MD5 auf. In Windows-Umgebungen ist NTLM ein sehr wahrscheinlicher Kandidat.

hashid kann Ihnen auch den entsprechenden Modus-Code anzeigen, der vom Passwort-Cracking-Tool Hashcat verwendet wird. Verwenden Sie dazu das Flag -m, gefolgt von einem einzelnen Hash. Überprüfen wir den ersten Hash auf seinen Hashcat-Modus.

hashid -m d41d8cd98f00b204e9800998ecf8427e

Die Ausgabe enthält nun die Hashcat-Modusnummer für jeden potenziellen Hash-Typ.

--Hash 'd41d8cd98f00b204e9800998ecf8427e'--
[+] MD5 [HC: 0]
[+] Domain Cached Credentials (DCC) [HC: 1100]

Dies teilt Ihnen mit, dass MD5 für Hashcat dem Modus -m 0 entspricht. Diese Information ist entscheidend für die Einrichtung einer Cracking-Sitzung.

Verwenden eines Online-Hash-Analyse-Tools als Zweitmeinung

In diesem Schritt verwenden Sie ein weiteres Kommandozeilen-Tool, hash-identifier, um eine zweite Meinung zu den Hash-Typen einzuholen. Bei jeder Analyse ist es eine gute Praxis, mehrere Tools zu verwenden, um Ihre Ergebnisse zu überprüfen, da verschiedene Tools unterschiedliche Datenbanken und Algorithmen haben können.

hash-identifier ist ein interaktives Python-Skript. Sie führen den Befehl aus, und es fordert Sie auf, den zu identifizierenden Hash einzugeben.

Starten Sie das Tool zunächst, indem Sie seinen Namen im Terminal eingeben:

hash-identifier

Sie sehen eine Eingabeaufforderung, die nach dem Hash fragt.

   #########################################################################
   ##     __  __                     __           __    _           _   _   #
   ##    / / / /___  ____ ___  ___  / /_  _______/ /_  (_)_________| | / /   #
   ##   / /_/ / __ \/ __ `__ \/ _ \/ __ \/ ___/ __ \/ / / ___/ ___/  |/ /    #
   ##  / __  / /_/ / / / / / /  __/ /_/ / /__/ / / / / / /__/ /  / /|  /     #
   ## /_/ /_/\____/_/ /_/ /_/\___/_.___/\___/_/ /_/_/_/\___/_/  /_/ |_/      #
   ##                                                                       #
   ##                                by c0decracker                         #
   #########################################################################

 HASH:

Kopieren Sie nun einen der Hashes aus Ihrer hashes.txt-Datei, zum Beispiel den zweiten (da39a3ee5e6b4b0d3255bfef95601890afd80709), fügen Sie ihn an der Eingabeaufforderung ein und drücken Sie Enter.

Das Tool analysiert den Hash und liefert seine Schlussfolgerung.

 HASH: da39a3ee5e6b4b0d3255bfef95601890afd80709

Possible Hashs:
[+] SHA-1
[+] RipeMD-160

Least Possible Hashs:

Die Ausgabe bestätigt die Erkenntnis von hashid, dass der Hash höchstwahrscheinlich SHA-1 ist. Sie können Ctrl+C drücken, um das hash-identifier-Tool zu beenden.

Abgleichen des identifizierten Hash-Typs mit dem -m Code von Hashcat

In diesem letzten Schritt lernen Sie, wie Sie den korrekten Modus (-m)-Code für Hashcat, das schnellste Passwort-Recovery-Tool der Welt, finden. Während hashid -m diese Informationen liefern kann, können Sie sie auch direkt aus dem umfangreichen Hilfemenü von Hashcat finden. Dies ist nützlich, um den Modus zu bestätigen oder Codes für weniger gängige Hash-Typen zu finden.

Hashcat erfordert, dass Sie den Hash-Typ mit einem numerischen Code und dem Flag -m angeben. Um den korrekten Code zu finden, können Sie grep verwenden, um die Hilfeausgabe von Hashcat zu durchsuchen.

Finden wir den Modus für MD5. Führen Sie den folgenden Befehl aus:

hashcat --help | grep "MD5"

Die Ausgabe ist eine lange Liste aller Modi, die sich auf MD5 beziehen. Suchen Sie nach dem Eintrag für Plain MD5.

...
      0 | MD5                                            | Raw Hash
...

Wie Sie sehen können, ist der Modus für einen Standard-MD5-Hash 0.

Tun wir nun dasselbe für SHA-1:

hashcat --help | grep "SHA-1"
...
    100 | SHA-1                                          | Raw Hash
...

Der Modus für SHA-1 ist 100.

Schließlich finden wir den Modus für NTLM:

hashcat --help | grep "NTLM"
...
   1000 | NTLM                                           | Raw Hash
...

Der Modus für NTLM ist 1000. Indem Sie den Hash-Typ und seinen entsprechenden Hashcat-Modus korrekt identifizieren, sind Sie nun darauf vorbereitet, einen Passwort-Cracking-Angriff zu konfigurieren.

Zusammenfassung

In diesem Labor haben Sie den grundlegenden Prozess der Identifizierung unbekannter Hash-Typen gelernt, eine kritische Voraussetzung für das Knacken von Passwörtern. Sie begannen damit, eine Datei mit verschiedenen Hash-Beispielen zu erstellen. Anschließend verwendeten Sie zwei leistungsstarke Kommandozeilen-Tools, hashid und hash-identifier, um diese Hashes zu analysieren und ihre wahrscheinlichen Algorithmen zu bestimmen. Schließlich lernten Sie, wie Sie den identifizierten Hash-Typ mit der umfangreichen Liste von Modi von Hashcat abgleichen, um den korrekten -m-Code für eine Cracking-Sitzung zu finden. Diese Fähigkeit ist für jeden Cybersicherheitsexperten, der sich mit Penetrationstests oder digitaler Forensik beschäftigt, unverzichtbar.