Vom Hash zur Passwortliste

Bei Penetrationstests stoßen die IT-Security Spezialisten von Thinking Objects oft auf so genannte "Passwort-Hashes" - kryptografische Repräsentationen von Passwörtern. Um diese Passwörter effektiv knacken zu können, können auf das Ziel angepasste Passwortlisten sehr nützlich sein.

 Was ist ein Hash?

Ein Hash wird mit einer kryptografischen Einwegfunktionen erzeugt, um bei der Authentifizierung das Kennwort des Benutzers überprüfen zu können ohne es im Klartext hinterlegt zu haben.

In der Praxis sieht es oft wie folgt aus: Der Benutzer gibt sein Kennwort ein. Auf das eingegebene Kennwort wird eine solche Einwegfunktion angewandt, um im Anschluss den gespeicherten Hash mit dem neu errechneten Hash zu vergleichen – sind die zu vergleichenden Hashes gleich, so hat der Benutzer sich erfolgreich authentifiziert.

Der Weg vom Hash zum Passwort

Um die gefundenen Passwort-Hashes in Klartext-Passwörter zu verwandeln, und somit im Penetrationstest nutzbar zu machen, gibt es folgende Wege:

  • Brute-Force:
    Bei der Brute-Force-Methode werden Passwörter anhand eines hinterlegten Schemas generiert. Oft sind die hinterlegten Schemata sehr einfach und geben lediglich die Kombination aller Zeichen des gegebenen Zeichensatzes für ein Passwort einer bestimmten Länge vor. Auf die einzelnen Kombinationen wird anschließend die Hashfunktion angewendet, mit der auch der zu knackende Passwort-Hash erzeugt wurde. Stimmen die Hashes überein, so wurde das korrekte Passwort gefunden.
  • Wörterbuchangriff (zu Engl. dictionary attack):
    Bei dieser Methode werden Passwortlisten verwendet, um den gewünschten Hash zu erzeugen. In den letzten Jahren wurden sehr viele Webseiten gehackt und deren Datenbanken im Internet veröffentlicht. Die Datenbanken dieser Webseiten enthalten teilweise die Daten von Millionen Benutzern und oft auch deren Passwörter. Unter Zuhilfenahme dieser Listen kann, in Kombination mit Listen der beliebtesten Passwörter, die Erfolgschance deutlich gesteigert werden.

Theoretisch ist es möglich mit der Brute-Force-Methode jedes Passwort zu generieren das ein Zeichensatz erzeugen kann, jedoch haben wir nur begrenzt viel Zeit und Rechenleistung zu unserer Verfügung. Die deutlich effizientere Methode ist deshalb der Wörterbuchangriff, allerdings steht und fällt die Erfolgsquote dieser Methode mit den genutzten Passwortlisten.

Die richtige Passwortliste

Die richtige Liste zu finden ist keine leicht Aufgabe. Thinking Objects führt eine sehr große Passwort-Datenbank. Diese beinhaltet viele Passwörter aus Datenbanken, die nach Hackerangriffen veröffentlicht worden sind. Die Erfolgsquote dieser Datenbank mag für die breite Masse sehr hoch sein, sie versagt jedoch oft, wenn eine bestimmte Person das Ziel darstellt.

Viele Studien und die Analyse veröffentlichter Passwörter haben gezeigt, dass viele Menschen dazu neigen persönliche Daten in ihren Passwörtern zu verwenden. Das Verwenden von persönlichen Daten von sich oder auch sich nahestehenden Personen stellt ein sehr großes Sicherheitsrisiko dar, da sehr viele Menschen dazu neigen diese Daten in einem vorhersehbaren Schema in ihrem Passwort zu verwenden. Bei einem gezielten Angriff ist es dem Angreifer ein leichtes, bei heutiger Informationspolitik, sich diese Informationen zu beschaffen.

Persönliche Daten:

Max Mustermann
01.01.1970
Musterstraße 42
12345 Musterstadt

Mögliche Konstellationen könnten sein:

 Max1970, Max70, Mustermann1970, Mustermann70
 MM1970, MM70, Maxm1970, Maxm70, MMustermann1970,
 Max001 ... Max100

und viele weitere.

Expandiert man einen solchen Regelsatz mit genügend Metadaten, permutiert die Groß- und Kleinschreibung, fügt Zahlen eines gewissen Bereichs mit ein und ändert die Reihenfolge der einzelnen Bestandteile – so erhält man eine Passwortliste, die zwar immer noch sehr groß ist, jedoch eine deutlich höhere Erfolgsquote für einen Angriff aufweist.

Passwortlisten selbst generieren

Einen Passwortgenerator zu entwickeln stellt keine große Herausforderung dar. Einen Generator zu entwickeln dessen Güte an Passwörtern jedoch unseren Anforderungen entspricht ist nicht so einfach. Die Schwierigkeit liegt in den Regelsätzen, die Metadaten kombinieren und ergänzen. Wie gut diese sind und ob sie realen Bedingungen standhalten, kann nicht ohne weiteres gezeigt werden.

Da es etliche Arten gibt die Metadaten einer Person zu kombinieren, muss eine Metrik gefunden werden anhand der wir unseren Generator messen können. In dem Paper `A Study of Personal Information in Human-chosen Passwords and Its Security Implications`[1] stellen die Autoren einen Algorithmus vor, um den Anteil verwendeter Metadaten in Passwörtern zu beziffern.

Nachdem wir den Algorithmus implementiert und geringfügig angespasst hatten, war es nun möglich diesen auf unsere Passwortdatenbank anzuwenden und so Datensätze zu finden, bei denen der Anteil der Metadaten im Passwort vergleichsweise hoch ist. An diesen Datensätzen kann unser Passwortgenerator aus Eigenentwicklung nun getestet und so optimiert werden, dass er genau solche Kennwörter erzeugen kann.

Diese Listen haben aufgrund der Metadaten eine deutlich höhere Wahrscheinlichkeit das Passwort der Zielperson zu beinhalten als andere generische Listen.

Wir bei Thinking Objects haben, im Gegensatz zu Angreifern in der realen Welt, keine bösen Absichten. Wir nutzen diese Passwortlisten, um im Auftrag unserer Kunden Penetrationstests auf deren IT-Unternehmensinfrastruktur durchzuführen. So ist es uns möglich Schwachstellen zu finden, bevor ein Angreifer mit bösen Absichten diese aufdeckt.

Wie kann ich mich schützen ?

Vermeiden sie persönliche Daten in Passwörtern. Das klingt im ersten Moment schwierig, aber das Mehr an Sicherheit ist es Wert, sich ein neues Passwort einzuprägen. Am besten Sie verwenden einen Passwortmanager und generieren sich für jeden Dienst ein langes Zufallspasswort. Auf diese Weise erschwert man einem Angreifer eine Bruteforce-Attacke, und noch viel wichtiger: sollte einer der Dienste, die Sie nutzen, kompromittiert werden, so wird lediglich ein Passwort veröffentlicht, das ausschließlich für diesen Dienst verwendet wurde.

Siehe auch: https://blog.to.com/keepass-tutorial-passwoerter-sicher-verwalten/

Quellen:

[1] http://csis.gmu.edu/ksun/publications/Password-infocom2016.pdf

1 Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

CAPTCHA *