Phishing Vorgehensweise

Phishing Vorgehensweisen

Ich war neulich auf der Suche nach einem interessanten Projekt und erinnerte mich an ein YouTube-Video, das ich gesehen hatte. In dem Video fand ein Typ eine Phishing-Seite, die versuchte, an Amazon-Login-Daten zu kommen. Er hat dann ein Programm in Python programmiert, das gefälschte Logins an die Seite sendet, um die Logs mit den gefälschten Konten durcheinander zu bringen. Die Phisher mussten dann herausfinden, welche Logins die tatsächlichen Personen waren, die hereingelegt wurden, und welche das Programm waren. Ich fand das ziemlich inspirierend.

Es ist nicht illegal, sich auf einer Phishing-Seite einzuloggen, und man tut dem Internet einen Gefallen, indem man die Seite der Phisher sabotiert. Das Programm, das dieser Typ gemacht hat, war nett, aber es könnte in einigen Punkten besser sein. Erstens war das Format der gesendeten E-Mail-Adressen nicht sehr abwechslungsreich. Zweitens schickte das Programm nur etwa alle 2-5 Sekunden eine Anmeldung. Was für die Phisher immer noch ein Ärgernis sein würde. Also beschloss ich, mein eigenes Programm zu entwickeln. Ich werde den Code am Ende dieses Threads und in einem Pastebin posten.

Schritt 1 Finden einer Phishing-Site
Dies war einfach genug. In dem Video wurde gezeigt, wie der Typ Phishtank durchsucht, um die Phishing-Site zu finden. Also habe ich das Gleiche getan. Hier ist der Link zu Phishtank: hxxps://phishtank.com (ersetzen Sie die x’s mit t’s). Ich habe ziemlich schnell ein paar gute Kandidaten gefunden.

Schritt 2 Analysieren der Seite
Jetzt musste ich nur noch herausfinden, wohin die Anfrage zur Anmeldung geschickt wurde und welches Format sie hatte. Ich benutze Firefox, also rief ich Menü > Webentwickler > Netzwerk auf. Dann loggte ich mich mit gefälschten Anmeldedaten auf der Phishing-Seite ein. Wenn Sie sich bei einer Website anmelden, werden die Anmeldeinformationen normalerweise in einer HTTP-POST-Anfrage an die Website gesendet. Natürlich war die erste Anfrage nach der Anmeldung ein HTTP POST. Die POST-Daten hatten zwei Felder. Ein E-Mail- und ein Passwort-Feld. Das war fast zu einfach. Ich kopierte die URL, an die die POST-Anfrage gesendet wurde, und machte mich an die Arbeit mit der Codierung.

Schritt 3 Kodierung des Tools
Ich entschied mich, das Tool in Python 3 zu programmieren. Ich würde ein paar Module benötigen: requests, json, random und threading. Requests für das Senden der HTTP-Anfragen (ich hätte auch urrlib.requests verwenden können, aber ich dachte, ich probiere mal ein Modul aus, das ich noch nicht verwendet habe), json für den Zugriff auf die Listen mit Namen und Passwörtern (wahrscheinlich nicht unbedingt notwendig, aber das Arbeiten mit JSON in Python ist wirklich einfach), random für das Erzeugen von Zufallszahlen für die gefälschten E-Mail-Adressen und threading, damit wir mehrere Anfragen gleichzeitig ausführen können. Der Rest war ziemlich trivial. Einige kleinere Bugs tauchten auf, hauptsächlich wegen mir. Aber das Tool war in weit unter einer Stunde fertig. Ich brauchte auch einige Daten für die Erstellung von E-Mails und Passwörtern. Ich habe die Namensliste und die Liste der 500 schlechtesten Passwörter für E-Mails und Benutzernamen verwendet. https://github.com/danielmiessler/SecLists/

Schritt 4 Angriff auf die Phishing-Seite
Nun war es an der Zeit, zu testen. Ich ließ das Tool jede E-Mail/Kennwort-Kombination ausdrucken, die es gesendet hatte, und die Gesamtzahl der Anfragen, die es gesendet hatte. Das Tool begann mit 8 Threads. Es funktionierte perfekt. Leider schickte es die Anfragen auch so schnell, dass ich die Ausgabe nicht lesen konnte, lol. Also habe ich es wieder auf 4 Threads gedrosselt und es ging immer noch ziemlich schnell, aber ich konnte auch die Ausgabe lesen. Zu diesem Zeitpunkt schickte er mehrere Anfragen pro Sekunde. Auf der ersten Seite hatte ich mehrere tausend Anfragen in weniger als 10 Minuten. Ich habe es ein paar Mal gestoppt, um die Anzahl der Threads zu ändern, aber einige Male ging es in die Tausende von Login-Anfragen. Insgesamt hat die erste Site etwa 10.000 Anmeldungen erhalten. In den letzten paar Minuten fing das Programm an, Exceptions zu werfen. Das war aber eigentlich eine gute Sache, denn der Server verweigerte mir gerade weitere Verbindungen (Webserver haben normalerweise eine maximale Anzahl von erlaubten Verbindungen pro Client). Also habe ich es einfach für eine Minute angehalten und die Anzahl der Threads zurückgesetzt. Wenn ich mich richtig erinnere, fing die Seite an, sich so zu verhalten, als würde die Phishing-Seite nicht mehr existieren. Selbst wenn ich versuchte, sie in meinem Browser aufzurufen. Ich bin mir nicht sicher, ob das eine Gegenmaßnahme des Phishers war, oder ob ich die Seite wirklich kaputt gemacht habe.

Runde 2…
Da das Tool nun gut funktionierte, probierte ich es an einer neuen Phishing-Seite aus. Ich musste das Tool leicht modifizieren, weil die Anfrage offensichtlich an eine andere Stelle gehen sollte und die Post-Anfrage etwas anders war. Dieser Angriff verlief mehr oder weniger wie der zweite. Die Anfragen gingen in den Bereich von etwa 10.000. Aber nach etwa 10-15 Minuten begann die Website, auf alle Anfragen mit einem HTTP 404 not found zu antworten. Ich habe versucht, die Website in meinem Browser aufzurufen. Dasselbe Problem. Ich wartete ein paar Minuten und versuchte das Tool erneut. Die Website antwortete immer noch mit 404 not found.

Phishing – Analyse nach der Operation

Obwohl dieser Angriff effektiv ist, ist er nicht perfekt. Es gibt ein paar Möglichkeiten, wie die Phisher erkennen können, welche Logins gefälscht sind, je nachdem, wie viele Informationen ihnen zur Verfügung stehen.

Benutzer-Agent

Wenn sie Zugriff auf die HTTP-Protokolle haben, könnten sie einfach sehen, welchen User Agent die Anfragen haben (sie waren alle gleich). Es wäre ziemlich einfach herauszufinden, weil das Anforderungsmodul einen User-Agent verwendet, den man in normalen Browsern nicht oft sieht. Zugegeben, ich könnte mein Programm auch einfach beliebige legitime Browser-Benutzeragenten verwenden lassen. Das könnte eine gute Ergänzung zum Programm sein.

IP-Adresse

Ich habe nicht versucht, meine IP-Adresse zu verstecken. Wenn die Phisher also Zugang zu den HTTP-Protokollen hätten und wüssten, wie sie diese durchsuchen können, könnten sie einfach alle Anmeldeinformationen entfernen, die von meiner IP-Adresse stammen. Das ist auch etwas, das ich umgehen könnte. Zum einen, wenn andere Leute das Tool verwenden, wird ihre IP anders sein. Ich könnte das Tool auch über TOR oder einen Proxy laufen lassen, aber ich würde einen Proxy oder TOR nicht überlasten wollen, also würde ich das lieber nicht tun. Eine andere Möglichkeit ist die Verwendung eines VPS/Servers, auf dem das Tool läuft. AWS hat ein kostenloses VPS-Tier, das man ziemlich einfach bekommen kann. Da ich meine IP nicht versteckt habe, muss ich mich möglicherweise um die Vergeltung von Phishern sorgen. Aber ich werde diese Brücke überqueren, wenn ich dort ankomme. Und wenn sie sich irgendwie revanchieren, dann weiß ich, dass mein Angriff effektiv war.

Zeit

Die Anfragen kamen alle in demselben Zeitfenster von 10-20 Minuten. Die Phisher könnten also alle in diesem Zeitraum gesammelten Anmeldedaten einfach wegwerfen. Aber sie laufen Gefahr, dass alle tatsächlichen Anmeldedaten der Opfer gelöscht werden. Eine Möglichkeit, diese spezielle Gegenmaßnahme zu umgehen, besteht darin, die Zeiten, zu denen die Anfragen eingehen, zu randomisieren und die Anfragen über einen längeren Zeitraum zu verteilen.

E-Mail-Format

Ich habe mich bemüht, das E-Mail-Format abwechslungsreich zu gestalten. Es ist jedoch möglich, das allgemeine Format der E-Mails herauszufinden und diejenigen zu entfernen, die damit übereinstimmen. Natürlich haben viele Opfer wahrscheinlich auch E-Mails in diesen Formaten, so dass es nicht ganz effektiv ist. Außerdem ist es einfach, dies zu umgehen. Machen Sie einfach die E-Mail-Formate abwechslungsreicher.

Kennwörter

Die Passwörter kamen aus einer Wortliste. Wenn die Phisher also nur Logins mit Passwörtern entfernen würden, die sie als von mir stammend erkannt haben, könnte das etwas helfen. Dabei tritt jedoch ein ähnliches Problem auf wie beim E-Mail-Format. 1) Die tatsächlichen Opfer haben möglicherweise dieselben Passwörter. 2) Ich kann einfach mehr Passwörter bekommen XD.

Der Code ist auf pastebin: https://pastebin.com/NkzxuYk6

admin

Schreibe einen Kommentar