
Phishing-Fänger mit Certstream
Fangen Sie mögliche Phishing-Domains in nahezu Echtzeit, indem Sie nach verdächtigen TLS-Zertifikatsausstellungen suchen, die über die CertStream-API an das Certificate Transparency Log (CTL) gemeldet werden. „Verdächtig“ sind Ausstellungen, deren Domainname basierend auf einer Konfigurationsdatei einen bestimmten Schwellenwert überschreitet.
Dies ist nur ein funktionierender Proof of Concept (PoC). Sie können gerne beitragen und den Code an Ihre Bedürfnisse anpassen. 👍

Das Skript sollte sowohl mit Python2 als auch mit Python3 einwandfrei funktionieren. Installieren Sie in beiden Fällen die Abhängigkeiten nach dem Klonen oder Herunterladen des Quellcodes:
pip install -r requirements.txt
Phishing Catcher verwendet eine einfache YAML-Konfigurationsdatei, um einen numerischen Score für Zeichenfolgen zuzuweisen, die in einem TLS-Zertifikat im Common Name- oder SAN-Feld (d. h. dem Domainnamen des Zertifikats) gefunden werden können. Die Konfigurationsdatei suspicious.yaml enthält sinnvolle Standardwerte, aber Sie können sowohl die enthaltenen Zeichenfolgen als auch den jeder Zeichenfolge zugewiesenen Score anpassen oder erweitern, indem Sie eine Überschreibungsdatei external.yaml bearbeiten.
Sowohl die Standardkonfigurationsdatei suspicious.yaml als auch die benutzermodifizierbare external.yaml enthalten zwei YAML-Wörterbücher: keywords und tlds. Die Schlüssel der Wörterbücher sind die Zeichenfolgen und die Werte die Scores, die zugewiesen werden, wenn diese Zeichenfolge im Domainnamen eines ausgestellten Zertifikats gefunden wird. Zum Beispiel:
keywords:
'login': 25
Hier wird ein Score von 25 zum generischen Schlüsselwort login hinzugefügt, wenn es in einem TLS-Zertifikatsdomainnamen gefunden wird. Eine Erhöhung dieses Werts erhöht den Verdachtsgrad gegenüber Domains mit der Zeichenfolge login, sodass Sie diese Zertifikatsausstellungen einer genaueren Prüfung unterziehen können.
Damit ein Zertifikat jedoch von Phishing Catcher als verdächtig gemeldet wird, muss der zugewiesene Score die folgenden Schwellenwerte erreichen oder überschreiten (>=, „größer oder gleich“):
| Score | Gemeldet als |
|---|---|
| 65 | Potenziell |
| 80 | Wahrscheinlich |
| 90 | Verdächtig |
💡 Siehe die Funktion
score_domain()im Quellcode für Details zum Bewertungsalgorithmus.
Nachdem Sie es nach Ihren Wünschen konfiguriert haben, ist die Nutzung so einfach wie das Ausführen des Skripts:
$ ./catch_phishing.py

Wenn Sie macOS oder eine andere Betriebssystemversion verwenden, die die Installation von phishing_catcher erschwert, dann ist die Dockerisierung des Tools eine Ihrer Optionen.
docker build . -t phishing_catcher

GNU GPLv3
Wenn Ihnen dieses Tool nützlich war, können Sie mir gerne einen Kaffee kaufen, um Danke zu sagen.