Wie man Passwörter knackt

Ein kurzer Hinweis - In diesem Artikel geht es um die Theorie, wie Passwörter geknackt werden. Es ist äußerst wichtig zu verstehen, wie Cyberkriminelle Angriffe ausführen, um Systeme vor solchen Angriffen zu schützen.

Der Versuch, ein System zu hacken, das Sie nicht besitzen, ist in Ihrer Gerichtsbarkeit wahrscheinlich illegal (und das Hacken Ihrer eigenen Systeme kann [und oft] gegen eine Garantie für dieses Produkt verstoßen).

Beginnen wir mit den Grundlagen. Was ist ein Brute-Force-Angriff?

Bei dieser Art von Angriff wird wiederholt versucht, sich als Benutzer anzumelden, indem jede mögliche Kombination aus Buchstaben, Zahlen und Zeichen (mithilfe automatisierter Tools) ausprobiert wird.

Dies kann entweder online (also in Echtzeit, indem Sie ständig verschiedene Kombinationen aus Benutzername und Passwort auf Konten wie Social Media oder Bankenseiten ausprobieren) oder offline (z. B. wenn Sie eine Reihe von Hash-Passwörtern erhalten haben und versuchen zu knacken) erfolgen sie offline).

Offline ist nicht immer möglich (es kann schwierig sein, eine Reihe von Hash-Passwörtern zu erhalten), aber es ist viel weniger laut. Dies liegt daran, dass ein Sicherheitsteam wahrscheinlich viele, viele fehlgeschlagene Anmeldekonten desselben Kontos bemerkt. Wenn Sie das Kennwort jedoch offline knacken können, werden keine fehlgeschlagenen Anmeldeversuche aufgezeichnet.

Dies ist mit einem kurzen Passwort relativ einfach. Mit einem längeren Passwort wird es aufgrund der Vielzahl von Möglichkeiten exponentiell schwieriger.

Wenn Sie beispielsweise wissen, dass jemand ein 5 Zeichen langes Passwort verwendet, das nur aus Kleinbuchstaben besteht, beträgt die Gesamtzahl der möglichen Passwörter 26 ^ 5 (26 mögliche Buchstaben für den ersten Buchstaben, 26 mögliche für den zweiten Brief usw.) oder 11.881.376 mögliche Kombinationen.

Wenn jedoch jemand ein 11-stelliges Passwort verwendet, das nur aus Kleinbuchstaben besteht, beträgt die Gesamtzahl der möglichen Passwörter 26 ^ 11 oder 3.670.344.486.987.776 mögliche Passwörter.

Wenn Sie Großbuchstaben, Sonderzeichen und Zahlen hinzufügen, wird das Knacken noch schwieriger und zeitaufwändiger. Je mehr mögliche Passwörter vorhanden sind, desto schwieriger ist es für jemanden, sich erfolgreich mit einem Brute-Force-Angriff anzumelden.

Wie Sie sich schützen können

Diese Art von Angriff kann auf verschiedene Arten verteidigt werden. Erstens können Sie ausreichend lange, komplexe Passwörter (mindestens 15 Zeichen) verwenden. Sie können auch eindeutige Kennwörter für jedes Konto verwenden (verwenden Sie einen Kennwortmanager!), Um die Gefahr von Datenverletzungen zu verringern.

Ein Sicherheitsteam kann ein Konto nach einer bestimmten Anzahl fehlgeschlagener Anmeldeversuche sperren. Sie können auch eine sekundäre Überprüfungsmethode wie Captcha erzwingen oder die 2-Faktor-Authentifizierung (2FA) verwenden, für die ein zweiter Code erforderlich ist (SMS oder E-Mail, App-basiert oder Hardware-Schlüssel).

Hier ist ein Artikel darüber, wie man einen Brute-Force-Angriff ausführt.

Wie können Sie Passwörter schneller knacken?

Bei einem Wörterbuchangriff wird versucht, sich wiederholt anzumelden, indem eine Reihe von Kombinationen ausprobiert werden, die in einem vorkompilierten 'Wörterbuch' oder einer Liste von Kombinationen enthalten sind.

Dies ist normalerweise schneller als ein Brute-Force-Angriff, da die Kombinationen aus Buchstaben und Zahlen bereits berechnet wurden, wodurch Sie Zeit und Rechenleistung sparen.

Wenn das Kennwort jedoch ausreichend komplex ist (z. B. 1098324ukjbfnsdfsnej) und nicht im 'Wörterbuch' (der vorkompilierten Liste der Kombinationen, mit denen Sie arbeiten) angezeigt wird, funktioniert der Angriff nicht.

Dies ist häufig erfolgreich, da Benutzer bei der Auswahl von Kennwörtern häufig gebräuchliche Wörter oder Variationen dieser Wörter auswählen (z. B. "Kennwort" oder "p @ SSword").

Ein Hacker kann diese Art von Angriff auch verwenden, wenn er einen Teil des Passworts kennt oder errät (z. B. den Namen eines Hundes, Geburtstage von Kindern oder ein Jubiläum - Informationen, die ein Hacker auf Social-Media-Seiten oder anderen Open-Source-Ressourcen finden kann).

Ähnliche Schutzmaßnahmen wie die oben beschriebenen gegen Brute-Force-Angriffe können den Erfolg dieser Art von Angriffen verhindern.

Was ist, wenn Sie bereits eine Liste mit Hash-Passwörtern haben?

Kennwörter werden in der Datei / etc / shadow für Linux und in der Datei C: \ Windows \ System32 \ config für Windows gespeichert (die beim Booten des Betriebssystems nicht verfügbar sind).

Wenn Sie es geschafft haben, diese Datei abzurufen, oder wenn Sie einen Kennwort-Hash auf andere Weise erhalten haben, z. B. indem Sie den Datenverkehr im Netzwerk überwachen, können Sie versuchen, das Kennwort offline zu knacken.

Während für die oben genannten Angriffe ein wiederholter Anmeldeversuch erforderlich ist, können Sie bei einer Liste mit gehashten Kennwörtern versuchen, diese auf Ihrem Computer zu knacken, ohne Warnungen auszulösen, die durch wiederholte fehlgeschlagene Anmeldeversuche generiert werden. Dann versuchen Sie nur einmal, sich anzumelden, nachdem Sie das Passwort erfolgreich geknackt haben (und daher gibt es keinen fehlgeschlagenen Anmeldeversuch).

Sie können Brute-Force-Angriffe oder Wörterbuchangriffe gegen die Hash-Dateien verwenden und sind möglicherweise erfolgreich, je nachdem, wie stark der Hash ist.

Moment mal - was ist Hashing?

35D4FFEF6EF231D998C6046764BB935D

Diese Nachricht erkennen? Es heißt "Hallo, mein Name ist Megan"

7DBDA24A2D10DAF98F23B95CFAF1D3AB

Dies ist der erste Absatz dieses Artikels. Ja, es sieht nach Unsinn aus, aber es ist eigentlich ein "Hash".

Mit einer Hash-Funktion kann ein Computer eine Zeichenfolge (eine Kombination aus Buchstaben, Zahlen und Symbolen) eingeben, diese Zeichenfolge übernehmen, verwechseln und eine Zeichenfolge fester Länge ausgeben. Aus diesem Grund haben beide oben genannten Zeichenfolgen die gleiche Länge, obwohl die Eingaben der Zeichenfolgen sehr unterschiedlich lang waren.

Hashes können aus nahezu jedem digitalen Inhalt erstellt werden. Grundsätzlich können alle digitalen Inhalte auf binäre oder eine Reihe von Nullen und Einsen reduziert werden. Daher können alle digitalen Inhalte (Bilder, Dokumente usw.) gehasht werden.

Es gibt viele verschiedene Hashing-Funktionen, von denen einige sicherer sind als andere. Die obigen Hashes wurden mit MD5 generiert (MD steht für "Message Digest"). Unterschiedliche Funktionen unterscheiden sich auch in der Länge des von ihnen erzeugten Hash.

Der gleiche Inhalt in der gleichen Hash-Funktion erzeugt immer den gleichen Hash. Selbst eine kleine Änderung wird den Hash jedoch vollständig verändern. Zum Beispiel,

2FF5E24F6735B7564CAE7020B41C80F1

Ist der Hash für 'Hallo, mein Name ist Megan'? Nur das Großschreiben des M in Megan hat den Hash von oben komplett geändert.

Hashes sind auch Einwegfunktionen (dh sie können nicht rückgängig gemacht werden). Dies bedeutet, dass Hashes (eindeutig und einseitig) als eine Art digitaler Fingerabdruck für Inhalte verwendet werden können.

Was ist ein Beispiel dafür, wie Hashes verwendet werden?

Hashes können als Bestätigung verwendet werden, dass eine Nachricht nicht geändert wurde.

Wenn Sie beispielsweise eine E-Mail senden, können Sie die gesamte E-Mail hashen und auch den Hash senden. Anschließend kann der Empfänger die empfangene Nachricht über dieselbe Hash-Funktion ausführen, um zu überprüfen, ob die Nachricht während der Übertragung manipuliert wurde. Wenn die beiden Hashes übereinstimmen, wurde die Nachricht nicht geändert. Wenn sie nicht übereinstimmen, wurde die Nachricht geändert.

Außerdem werden Passwörter normalerweise gehasht, wenn sie gespeichert werden. Wenn ein Benutzer sein Kennwort eingibt, berechnet der Computer den Hashwert und vergleicht ihn mit dem gespeicherten Hashwert. Auf diese Weise speichert der Computer Passwörter nicht im Klartext (einige neugierige Hacker können sie also nicht stehlen!).

Wenn jemand in der Lage ist, die Kennwortdatei zu stehlen, sind die Daten nutzlos, da die Funktion nicht rückgängig gemacht werden kann (obwohl es Möglichkeiten wie Regenbogentabellen gibt, herauszufinden, welcher Klartext den bekannten Hash erstellt).

Was ist das Problem mit Hashes?

Wenn ein Hash Daten beliebiger Länge oder Inhalte aufnehmen kann, gibt es unbegrenzte Möglichkeiten für Daten, die gehasht werden können.

Da ein Hash diesen Text in einen Inhalt fester Länge (z. B. 32 Zeichen) konvertiert, gibt es eine endliche Anzahl von Kombinationen für einen Hash. Es ist eine sehr sehr große Anzahl von Möglichkeiten, aber keine unendliche.

Schließlich ergeben zwei verschiedene Datensätze den gleichen Hashwert. Dies wird als Kollision bezeichnet.

Wenn Sie einen Hash haben und versuchen, jeden einzelnen möglichen Klartextwert zu durchsuchen, um den Klartext zu finden, der zu Ihrem Hash passt, ist dies ein sehr langer, sehr schwieriger Prozess.

Was ist jedoch, wenn es Ihnen egal ist, welche zwei Hashes kollidieren?

Dies wird in der Mathematik als "Geburtstagsproblem" bezeichnet. In einer Klasse von 23 Schülern liegt die Wahrscheinlichkeit, dass jemand an einem bestimmten Tag Geburtstag hat, bei etwa 7%, aber die Wahrscheinlichkeit, dass zwei Personen denselben Geburtstag haben, bei etwa 50%.

Dieselbe Art der Analyse kann auf Hash-Funktionen angewendet werden, um zwei übereinstimmende Hashes zu finden (anstelle eines bestimmten Hashs, der mit dem anderen übereinstimmt).

Um dies zu vermeiden, können Sie längere Hash-Funktionen wie SHA3 verwenden, bei denen die Wahrscheinlichkeit von Kollisionen geringer ist.

Sie können hier versuchen, Ihre eigenen Hash-Funktionen für SHA3 und hier für MD5 zu generieren.  

Sie können versuchen, Hashes mit brutaler Gewalt auszuführen, dies dauert jedoch sehr lange. Der schnellere Weg, dies zu tun, besteht darin, vorberechnete Regenbogentabellen zu verwenden (die Wörterbuchangriffen ähneln).

Es scheint wirklich leicht zu sein, gehackt zu werden. Sollte ich besorgt sein?

Das Wichtigste beim Hacken ist, dass niemand mehr arbeiten möchte als er. Zum Beispiel können Brute-Forcing-Hashes extrem zeitaufwändig und schwierig sein. Wenn es einen einfacheren Weg gibt, an Ihr Passwort zu gelangen, wird dies wahrscheinlich zuerst ein schändlicher Schauspieler versuchen.

Das bedeutet, dass das Aktivieren grundlegender Best Practices für Cybersicherheit wahrscheinlich der einfachste Weg ist, um Hackerangriffe zu verhindern. Tatsächlich hat Microsoft kürzlich berichtet, dass durch die Aktivierung von 2FA 99,9% der automatisierten Angriffe blockiert werden.

Zusätzliche Lektüre:

Beliebte Tools zum Knacken von Passwörtern