
un outil de renseignement et de réponse aux menaces à faible coût (voire nul) contre les domaines de phishing
L'outil Jeopardize est développé pour fournir des capacités de base en matière de renseignement et de réponse aux menaces contre les domaines de phishing, au coût le plus bas possible. Il détecte les candidats domaines de phishing enregistrés (typosquatting, homographe, etc.), les analyse et leur attribue un score de risque. Ensuite, il envoie des identifiants d'apparence valide vers les formulaires de connexion sur ces sites de phishing.
Pourquoi ? Imaginons ce scénario : un attaquant enregistre un domaine de phishing, acmebnak.com (typosquatting d'acmebank), copie le formulaire de connexion original d'acmebank.com et fait la publicité de ce domaine via des tweets sponsorisés. Cette publicité et le domaine seront probablement signalés comme phishing le lendemain, mais l'attaquant a déjà récolté des identifiants auprès des utilisateurs. Le retirer après cela n'aidera pas les utilisateurs concernés. Jeopardize apporte une solution proactive à ce problème. Il compromet le formulaire de phishing avec des identifiants d'apparence valide pour tromper l'attaquant. Cela donnera aux organisations un peu de temps pour prendre des précautions.
ATTAQUANT+-----fait de la pub+
| +---------------+
| | |
+--------v-------+ +----------------+ | |
|twitter.com/ads | |acmebnak.com | | 549233/ahs72 +------>FAUX
+----------------+ +----------------+ | |
| | | | | 398273/pass1 +------>FAUX
| AcmeBank +-->+ nom_utilisateur:+-------+ |
| Remboursements| | mot_de_passe: | | 393823/sm283 +------>LÉGITIME
| d'impôts | | | | |
+--------^-------+ +----------------+ | 394837/azerb +------>FAUX
| ^ | |
UTILISATEUR VICTIME+--------clique-+ |envoie | |
|fausses ident. +---------------+
+
JEOPARDIZE
Jeopardize génère différentes combinaisons de mots à partir d'un domaine donné. (dnstwist aide ici) Par exemple, si le domaine donné est acmebank.com, les combinaisons seraient acmebnak, acmeban, amcebank, etc. Si votre domaine a un nom court ou générique (par exemple : aa.com), cet outil ne vous sera pas utile. Il fonctionne mieux pour les noms uniques.
Jeopardize dispose de deux méthodes de détection différentes pour identifier les domaines enregistrés :
Brute : Jeopardize combine les mots générés (acmebnak, amcebank, etc.) avec tous les TLD (com, net, xyz, live, etc.) et effectue une requête whois pour chacun d'eux. Avantages : Ne nécessite aucune clé API, totalement gratuit. / Inconvénients : Prend beaucoup de temps.
Quotidienne : Avec la clé API Zonefiles.io fournie, Jeopardize récupère tous les domaines enregistrés au cours des dernières 24 heures et les recherche parmi les mots générés (acmebnak, amcebank, etc.). Avantages : Rapide, peut être facilement utilisé comme renseignement quotidien sur les menaces. Inconvénients : Nécessite une clé API Zonefiles.io (édition Pro)
Les domaines détectés sont déjà suspects. Mais il existe des facteurs qui augmentent la probabilité qu'il s'agisse d'un domaine de phishing. De plus, nous devons analyser si une page de phishing est installée sur ce domaine afin de pouvoir prendre des mesures contre elle. Jeopardize vérifie les éléments suivants des domaines enregistrés :
Si le score de phishing est élevé et que le site web possède un formulaire de connexion, Jeopardize le remplira automatiquement avec la liste de noms d'utilisateur/mots de passe fournie.
Il enregistre les informations des domaines de phishing détectés dans un fichier XML. Par exemple :
<domaine>
<adresse>acmebnak.com</adresse>
<serveurs_noms>ns1.cloudflare.com ns2.cloudflare.com</serveurs_noms>
<serveurs_mx> </serveurs_mx>
<drapeau_date>True</drapeau_date>
<drapeau_alexa>False</drapeau_alexa>
<drapeau_serveur_web>True</drapeau_serveur_web>
<drapeau_certificat>False</drapeau_certificat>
<drapeau_formulaire>True</drapeau_formulaire>
<score_phishing>85</score_phishing>
</domaine>
Jeopardize nécessite Python3 pour fonctionner et a été testé sur macOS, Ubuntu 18.04 et les systèmes Linux basés sur Debian. Commencez par cloner le dépôt :
git clone https://github.com/utkusen/jeopardize.git
Allez dans le dossier
cd jeopardize
Installez les bibliothèques requises
pip3 install -r requirements.txt
Vous devez également installer chromedriver pour selenium (requis pour le remplissage des formulaires. Si vous ne l'utilisez pas, vous n'avez pas besoin de l'installer)
sur Ubuntu : Exécutez sudo apt install chromium-chromedriver
sur Kali (basé sur Debian) : Exécutez pip3 install chromedriver-binary
sur macOS : Exécutez brew cask install chromedriver
Si vous souhaitez intégrer l'API Zonefiles.io, ouvrez jeopardize.py avec un éditeur de texte, remplacez ZONEFILES_API_KEY = "" par votre propre clé.
Vous êtes prêt !
Note pour les utilisateurs macOS : Il semble que macOS restreigne le multithreading en tant que mécanisme de sécurité. Vous devez exécuter la commande suivante avant d'utiliser
l'outil : export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES pour plus d'informations sur ce problème, veuillez consulter ici
Vous devez fournir votre domaine pour la vérification de phishing avec le paramètre --domain. Vous devez également fournir --type (brute, daily, incremental) comme méthode de détection des domaines enregistrés.
Exemple de commande : python3 jeopardize.py --domain facebook.com --type brute
Que fait-elle ? : Combine les combinaisons de mots de facebook (fcabook, facebkook, etc.) avec tous les TLD (com, net, org, xyz) et effectue une requête whois pour chacun d'eux. Les résultats seront sauvegardés dans le fichier facebook.com.xml. Cela ne remplit pas les formulaires de connexion des domaines détectés.
Exemple de commande : python3 jeopardize.py --domain facebook.com --type daily
Que fait-elle ? : Récupère tous les domaines enregistrés au cours des dernières 24 heures avec l'API Zonefiles.io et les recherche parmi les mots générés (fcabook, facebkook, etc.)
Exemple de commande : python3 jeopardize.py --domain facebook.com --type incremental
Que fait-elle ? : Elle prend un fichier XML généré précédemment (facebook.com.xml), récupère les domaines qu'il contient et met à jour leurs données, et effectue également une analyse quotidienne régulière.
Si vous souhaitez remplir les formulaires de connexion des domaines de phishing détectés, fournissez une liste de noms d'utilisateur avec -U et une liste de mots de passe avec -P.
Exemple de commande : python3 jeopardize.py --domain facebook.com --type daily -U user.txt -P pass.txt
Si vous souhaitez activer le mode verbeux, ajoutez -v à la fin de la commande.