
Ein kostengünstiges (Nullkosten-) Tool für Bedrohungsinformationen & -reaktion gegen Phishing-Domains
Das Jeopardize-Tool wurde entwickelt, um grundlegende Bedrohungsanalyse- und Reaktionsfähigkeiten gegen Phishing-Domains zu möglichst geringen Kosten bereitzustellen. Es erkennt registrierte Phishing-Domain-Kandidaten (Typosquatting, Homograph usw.), analysiert sie und weist ihnen einen Risikowert zu. Anschließend sendet es gültig aussehende Anmeldedaten an die Login-Formulare auf diesen Phishing-Seiten.
Warum? Stellen Sie sich folgendes Szenario vor: Ein Angreifer registriert eine Phishing-Domain, acmebnak.com (Typosquatting von acmebank), kopiert das ursprüngliche Login-Formular von acmebank.com dorthin und bewirbt diese Domain über gesponserte Tweets. Diese Anzeige und die Domain werden wahrscheinlich am nächsten Tag als Phishing markiert, aber der Angreifer hat bereits Anmeldedaten von Benutzern gesammelt. Das Entfernen danach hilft den betroffenen Benutzern nicht mehr. Jeopardize bietet eine proaktive Lösung für dieses Problem. Es gefährdet das Phishing-Formular mit gültig aussehenden Anmeldedaten, um den Angreifer zu verwirren. Dies verschafft Organisationen etwas Zeit, um Vorsichtsmaßnahmen zu treffen.
ATTACKER+-----advertises+
| +---------------+
| | |
+--------v-------+ +----------------+ | |
|twitter.com/ads | |acmebnak.com | | 549233/ahs72 +------>FAKE
+----------------+ +----------------+ | |
| | | | | 398273/pass1 +------>FAKE
| AcmeBank +-->+ username: +-------+ |
| Tax Refunds | | password: | | 393823/sm283 +------>LEGIT
| | | | | |
+--------^-------+ +----------------+ | 394837/azerb +------>FAKE
| ^ | |
VICTIM USER+-----clicks-+ |sends | |
|fake creds +---------------+
+
JEOPARDIZE
Jeopardize generiert verschiedene Wortkombinationen mit einer gegebenen Domain. (dnstwist hilft dabei) Wenn die angegebene Domain beispielsweise acmebank.com ist, wären die Kombinationen acmebnak, acmeban, amcebank usw. Wenn Ihre Domain einen kurzen oder generischen Namen hat (z.B. aa.com), wird Ihnen dieses Tool nicht helfen. Es funktioniert am besten bei eindeutigen Namen.
Jeopardize verfügt über zwei verschiedene Erkennungsmethoden, um registrierte Domains zu identifizieren:
Brute: Jeopardize kombiniert die generierten Wörter (acmebnak, amcebank usw.) mit allen TLDs (com,net,xyz,live usw.) und führt für alle eine Whois-Abfrage durch. Vorteile: Benötigt keinen API-Schlüssel, völlig kostenlos. / Nachteile: Dauert sehr lange.
Dailly: Mit dem angegebenen Zonefiles.io-API-Schlüssel scraped Jeopardize alle in den letzten 24 Stunden registrierten Domains und durchsucht sie nach den generierten Wörtern (acmebnak, amcebank usw.). Vorteile: Schnell, kann problemlos als tägliche Bedrohungsanalyse verwendet werden. Nachteile: Erfordert einen Zonefiles.io-API-Schlüssel (Pro-Edition)
Erkannte Domains sind bereits verdächtig. Es gibt jedoch Faktoren, die die Wahrscheinlichkeit erhöhen, dass es sich um eine Phishing-Domain handelt. Außerdem müssen wir analysieren, ob auf dieser Domain eine Phishing-Seite installiert ist, damit wir Maßnahmen dagegen ergreifen können. Jeopardize überprüft die folgenden Elemente der registrierten Domains:
Wenn der Phishing-Score hoch ist und die Website ein Login-Formular hat, füllt Jeopardize es automatisch mit der bereitgestellten Benutzernamen-/Passwortliste aus.
Es speichert die Informationen über erkannte Phishing-Domains in einer XML-Datei. Zum Beispiel:
<domain>
<address>acmebnak.com</address>
<name_servers>ns1.cloudflare.com ns2.cloudflare.com</name_servers>
<mx_servers> </mx_servers>
<date_flag>True</date_flag>
<alexa_flag>False</alexa_flag>
<webserver_flag>True</webserver_flag>
<certificate_flag>False</certificate_flag>
<form_flag>True</form_flag>
<phishing_score>85</phishing_score>
</domain>
Jeopardize benötigt Python3 und wurde auf macOS, Ubuntu 18.04 und Debian-basierten Linux-Systemen getestet. Klonen Sie zuerst das Repository:
git clone https://github.com/utkusen/jeopardize.git
Wechseln Sie in den Ordner:
cd jeopardize
Installieren Sie die erforderlichen Bibliotheken:
pip3 install -r requirements.txt
Sie müssen auch chromedriver für Selenium installieren (Erforderlich für das Ausfüllen von Formularen. Wenn Sie es nicht verwenden, müssen Sie es nicht installieren).
unter Ubuntu: Führen Sie sudo apt install chromium-chromedriver aus
unter Kali (Debian-basiert): Führen Sie pip3 install chromedriver-binary aus
unter macOS: Führen Sie brew cask install chromedriver aus
Wenn Sie die Zonefiles.io-API integrieren möchten, öffnen Sie jeopardize.py mit einem Texteditor und ersetzen Sie ZONEFILES_API_KEY = "" durch Ihren eigenen Schlüssel.
Sie sind startklar!
Hinweis für macOS-Benutzer: macOS scheint Multithreading als Sicherheitsmechanismus einzuschränken. Sie müssen den folgenden Befehl ausführen, bevor Sie das Tool starten: export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES Weitere Informationen zu diesem Problem finden Sie hier
Sie müssen Ihre Domain für die Phishing-Prüfung mit dem Parameter --domain angeben. Außerdem müssen Sie --type (brute, daily, incremental) als Methode zur Erkennung registrierter Domains angeben.
Beispielbefehl: python3 jeopardize.py --domain facebook.com --type brute
Was macht es?: Kombiniert Wortkombinationen von facebook (fcabook, facebkook usw.) mit allen TLDs (com,net,org,xyz) und führt für alle eine Whois-Abfrage durch. Die Ergebnisse werden in der Datei facebook.com.xml gespeichert. Dies füllt die Login-Formulare der erkannten Domains nicht aus.
Beispielbefehl: python3 jeopardize.py --domain facebook.com --type daily
Was macht es?: Scraped alle in den letzten 24 Stunden registrierten Domains mit der Zonefiles.io-API und durchsucht sie nach den generierten Wörtern (fcabook, facebkook usw.)
Beispielbefehl: python3 jeopardize.py --domain facebook.com --type incremental
Was macht es?: Es nimmt eine zuvor generierte XML-Datei (facebook.com.xml), scraped die darin enthaltenen Domains und aktualisiert ihre Daten und führt auch einen regelmäßigen täglichen Scan durch.
Wenn Sie die Login-Formulare der erkannten Phishing-Domains ausfüllen möchten, geben Sie eine Benutzernamenliste mit dem Parameter -U und eine Passwortliste mit dem Parameter -P an
Beispielbefehl: python3 jeopardize.py --domain facebook.com --type daily -U user.txt -P pass.txt
Wenn Sie den ausführlichen Modus aktivieren möchten, fügen Sie den Parameter -v am Ende des Befehls hinzu.