In den vorherigen Artikeln habe ich gezeigt, wie sich aus jedem Active Directory Verzeichnisdienst die Datenbank auslesen und exportieren lässt. In dieser Datenbank sind auch die Passwörter aller User (verschlüsselt) gespeichert. Das letzte Tutorium hat gezeigt, wie einfach sich auch diese Passwort-Hashes aus der Datenbank extrahieren lassen.
Grundsätzlich verwendet Microsoft für die Verschlüsselung dieser Passwörter simple und betagte Verfahren, die relativ einfach mit entsprechenden Tools „entschlüsseln“ lassen.
Um also wieder an die Passwörter zu kommen benötigt man nur noch ein wenig Übung im Umgang mit den entsprechenden Tools und Power, Power, Power…. MEHR POWER! 🙂
Im folgenden Beispiel benutze ich das Tool Hashcat, um die extrahierten Passwort-Hashes zu entschlüsseln.
Dieses Tool bietet sehr viele Möglichkeiten an und lagert diese Aufgabe auch in die Grafikkarte aus. Dieser Weg ist bedeutend schneller, weil Grafikkarten für solche Berechnungen sozusagen optimiert sind. Die gleichzeitige Berechnung von vielen, vielen Polygonen, Pixeln und was auch immer, muss in der heutigen Welt schnell gehen – dafür sind CPUs mit 4, 6 oder 8 Kernen nicht gut geeignet.
Wie ihr seht, arbeitet mein Core i7-3930k mit GeForce GTX 570 (1 GB Ram) die gefundenen Hashes relativ schnell ab. Es werden insgesamt 1.700 MH/s, also ca. 1,7 Mrd. verschiedene Passwörter pro Sekunde überprüft, wobei die Grafikkarte hier ausschließlich die Arbeit übernimmt. Zum Vergleich: der i7 arbeitet die gleiche Aufgabe nur mit 16 MH/s ab. Auch bei anderen Parametern (bei NTLM-Hashes) ist die Grafikkarte deutlich schneller, wobei die Performance immer über 100 MH/s lag.
Ein Test auf einem etwas neueren System, auf das ich Zugriff habe (Intel Core i5-2500k und AMD Radeon R9 200, 3 GB VRAM) liefert sogar 8.300 Millionen Hashes pro Sekunde (MH/s), also 8,3 GH/s wie auf dem nachfolgenden Bild dargestellt.
Das 6 stellige Passwort, dass in meinem ersten Beitrag erwähnt wurde ermöglicht einen „Passwortraum“ von n = 52^6 verschiedenen Passwörtern, wenn man Groß- und Kleinschreibung zulässt. Zusätzlich evtl. noch Ziffern, womit wir bei n = 62^6 möglichen Passwörtern wären, was n = ca. 56 Milliarden mögliche Passwörter darstellt. Mein aktuelles – in der Zwischenzeit auch schon etwas betagte System – könnte also sämtliche Passwörter mit sechs Stellen innerhalb von ca. 7 Sekunden „knacken“. Ich denke das sollte eigentlich genug Argumentationshilfe sein, um 6-stellige Passwörter in den Passworthimmel zu schicken. Selbst wenn Sonderzeichen noch zugelassen wären, würde dies den Passwortraum zwar auf 782 Milliarden mögliche Kombinationen erweitern – die Aufgabe wäre aber mit meinem System innerhalb von 97 Sekunden erledigt.
Leider habe ich die Erfahrung gemacht, dass einige Verantwortliche das ganze mal „Live“ sehen müssen. Insbesondere, wenn dann das eigene Passwort am Bildschirm sichtbar wird – das ja eigentlich „super doll“ sicher ist, entscheiden sich viele Leute, die Passwortsicherheit im gesamten Unternehmen deutlich höher zu hängen.
Ein 8-stelliges Passwort z.B. ermöglicht schon n = 54^8 verschiedene mögliche Passwortkombinationen, n = 72.301.961.339.136 (72 Billionen verschiedene Passwörter). Hierfür bräuchte das System auf dem ich gerade arbeite ca. 12,5 Stunden. Ich denke es ist überflüssig, zu erwähnen, dass ein aktuelles System mit einen Grafikkartenverbund von. z.B. 8 Grafikkarten – wie es heutzutage auch zum „Coin-Minen“ für unter EUR 3.500 verkauft wird – die oben gezeigten Aufgaben in Bruchteilen dieser Zeit erledigt.
Wirklich sichere Passwörter enthalten also zumindest je ein Zeichen aus den Kategorien Groß- und Kleinschreibung sowie Ziffern und Sonderzeichen und sind mindestens 8 Zeichen lang, um den mittellosen Angreifer halbwegs aufzuhalten. Angreifer mit mehr Budget werden höchstens noch von Passwörtern mit mindestens 11 Zeichen aufgehalten.
Wobei nur die Länge eines Passworts noch kein hinreichendes Kriterium für ein sicheres Passwort darstellt. Es kommt selbstverständlich auch auf den Inhalt an – Teile des Passworts sollten z.B. nicht in einem Wörterbuch stehen. Und das Passwort sollte sich auch nicht in einer der zahlreichen Passwort-Leaks wiederfinden, die es mittlerweile schon zu hauf im Internet zum Download gibt. Aber dazu gibt es vielleicht bald mal einen separaten Beitrag…