Anmelden


Penetrationstests, Teil 5: Hashwerte knacken

Im letzten Beitrag dieser Serie haben wir versucht ein lokales Passwort zu erraten und uns im Netzwerk der erfundenen Firma Acme seitwärts weiter zu bewegen. Doch was, wenn man ein Passwort nicht erraten kann?

In unserem Testszenario enthalten Servernamen und lokale Admin-Passwörter Namen von Biersorten. Es ist nicht komplett von der Hand zu weisen, dass sich bei viel beschäftigten IT-Mitarbeitern eine gewisse Bequemlichkeit einschleichen kann. Zu Lasten der Sicherheit. „Ich bin jetzt auf dem Server ‚Miller‘, also lautet das Passwort ‚admin-miller‘.“ Hacker nutzen solche Schwachstellen nur zu gerne aus.

Doch nehmen wir einmal an, Sie landen in einer Umgebung, in der Ihre kreativen Rateversuche fehlschlagen. Hier kann sich ein Hash-basierter Ansatz bezahlt machen.

Wir haben bereits über Pass-the-Hash-Angriffe geschrieben. Doch bevor wir genauer darauf eingehen, wollen wir Ihnen eine viel einfachere Idee vorstellen: das Knacken von Passwort-Hashes.

Hashwerte knacken leicht gemacht

Auf Windows-Systemen werden Passwörter niemals klarschriftlich aufbewahrt.

Stattdessen speichert Windows den Hashwert von Passwörtern – genauer gesagt den NTLM-Hashwert. Den Hashwert benötigt das Challenge/Response-Authentifizierungsprotokoll von Windows. Im Prinzip weisen die Nutzer ihre Identität nach indem ein Zufallstext mit dem NTLM-Hashwert ihres Passworts als Schlüssel verwendet wird.

Wo speichert Windows diese Hashwerte? Laut unseren Recherchen speichert Windows die Hashwerte lokaler Nutzerkonten in der Datenbank des Sicherheitskonto-Managers (SAM), der Teil der lokalen Sicherheitsautorität (LSA) ist. Weitere Infos finden Sie in diesem TechNet-Artikel.

Die erste Frage eines Penetrationstesters lautet: Kann ich auf die Hashwerte zugreifen? Denn sobald man einen Hashwert hat, kann man mit einigen Standardmethoden versuchen das eigentliche Passwort herauszufinden.

Die Antwort lautet: Ja. Es gibt Tools, die den SAM lesen und Hashwerte knacken können. Beispielsweise das über eine einfache Google-Suche zu findende fgdump, Pwdump7 ist eine weitere Möglichkeit.

Zum Ausführen dieser Tools benötigt man allerdings erweiterte Rechte. Trotzdem  kommt es immer wieder vor, dass ein Hacker das Glück hat, bei einem Power-User zu landen, der auf eine professionell erstellte Phishing-Mail herein gefallen ist.

Wir versuchten es also mit fgdump auf einem der Server in der bekannten Acme-IT-Umgebung, die wir extra eingerichtet hatten. Der untenstehende Screenshot zeigt die Ergebnisse:

 

Jetzt haben wir die NTLM-Hashwerte für zwei lokale Administratorkonten (die langen Zeichenfolgen am Zeilenende). „NO PASSWORD“ bedeutet übrigens, dass fgdump den älteren und deutlich einfacher zu knackenden LM-Hash nicht finden konnte. Was gut ist! LM-Hashes sollte man nicht aktivieren, außer man ist aus Kompatibilitätsgründen dazu gezwungen.

Den Hash knacken

Eine häufig eingesetzte Methode zum Knacken von Hashwerten sind Wörterbuchangriffe. Dabei wird eine riesige Menge häufig verwendeter deutscher Begriffe und vielleicht eine bestehende Liste mit tatsächlich verwendeten Passwörtern nach Hash-Verschlüsselung mit den NTLM-Hashwerten verglichen.

Es muss also lediglich der passende Hashwert gefunden und das entsprechende Klartextpasswort ausgegeben werden.

Glücklicherweise müssen Sie hier das Rad nicht neu erfinden, denn es gibt Dienste wie diesen hier, die einen Großteil der Arbeit übernehmen.

Bei unserem Penetrationstest haben wir den Hash für „admin2“ eingegeben, und prompt die Lösung, „daisy“ (siehe oben), erhalten.

Windows setzt allerdings bestimmte Komplexitätsanforderungen für Passwörter voraus, und in vielen Installationen würde ein derart einfaches Passwort nicht akzeptiert. Etliche relativ komplexe Passwörter lassen sich aber mithilfe einer Brute-Force-Attacke knacken. Oder in einem System befinden sich ältere lokale Konten, die eingerichtet wurden, bevor Windows auf längere Passwörter umgestiegen ist.

John the Ripper

Zu Testzwecken haben wir den Dienst auf das komplexere Passwort des Admin-Kontos auf dem Miller-Server angesetzt, das „miller1234“ lautete. Selbst nach tagelangen Brute-Force-Berechnungen war der Dienst nicht in der Lage, das Passwort einfach zu knacken.

Doch so schnell haben wir natürlich nicht aufgegeben und sind dabei auf ein ausgeklügeltes Tool zum Knacken von Passwörtern gestoßen: John the Ripper. Es ist in der Lage Brute-Force-Attacken auf eine sehr clevere Art und Weise durchzuführen. John the Ripper verwendet ein spezielles Verfahren, bei dem Zeichen von Wörtern aus einer bestehenden, definierbaren Wörterbuchliste nach den von Ihnen angegebenen Regeln ausgetauscht werden (das sogenannte „Mangling“). Die Regeln wirken zunächst etwas kryptisch, sind aber sehr effektiv. Hier finden Sie eine relativ leicht verständliche Übersicht zum Thema Mangling. Es lassen sich beispielsweise Regeln erstellen, um unterschiedliche Zahlenfolgen an die Begriffe aus dem Wörterbuch anzuhängen.

Wenn Sie vermuten, dass Passwörter aus bestimmten Namen und einfachen alphanumerischen Zeichen bestehen, füttern Sie John the Ripper mit einer entsprechenden Liste und konfigurieren anschließend Regeln, um eine Vielzahl unterschiedlicher Suffixe zu testen.

Pass-the-Hash-Angriffe

Das Knacken von NTLM-Hashwerten ist zugegebenermaßen nicht ganz so einfach.

Bei Pass-the-Hash-Angriffen wird demgegenüber erst gar nicht erst versucht, den Hashwert zu knacken. Stattdessen wird er direkt in das NTLM-Challenge/Response-Protokoll eingegeben. Die Authentifizierung erfolgt also ohne das Klartextpasswort. In den letzten Microsoft-Releases wurde diese Vorgehensweise allerdings deutlich erschwert, mit Windows 10 ist sie vielleicht sogar gänzlich unmöglich geworden.