DEFCON 17. 400.000 Passwörter hacken oder einem Mitbewohner erklären, warum die Stromrechnung gestiegen ist. Teil 1Wenn Sie keine Regeln zum Erstellen von Kennwörtern befolgen, sieht das Kennwort möglicherweise wie eine einfache
PHP- Liste aus. Menschen hassen Regeln, hassen Sätze und wollen sie nicht benutzen. Wenn Sie ihnen Freiheit geben, drucken sie ein kleines Passwort und gehen davon aus, dass die Arbeit erledigt ist. In diesem Fall ist es sicherer, wenn keine einfachen Grundwörter verwendet werden. Daher ist es besser, große Eingabewörterbücher zu verwenden.

Der größte Beitrag zur Erstellung von Eingabewörterbüchern wurde von Sebastian Ravo geleistet - er erstellte riesige Wortlisten aus jedem Wikipedia-Artikel sowie aus ähnlichen Projekten. Wenn Sie ein Wort kennen, erstellen Sie einen Wikipedia-Artikel dafür. Aber was für Wikipedia gut ist, ist nicht immer gut für die Erstellung sicherer Passwörter. Wenn das Wörterbuch also wirklich riesig ist, ist es unmöglich, viele verschiedene Regeln darauf anzuwenden. Sie können die Liste der Wörter aus Wikipedia auf seinem Blog
http://blog.sebastien.raveau.name/ lesen.
Wenn es eine Richtlinie zur Kennworterstellung gibt, sollten Sie sich an die folgenden Regeln halten:
Es ist besser, kleine thematische, spezialisierte Wortlisten in Wörterbüchern zu verwenden.
Die besten Wörterbücher basieren auf zuvor geknackten Passwörtern.
Aus Datenschutzgründen kann ich Ihnen keine Liste mit gehackten Passwörtern zur Verfügung stellen, aber glauben Sie mir, sobald eine reiche Person reicher wird, wird ein gehacktes Passwort stärker, wenn Sie sehen, wo der Fehler beim Erstellen gemacht wurde, und ihn korrigieren.
Es gibt Listen solcher Passwörter, und wir können sehen, dass dieselben Benutzer in diesen Listen wiederholt werden, weil sie überall dasselbe Passwort verwendet haben.
Es ist nützlich, wenn Sie die Basis aus solchen Passwörtern extrahieren können. Zum Beispiel sollte
das TigerWoods1982- Passwort nicht zu weit verbreitet sein, aber die Leute verwenden ständig
das TigerWoods- Passwort. Daher können Sie diesen Grundsatz
„TigerWoods“ extrahieren , um darauf basierend ein
sicheres Kennwort zu erstellen. Auf meiner CD befinden sich einige Tools, mit denen Sie dies erheblich vereinfachen können.
Die Regeln zum Erstellen von Wörtern für Kennwörter sind sehr einfach:
Sie müssen jedoch Ihre eigenen Regeln entwickeln, wenn Sie wirklich sichere Passwörter knacken möchten. Auf meiner
CD befindet sich ein weiteres Tool, mit dem Sie Passwörter in zwei verschiedene Gruppen zerlegen können.
Das erste sind Passwörter, über die wir wissen, wie sie erstellt wurden, zum Beispiel
Passwort123 , und das zweite sind Passwörter, deren Prinzip wir nicht kennen. Dies ist sehr gut, da Sie nicht 200.000 Passwörter wie
password123 sortieren und dann versuchen müssen, neue Regeln für deren Verwendung zu finden. Sie erhalten eine kurze Liste, aus der Sie beispielsweise ersehen können, dass Benutzer Emojis verwenden, um Kennwörter zu erstellen, indem sie Emoticons in Wörter einfügen. Sie lernen neue Tastenkombinationen kennen und können so viel einfacher sichere Passwörter erstellen.
Wie gesagt, ich habe mich entschlossen, mich von den integrierten
JtR- Regeln zu
entfernen und meine eigene Methode zu entwickeln, um „Vermutungen“ zu generieren. Gute Ergebnisse kommen von der probabilistischen Crackmethode, der
probabilistischen Crackung . Ich habe bereits gesagt, dass unsere Reaktionen universell sind: Wir laufen mit unseren Augen durch etwas, nicken, sagen, dass es großartig aussieht, aber für uns selbst denken wir: „Was für ein akademischer Müll!“ Aber ich möchte sagen, dass wir wirklich lernen wollten, wie man die widerstandsfähigsten gegen knackende Passwörter erstellt, also haben wir versucht, alles bestmöglich zu machen.
Es ist bekannt, dass einige Wörter von Menschen mehr gemocht werden als andere, zum Beispiel
Passwort ,
Affe ,
Fußball . Es ist auch bekannt, dass Benutzer bestimmte Regeln für das „Verzerren“ von Passwörtern bevorzugen, indem sie 123, 007, $$$ oder die ersten Großbuchstaben von Wörtern hinzufügen. Um die Stärke zu erhöhen, müssen wir die Regeln für die untypische Erstellung von Passwörtern optimieren. Dies ist ein ziemlich zeitaufwändiger Prozess. Im E-Mail-Newsletter von
John the Ripper erfuhr ich von der Person, die 10 oder
12.000 JtR-Regelkonfigurationsdateien erstellt hat ,
um das Beste daraus zu machen.

Ich bin viel fauler als er, also habe ich das nicht getan. Ich habe nur versucht, die Optimierung des Kennworterstellungsprozesses zu vereinfachen und den Prozess zu automatisieren. Wir verarbeiten alle Informationen und bestimmen die Wahrscheinlichkeit, bestimmte Wörter und Kombinationen zu verwenden, dh wir ordnen Passwörter nach der Wahrscheinlichkeit des Erratens. Und dann verwenden wir die am wenigsten wahrscheinliche Kombination von Wörtern und „Verzerrungen“, um ein Passwort zu erstellen. Wir sollten also Folgendes versuchen, um unsere Passwörter zu verbessern:
- Verwenden Sie ein allgemeines Wort mit einer nicht üblichen Art der Passwortverzerrung, z. B. 13! password13 !;
- Verwenden Sie ein seltenes Wort mit einer häufigen "Verzerrung", z. B. zibra123.
Mit dieser Methode ist es uns gelungen. Wenn Sie die Passwörter gemäß den oben genannten Zeichen nicht in zwei Sätze aufteilen können, haben wir ein Trainerprogramm, das die Liste der bekannten Passwörter automatisch analysiert und eine sogenannte "Grammatik" generiert. Diese „Grammatik“ enthält alle erforderlichen Informationen. Daher verwenden wir zwei solche „Grammatiken“, um die Möglichkeiten zum Knacken von Passwörtern zu untersuchen.
Dank dessen bestimmen wir die Wahrscheinlichkeit, alles zu verwenden, was wir haben: Wörter in Wörterbüchern, Regeln zum „Verzerren“ von Wörtern in Passwörtern, Algorithmen zum Anordnen von Zeichen wie „zwei Ziffern am Ende von Passwort 12“, im Gegensatz dazu können Sie die Regel „zwei Ziffern am Ende von Passwort“ verwenden 21 "und dergleichen.
Ich kann weiter darüber sprechen, aber ich zeige Ihnen besser ein gutes Beispiel dafür, wie dies funktioniert. Ich erwarte nicht, dass Sie alles auf der Folie lesen, also sage ich Ihnen, was ich tun werde. Ich werde unseren probabilistischen Passwort-Cracker starten und ihm zwei verschiedene Eingabewörterbücher "füttern". Tatsächlich unterstützt es bis zu 10 Wörterbücher, aber es ist besser, nicht verrückt zu werden.

Ein Eingabewörterbuch enthält die am häufigsten verwendeten Kennwörter, sodass die Wahrscheinlichkeit einer Vermutung hoch ist. Das zweite Wörterbuch enthält die am wenigsten verbreiteten Wörter, und ein Passwort-Cracker wechselt zwischen den beiden Wörterbüchern. Danach "salze" ich das Ergebnis direkt in
John the Ripper , weil ich, wie gesagt, meinen eigenen Passwort-Hashing-Algorithmus erstellen möchte.
Leider können wir die
PHP- Liste hier aus Gründen der Vertraulichkeit nicht verwenden, da Sie nicht jedem das Knacken von Passwörtern nachweisen können. Unser Institut erkennt dies nicht als legal an. Daher werde ich die Arbeit des Crackers am Beispiel der
MySpace- Liste demonstrieren, die vor 2 Jahren veröffentlicht wurde. Alle darin enthaltenen Passwörter wurden im Klartext dargestellt, damit Sie sie lesen können, und dieser Vorgang stellt keine zusätzliche Gefahr dar.
Wir haben
MD5- Hashing verwendet. Dies ist genau der gleiche Hashing-Algorithmus, der für die
PHPBB- Liste verwendet wird. Hier wird also weitgehend ein Angriff auf
PHPBB simuliert. Hier wurden ungefähr 17.000 Passwort-Hashes ohne "Lust" geladen, und wir haben ihre Listen für das typische maschinelle Lernen in verschiedene Teile unterteilt.
Im Moment können Sie auf dem Bildschirm die Geschwindigkeit sehen, mit der Passwörter geknackt werden. Daher sollten Sie wahrscheinlich einen langsameren Hashing-Algorithmus verwenden. Es gibt auch einen Wechsel zwischen verschiedenen Regeln, also sind dies nicht nur Versuche wie "1 Ziffer versuchen, 2 Ziffern versuchen" und so weiter.
Sie sehen, dass Passwörter unterschiedlich groß sind. Normalerweise verwenden Benutzer eine Länge von 6 bis 8 Zeichen. Manchmal befinden sich Ausrufezeichen am Ende des Passworts.
Es gibt mehrere weitere Arten der Optimierung, die wir in diesen Algorithmus integrieren möchten, da unsere Arbeit noch nicht abgeschlossen ist. Eines dieser Dinge ist die Einbeziehung gezielter Angriffe in den Prozess, wenn das Programm nicht ein großes altes Passwort bricht, sondern versucht, das Passwort eines bestimmten Benutzers zu knacken.

Für einen gezielten Angriff benötigen Sie lediglich ein anderes Eingabewörterbuch, z. B. Babynamen, Geburtstage, Postleitzahlen usw.
Sie sehen, dass sich der Hacking-Prozess auf dem Bildschirm etwas verlangsamt hat. Dies sind Designmerkmale. Wenn das Hacken einfach genug ist, wird der Prozess beschleunigt. Da es jedoch auf einem Wahrscheinlichkeitsmodell basiert, werden Passwörter mit der höchsten Wahrscheinlichkeit schneller erraten, und Passwörter mit der geringsten Wahrscheinlichkeit werden etwas langsamer geknackt, sodass hier eine größere Anzahl von "Vermutungen" verwendet wird.
Sie haben auch festgestellt, dass die Passwörter in dieser Liste meistens ziemlich schwach sind. Dies liegt daran, dass wir gerade eine Sitzung zum Knacken von Passwörtern starten und keine zu komplexen oder erweiterten Passwörter verwenden möchten.
Wenn Sie eine Hacking-Strategie haben, bei der Sie nur sichere Kennwörter angreifen möchten, müssen Sie eine geeignete Liste basierend auf diesen Kennwörtern erstellen und die Sitzung mit dem Hacken nur sicherer Kennwörter beginnen.
Damit hat unser Programm seine Arbeit abgeschlossen. Der Hacking-Vorgang dauerte 2 Minuten und 30 Sekunden. Während dieser Zeit wurden 5586 Passwörter gehackt oder erraten, was etwas mehr als 30% der Gesamtzahl entspricht.
Es gibt hundert Gründe, warum ich denke, dass die Richtlinie zum Erstellen von Passwörtern geändert werden muss, nicht weil die Verwendung von Passwörtern etwas Rückständiges und Dummes ist. Ich glaube nur wirklich, dass sie unserer Sicherheit mehr schaden als nützen. Besonders wenn es sich um Offline-Angriffe handelt, denen nur widerstanden werden kann, wenn Sie Ihr Passwort alle 2 Minuten ändern.
Jetzt möchte ich über die
Brute-Force- Angriffstechnik sprechen. Diese Angriffe können wirklich viel Schaden anrichten, wenn Sie sich nicht um die Verteidigung kümmern.
Sie sind ziemlich mächtig, aber Sie können ihnen widerstehen, Sie müssen nur Ihr Gehirn benutzen. Dazu müssen Sie die Häufigkeit der Verwendung von Buchstaben und Symbolen analysieren, um herauszufinden, welche Buchstaben oder Symbole in Kennwörtern relativ selten verwendet werden.

Sicherlich haben Sie alle davon gehört, also versuchen Sie zum Beispiel, den Buchstaben Q häufiger zu verwenden, was in Passwörtern selten vorkommt. Ihr Hacking-Algorithmus sollte nicht versuchen, alle Passwörter zu knacken. Sie müssen sich auf die wahrscheinlichsten konzentrieren.
Eine weiter fortgeschrittene Option ist
das Markov-Modell . Es basiert auf der bedingten Wahrscheinlichkeit von Buchstaben. Wenn Sie beispielsweise zwei Buchstaben Q hintereinander haben, sind Sie besser geschützt als wenn Sie U in Ihrem Buchstabensatz haben, da U normalerweise dem Buchstaben Q in Wörtern folgt. Außerdem wird davon ausgegangen, dass das Kennwort in erstellt wird "Menschliche" Art, dh wenn sich ein bestimmter Buchstabe an dieser Stelle des Wortes befindet, folgt ein weiterer Buchstabe, der am häufigsten in einer solchen Buchstabenkombination verwendet wird. Markovs Modell wird vom
JtR- Hacking-
Algorithmus verwendet , der berücksichtigt, dass auf den Buchstaben Q in „menschlichen Wörtern“ normalerweise U oder W folgt, aber nicht S oder Z. Denken Sie nicht, dass ich hier Schwierigkeiten habe, Ihnen den „John the Ripper“ zu verschaffen, aber es ist so wirklich gutes Programm.
Wir können die Logik von
Brute Force durch gezielte Angriffe weiter vertiefen. Sie basieren auf der Verwendung solcher Prinzipien zum Erstellen von Passwörtern:
- Leute neigen dazu, das Passwort mit einem Großbuchstaben zu beginnen;
- Normalerweise fügen sie am Ende des Passworts Zahlen hinzu.
- aus dem gleichen grund verwenden sie gerne php- oder phpbb-kombinationen in passwörtern.
Die gleichen Prinzipien können für "Wörterbuchangriffe" verwendet werden. Es gibt ein sehr gutes Tool zur Überprüfung der Wirksamkeit von Angriffen namens
"Crunch" , das
im Programmierforum von
remote-exploit.com zu finden ist.
Ich möchte Ihnen ein Beispiel geben, wie Sie mit dem
Brute-Force- Angriff ein „starkes“ Passwort brechen. Dazu
starte ich zuerst
JtR und es werden unter Verwendung des Markov-Modells „Vermutungen“ basierend auf Kleinbuchstaben generiert.

Sie sehen, dass in dieser Liste viele echte Wörter wie Hund, sternenlos, marine enthalten sind, die im Eingabewörterbuch enthalten sind. Dank des Markov-Modells generiert er aber auch Wörter, die dort fehlen, zum Beispiel stech. Da wir jedoch ein sicheres Passwort lösen, müssen wir eine zusätzliche Logik anwenden. Daher verwende ich Skripte, die am Anfang eines Wortes einen Großbuchstaben enthalten, und füge am Ende eines Wortes Sonderzeichen und Zahlen hinzu.

Wie Sie sehen können, sehen diese „Vermutungen“ wie ein wirklich starkes Passwort aus. Nachdem Sie die Richtlinien zur Kennworterstellung kennen, sollten Sie auf die Schaltfläche "Faulheit ausschalten" klicken und 5 Minuten damit verbringen, diesen Wörtern eine bestimmte Größe zu geben, da sie zu kurz aussehen.
Wir können auch versuchen, alles wieder auf
JtR hochzuladen und Hashes zu knacken.

Zu Beginn der Präsentation habe ich ausführlich über das Brechen der Liste von Passwörtern für Benutzer von
phpbb.com gesprochen , und jetzt möchte ich ein wenig über das Brechen der Liste von
Web Hosting Talk sprechen .

Er wurde am 21. März 2009 gehackt, zumindest zu diesem Zeitpunkt wurde eine Liste im Netzwerk veröffentlicht, und der Angreifer erwies sich als echter Schurke, da er etwa 200.000 Logins und Passwörter sowie andere vertrauliche Benutzerinformationen öffentlich zugänglich machte. Er hat Hashes gestohlen und dann die Site selbst und alle Backups gelöscht. Dies war ein schwerer Schlag für den Systemadministrator.

Danach meldeten die Websitebesitzer, dass sie gehackt wurden, aber die Benutzer müssen sich keine Sorgen machen, da sie jetzt sicher sind. Gleichzeitig drückten sie einen Gedanken aus, der tatsächlich täuschte und gefährlich war. Ich zitiere die Worte des
iNET- Community-Koordinators: „Passwörter haben„ Lust “, und es wird ein beispielloses Ereignis sein, wenn jemand sie neu gestalten kann. Ich ändere mein Passwort regelmäßig, also ist heute vielleicht ein guter Tag dafür. "
Es sieht so aus, als würde ich sagen: "Hallo Leute, weißt du, der Kopierraum ist eingeschaltet, aber keine Sorge, dort gibt es ein Feuerlöschsystem, daher ist es absolut unmöglich, dass dieses Gebäude niederbrennt." Aber manchmal gehe ich gerne zur Mittagszeit nach draußen, damit du auch nach draußen gehen kannst, wenn du willst. “ Dies ist einer der Gründe, warum ich mich entschlossen habe, diese Liste hier zu hacken.
Ferner veröffentlichte der Koordinator die folgende Erklärung: "Es wurde keine Einzelbenutzer-Kreditkarte oder
kein PayPay- Konto gehackt." Wahrscheinlich nur, weil der Hacker das nicht brauchte. Und dann gab es einen neuen Fehler - dieselbe Site wurde am 7. April erneut von demselben Hacker gehackt, und diesmal veröffentlichte er im Netzwerk etwa 202.000 Passwort-Hashes und 2218 Kreditkartennummern.
Ich werde niemals auf die Website gehen, deren Verwaltung sagt: "Ja, zweitausend Kreditkarten wurden uns gestohlen, aber der Rest ist sicher"!
Ich möchte die Situation etwas klären. Das Hacken von Leuten ist eine Tatsache, und ich möchte
Web Hosting Talk nicht dafür verantwortlich machen . Der Versuch, etwas unmittelbar nach dem Hacken zu speichern und aus Ihrem System herauszuholen, ist ein schwieriges Problem, insbesondere wenn Benutzer Sie wiederholt aufgefordert haben, das System zu sichern. Daher denke ich, dass das Hauptproblem bei
Web Hosting Talk darin besteht, dass sie die Risiken, denen ihre Benutzer
ausgesetzt sind, heruntergespielt haben. Und ihrerseits zu handeln war sehr gefährlich.
Zumindest sollten Sie den Benutzern so etwas wie eine tickende Uhr zur Verfügung stellen, die darauf hinweist, dass Sie sich anmelden und Ihr Kennwort ändern müssen, und zwar nicht nur für diese Site, sondern für alle anderen Sites so schnell wie möglich. Dies ist sehr wichtig, da ich bald eine interessante Tatsache über diese Site entdeckte: Nach dem ersten Angriff änderten 1348 Benutzer ihre Passwörter, was nur 0,6% der auf der Site registrierten Gesamtzahl entsprach!
Aus diesem Grund hatte der Hacker die großartige Gelegenheit, die Site mit denselben unveränderten Benutzeranmeldeinformationen zurückzugeben und erneut zu hacken oder sie sogar zum Hacken anderer Sites zu verwenden, auf denen sie ebenfalls registriert waren.
Ich wollte herausfinden, ob der Hash dieser Website wirklich so schwach ist, und wandte mich an
Google , um herauszufinden, welche Software die Website verwendet. Es stellte sich heraus, dass dies ein
vBulletin der Forum-Engine ist, das in
PHP geschrieben wurde und den
MySQL- Server zur Pflege seiner Datenbank verwendet. Google beantwortete auch die Frage, welchen Hash-Algorithmus diese Website verwendet - dies ist doppeltes Hashing wie
MD5 (MD5 (Passwort) .salt) . Das heißt, Sie nehmen das Kennwort des Benutzers, hashen es mit
MD5 und hashen erneut das empfangene Kennwort mit demselben
MD5 . Ich wusste nicht, wie „John the Ripper“ mit solchem Hashing umgehen würde, also schrieb ich meinen eigenen „Cracker“. Ich habe jedoch nicht versucht, die tatsächlichen Passwörter dieser Website zu knacken, da dies mehrere Wochen dauern würde. Ich habe mich lediglich entschlossen, das Vorhandensein des Passworts "Passwort" in der Liste zu testen, und sofort 1109 Personen gehackt, die das Wort "Passwort" als Passwort verwendeten.

Ich möchte sagen, dass das "Hervorheben" im Passwort wirklich ein Problem für den Angreifer darstellt und daher für den Benutzer wichtig ist. Ich mache weiterhin Werbung für Passwörter mit unterschiedlicher "Lust", da dies für einen Cracker bedeuten würde, den Hash jedes Passworts für jeden einzelnen Benutzer "erraten" zu müssen. Wenn wir zum Beispiel die
PHPBB- Site verwenden, auf der der
einstufige MD5 -Hash verwendet wurde, hat der Hacker etwa 1 Stunde damit verbracht, die Kennwortliste zu knacken. Für einen solchen Angriff auf die Liste der Passwörter von
Web Hosting Talk würde es 200.000 Stunden dauern, wenn sie durch "Lust" geschützt wären.
Was muss noch gesagt werden? , «Dell» 34% 200
phpbb . , «». , , ? , .
, «» , - , , , «». , , 200 , . , «admin» «webmaster».
, , . , , «», , .
, weir@cs.fsu.edu
- , .
: , «It's fun to try the impossible»! : «!!It's fun to try the impossible!» «!!ifttti!».
,
Mad Libs , .
: ASCII, :

Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung
aufgeben oder Ihren Freunden empfehlen, einen
Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).
VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s bis Dezember kostenlos, wenn Sie für einen Zeitraum von sechs Monaten bezahlen, können Sie
hier bestellen.
Dell R730xd 2 mal günstiger? Nur wir haben
2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie,
wie Sie eine Infrastruktur aufbauen Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?