In diesem Tutorial werden wir über den Brute-Force-Angriff sprechen und einige Tools zur Durchführung dieses Angriffs erwähnen. Das erste ist zu sagen, worum es bei Brute Force geht, obwohl man es sich unter dem Namen vorstellen kann.
Es ist eine Technik, die auf Versuch und Irrtum basiert, zum Abrufen von Passwörtern oder zum Entschlüsseln von Daten verwendet wird. Diese Methode sucht nicht nach einer intelligenten Strategie, sondern testet alle möglichen Kombinationen, bis der Schlüssel gefunden ist.
Ist es möglich, ein Passwort zu extrahieren oder eine Datei zu entschlüsseln? Wenn unsere Zeit wahrscheinlich unendlich ist, aber nicht so ist, lautet die Antwort nein, Passwörter oder lange Schlüssel und mit mehreren Faktoren (Groß-, Kleinbuchstaben, Zahlen, Sonderzeichen) würde es lange dauern, sie mit dieser Methode herauszubekommen (sagen wir in einem Leben nicht) es wäre erreicht).
Wir können diese Methode verwenden, um die Sicherheit unserer Passwörter zu überprüfen oder um sie vor dieser Art von Angriffen zu verschlüsseln. Wenn Sie wissen möchten, wie Sie ein sicheres Passwort erstellen , empfehle ich Ihnen, dieses Tutorial zu lesen. Ein Verschlüsselungsalgorithmus, der für diese Art von Angriff anfällig ist, ist das DES . Das Gegenteil ist beim AES der Fall , das nicht anfällig für Brute Force ist. Das Gebiet der Kryptographie ist am besten zu verstehen.
Die Welt der Kryptographie
Ein sicheres Passwort ist der erste Schritt, aber Sie können Ihre Konten auch besser schützen, indem Sie den doppelten Authentifizierungsfaktor verwenden (zumindest den wertvollsten). Heutzutage gibt es bereits Dienste, die es integriert und in gewisser Weise anbieten kostenlos, wie Google, Twitter und Linkedin. Diese Systeme senden in der Regel eine Nachricht mit einem Code an Ihr Mobiltelefon, sobald Sie das richtige Passwort eingegeben haben. Solange Sie diesen Code nicht eingeben, können Sie nicht auf Ihr Konto zugreifen.
Es sollte beachtet werden, dass Brute Force oft mit Wörterbuchangriffen kombiniert wird. Dieser Angriff besteht darin, eine Datei mit typischeren Passwörtern zu haben (die Leute verwenden normalerweise vertraute Wörter für ihre Passwörter, damit sie sich besser an sie erinnern) und sie alle auszuprobieren, bis sie den Schlüssel oder finden Beenden Sie Passwörter ohne Erfolg. Der Angriff ist im Allgemeinen effizienter, obwohl die Erfolgschancen erheblich sinken, wenn wir mehrere Faktoren in unserem Passwort verwenden.
Brute-Force-Werkzeuge
Es ist Open Source und kostenlos. Normalerweise wird es im Quellcode verteilt. Sein Hauptziel ist es, schwache Passwörter in UNIX-Betriebssystemen zu finden.
Mit diesem Tool können Sie Brute Force auf Remote-Authentifizierungsdienste anwenden. Sie können Wörterbuchangriffe gegen mehr als 50 Protokolle ausführen.
Es ist ein modulares Tool, das parallel arbeitet und zu Beginn der Sitzung brachiale Gewalt ausübt. Unterstützt Protokolle wie FTP, HTTP, IMAP, SSH usw.
Es ist ein Tool zum Knacken von Netzwerkauthentifizierungen und funktioniert schnell. Sie können das Tool erweitern, indem Sie eigene Module erstellen.
Es ist ein Tool zum Wiederherstellen von Passwörtern in Windows, mit dem Sie brachiale Gewalt anwenden können, aber auch Wörterbuchangriffe und Angriffe mit Hilfe von Regenbogentabellen.
Ich werde dann einen Code in Python einfügen, der Passwörter erhält, die nur Ziffern einer Webseite enthalten, bis zu 5 Ziffern, es könnte auch mit Buchstaben, längerer Länge usw. gemacht werden. Zuerst lasse ich den Code, der die Post-Anfragen bedient, in PHP :
<? php $ user = $ _POST ['user']; $ password = $ _POST ['pass']; $ user = 'josue'; $ pass = '2087'; if ($ user == $ user und $ password == $ pass) {header ('HTTP / 1.1 200 OK'); echo "Autorisierter Zugriff"; } else {header ('HTTP / 1.1 403 verboten'); Echo 'Zugriff verweigert'; }?>
Wir sehen, dass wir keine Versuchsbegrenzungen haben, dass der Benutzer und sein Passwort genau dort definiert sind (um Datenbanken und Komplikationen im Code zu vermeiden). Wenn der Benutzer und das Passwort korrekt sind, geben wir einen Code 200 zurück und wenn nicht einen 403.
Als nächstes lasse ich den Python-Code, der für das Senden von Anfragen an den vorherigen Code verantwortlich ist.
import http.client, urllib.parsefrom time import timeobjective = "/bruteForce/index.php"headers = {" Inhaltstyp ":" application / x-www-form-urlencoded "," Accept ":" application / xhtml + xml, text / html; q = 0.9, text / plain; ",} found = Falsepassword = 0start = time (), während password <= 99999 und nicht gefunden: parameters = urllib.parse.urlencode ({'user': 'josue ',' pass ': password}) connection = http.client.HTTPConnection ("localhost") connection.request ("POST", Ziel, Parameter, Header) response = connection.getresponse () if (answer.status == 200 ): print ("Passwort für Benutzer josue gefunden, ist", password) print ("Es wurde verzögert: {0: .2f} s" .format ((Zeit () - Start))) found = True else: print ( password) connection.close () password + = 1wenn nicht gefunden: print ("Kein Passwort für josue gefunden")
Dieser Code veranlasst die Post-Anfragen, bei jedem Durchlauf in die Schleife das Passwort zu ändern und 1 hinzuzufügen, sodass wir alle möglichen Passwörter von 0 bis 99999 ausprobieren (falls wir sie vorher nicht finden). Malen Sie alle Zahlen, die Sie finden, weil ich es so für das Beispiel wollte, können Sie es entfernen, dafür beseitigen Sie das andere. Lassen Sie uns diesen Code ausführen, um zu sehen, ob er die Passwörter findet.
Das erste Beispiel, das wir starten werden, um das Passwort 2087 zu finden. Unten ist das Bild zu sehen, dass es keine 18 Sekunden dauert, um es zu entfernen.
Wenn ich das else entferne, damit es nicht auf dem Bildschirm erscheint, dauert jede Nummer viel weniger, hier sehen Sie eine Aufnahme:
Nun habe ich für den zweiten und letzten Versuch das Passwort 20870 eingegeben, um zu sehen, wie lange es diesmal dauert.
Sie können den Unterschied erkennen, indem Sie dem Kennwort ein weiteres Zeichen hinzufügen. Es ist jedoch immer noch eine Zeit, die wir problemlos abwarten können, auch wenn wir Threads einfügen, die die Zeit verkürzen würde. Deshalb verwenden wir sichere Passwörter und in unseren Anwendungen eine robuste Authentifizierung, die diesen Angriff nicht automatisieren kann.
Wenn Sie ein praktisches Beispiel sehen möchten, in dem das Kennwort einer Zip oder einer Rar-Datei ungültig ist, können Sie das folgende Tutorial besuchen:
Passwort verletzen .rar oder .zip