Phishing Methodology
Méthodologie
Faire de la reconnaissance sur la victime
Sélectionner le domaine de la victime.
Effectuer une énumération web de base en recherchant des portails de connexion utilisés par la victime et décider lequel vous allez usurper.
Utiliser des OSINT pour trouver des adresses e-mail.
Préparer l'environnement
Acheter le domaine que vous allez utiliser pour l'évaluation du phishing
Configurer le service de messagerie électronique les enregistrements associés (SPF, DMARC, DKIM, rDNS)
Configurer le VPS avec gophish
Préparer la campagne
Préparer le modèle d'e-mail
Préparer la page web pour voler les identifiants
Lancer la campagne !
Générer des noms de domaine similaires ou acheter un domaine de confiance
Techniques de Variation de Nom de Domaine
Mot-clé : Le nom de domaine contient un mot-clé important du domaine d'origine (par exemple, zelster.com-management.com).
Sous-domaine avec trait d'union : Changer le point pour un trait d'union d'un sous-domaine (par exemple, www-zelster.com).
Nouvelle TLD : Même domaine en utilisant une nouvelle TLD (par exemple, zelster.org)
Homoglyphe : Il remplace une lettre dans le nom de domaine par des lettres qui se ressemblent (par exemple, zelfser.com).
Transposition : Il échange deux lettres dans le nom de domaine (par exemple, zelsetr.com).
Singulier/Pluriel : Ajoute ou supprime un "s" à la fin du nom de domaine (par exemple, zeltsers.com).
Omission : Il supprime une des lettres du nom de domaine (par exemple, zelser.com).
Répétition : Il répète une des lettres dans le nom de domaine (par exemple, zeltsser.com).
Remplacement : Comme homoglyphe mais moins discret. Il remplace une des lettres dans le nom de domaine, peut-être par une lettre à proximité de la lettre d'origine sur le clavier (par exemple, zektser.com).
Sous-domainé : Introduire un point à l'intérieur du nom de domaine (par exemple, ze.lster.com).
Insertion : Il insère une lettre dans le nom de domaine (par exemple, zerltser.com).
Point manquant : Ajouter la TLD au nom de domaine. (par exemple, zelstercom.com)
Outils Automatiques
Sites Web
Bitflipping
Il existe une possibilité qu'un ou plusieurs bits stockés ou en communication soient automatiquement inversés en raison de divers facteurs tels que les éruptions solaires, les rayons cosmiques ou les erreurs matérielles.
Lorsque ce concept est appliqué aux demandes DNS, il est possible que le domaine reçu par le serveur DNS ne soit pas le même que le domaine initialement demandé.
Par exemple, une modification d'un seul bit dans le domaine "windows.com" peut le changer en "windnws.com."
Les attaquants peuvent en profiter en enregistrant plusieurs domaines avec inversion de bits similaires au domaine de la victime. Leur intention est de rediriger les utilisateurs légitimes vers leur propre infrastructure.
Pour plus d'informations, consultez https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/
Acheter un domaine de confiance
Vous pouvez rechercher sur https://www.expireddomains.net/ un domaine expiré que vous pourriez utiliser. Pour vous assurer que le domaine expiré que vous allez acheter a déjà un bon référencement SEO, vous pouvez vérifier comment il est catégorisé dans :
Découverte d'adresses e-mail
https://github.com/laramies/theHarvester (100% gratuit)
https://phonebook.cz/ (100% gratuit)
Pour découvrir plus d'adresses e-mail valides ou vérifier celles que vous avez déjà découvertes, vous pouvez vérifier si vous pouvez les brute-forcer sur les serveurs smtp de la victime. Apprenez comment vérifier/découvrir une adresse e-mail ici. De plus, n'oubliez pas que si les utilisateurs utilisent un portail web pour accéder à leurs e-mails, vous pouvez vérifier s'il est vulnérable à une brute force sur les noms d'utilisateur, et exploiter la vulnérabilité si possible.
Configuration de GoPhish
Installation
Vous pouvez le télécharger depuis https://github.com/gophish/gophish/releases/tag/v0.11.0
Téléchargez-le et décompressez-le dans /opt/gophish
et exécutez /opt/gophish/gophish
Vous recevrez un mot de passe pour l'utilisateur admin sur le port 3333 dans la sortie. Accédez donc à ce port et utilisez ces identifiants pour changer le mot de passe admin. Vous devrez peut-être tunneliser ce port en local:
Configuration
Configuration du certificat TLS
Avant cette étape, vous devez déjà avoir acheté le domaine que vous allez utiliser et il doit être redirigé vers l'IP du VPS où vous configurez gophish.
Configuration de messagerie
Commencez par installer : apt-get install postfix
Ensuite, ajoutez le domaine aux fichiers suivants :
/etc/postfix/virtual_domains
/etc/postfix/transport
/etc/postfix/virtual_regexp
Modifiez également les valeurs des variables suivantes dans /etc/postfix/main.cf
myhostname = <domain>
mydestination = $myhostname, <domain>, localhost.com, localhost
Enfin, modifiez les fichiers /etc/hostname
et /etc/mailname
avec votre nom de domaine et redémarrez votre VPS.
Maintenant, créez un enregistrement A DNS de mail.<domain>
pointant vers l'adresse IP du VPS et un enregistrement MX DNS pointant vers mail.<domain>
Maintenant, testons l'envoi d'un e-mail :
Configuration de Gophish
Arrêtez l'exécution de gophish et configurons-le.
Modifiez /opt/gophish/config.json
comme suit (notez l'utilisation de https) :
Configurer le service gophish
Pour créer le service gophish afin qu'il puisse être démarré automatiquement et géré en tant que service, vous pouvez créer le fichier /etc/init.d/gophish
avec le contenu suivant :
Terminer la configuration du service et le vérifier en effectuant :
Configuration du serveur de messagerie et du domaine
Attendre et être légitime
Plus un domaine est ancien, moins il risque d'être considéré comme du spam. Vous devriez donc attendre le plus longtemps possible (au moins 1 semaine) avant l'évaluation du phishing. De plus, si vous créez une page sur un secteur réputé, la réputation obtenue sera meilleure.
Notez que même si vous devez attendre une semaine, vous pouvez terminer la configuration dès maintenant.
Configurer l'enregistrement Reverse DNS (rDNS)
Définissez un enregistrement rDNS (PTR) qui résout l'adresse IP du VPS en nom de domaine.
Enregistrement du cadre de politique de l'expéditeur (SPF)
Vous devez configurer un enregistrement SPF pour le nouveau domaine. Si vous ne savez pas ce qu'est un enregistrement SPF, lisez cette page.
Vous pouvez utiliser https://www.spfwizard.net/ pour générer votre politique SPF (utilisez l'IP de la machine VPS)
Voici le contenu qui doit être défini à l'intérieur d'un enregistrement TXT dans le domaine :
Enregistrement Domain-based Message Authentication, Reporting & Conformance (DMARC)
Vous devez configurer un enregistrement DMARC pour le nouveau domaine. Si vous ne savez pas ce qu'est un enregistrement DMARC, lisez cette page.
Vous devez créer un nouvel enregistrement DNS TXT pointant vers le nom d'hôte _dmarc.<domain>
avec le contenu suivant:
DomainKeys Identified Mail (DKIM)
Vous devez configurer un DKIM pour le nouveau domaine. Si vous ne savez pas ce qu'est un enregistrement DMARC, lisez cette page.
Ce tutoriel est basé sur : https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
Vous devez concaténer les deux valeurs B64 que la clé DKIM génère :
Testez votre score de configuration d'email
Vous pouvez le faire en utilisant https://www.mail-tester.com/ Accédez simplement à la page et envoyez un email à l'adresse qu'ils vous donnent :
Vous pouvez également vérifier la configuration de votre e-mail en envoyant un e-mail à check-auth@verifier.port25.com
et en lisant la réponse (pour cela, vous devrez ouvrir le port 25 et voir la réponse dans le fichier /var/mail/root si vous envoyez l'e-mail en tant que root).
Vérifiez que vous réussissez tous les tests :
Vous pouvez également envoyer un message à un Gmail sous votre contrôle, et vérifier les en-têtes de l'email dans votre boîte de réception Gmail, dkim=pass
devrait être présent dans le champ d'en-tête Authentication-Results
.
Suppression de la liste noire de Spamhouse
La page www.mail-tester.com peut vous indiquer si votre domaine est bloqué par Spamhouse. Vous pouvez demander la suppression de votre domaine/IP sur : https://www.spamhaus.org/lookup/
Suppression de la liste noire de Microsoft
Vous pouvez demander la suppression de votre domaine/IP sur https://sender.office.com/.
Créer et Lancer une Campagne GoPhish
Profil d'Envoi
Définir un nom pour identifier le profil de l'expéditeur
Décider à partir de quel compte vous allez envoyer les e-mails de phishing. Suggestions : noreply, support, servicedesk, salesforce...
Vous pouvez laisser vide le nom d'utilisateur et le mot de passe, mais assurez-vous de cocher Ignorer les erreurs de certificat
Il est recommandé d'utiliser la fonctionnalité "Envoyer un e-mail de test" pour vérifier que tout fonctionne. Je recommanderais d'envoyer les e-mails de test aux adresses 10min mails afin d'éviter d'être blacklisté en faisant des tests.
Modèle d'E-mail
Définir un nom pour identifier le modèle
Ensuite, écrire un sujet (rien d'étrange, juste quelque chose que vous pourriez vous attendre à lire dans un e-mail régulier)
Assurez-vous d'avoir coché "Ajouter une image de suivi"
Rédigez le modèle d'e-mail (vous pouvez utiliser des variables comme dans l'exemple suivant) :
Notez que pour augmenter la crédibilité de l'e-mail, il est recommandé d'utiliser une signature provenant d'un e-mail du client. Suggestions :
Envoyez un e-mail à une adresse inexistante et vérifiez si la réponse contient une signature.
Recherchez des e-mails publics comme info@ex.com ou press@ex.com ou public@ex.com et envoyez-leur un e-mail en attendant la réponse.
Essayez de contacter quelques e-mails valides découverts et attendez la réponse.
Le modèle d'e-mail permet également de joindre des fichiers à envoyer. Si vous souhaitez également voler des défis NTLM en utilisant des fichiers/documents spécialement conçus, consultez cette page.
Page de Destination
Écrivez un nom
Écrivez le code HTML de la page web. Notez que vous pouvez importer des pages web.
Cochez Capturer les données soumises et Capturer les mots de passe
Définissez une redirection
Généralement, vous devrez modifier le code HTML de la page et effectuer des tests en local (peut-être en utilisant un serveur Apache) jusqu'à ce que vous obteniez les résultats souhaités. Ensuite, écrivez ce code HTML dans la zone prévue. Notez que si vous avez besoin d'utiliser des ressources statiques pour le HTML (peut-être des pages CSS et JS), vous pouvez les enregistrer dans /opt/gophish/static/endpoint et y accéder depuis /static/<nom du fichier>
Pour la redirection, vous pourriez rediriger les utilisateurs vers la page web principale légitime de la victime, ou les rediriger vers /static/migration.html par exemple, mettre une roue tournante (https://loading.io/) pendant 5 secondes, puis indiquer que le processus a été réussi**.
Utilisateurs & Groupes
Définissez un nom
Importez les données (notez que pour utiliser le modèle pour l'exemple, vous avez besoin du prénom, du nom de famille et de l'adresse e-mail de chaque utilisateur)
Campagne
Enfin, créez une campagne en sélectionnant un nom, le modèle d'e-mail, la page de destination, l'URL, le profil d'envoi et le groupe. Notez que l'URL sera le lien envoyé aux victimes
Notez que le Profil d'envoi permet d'envoyer un e-mail de test pour voir à quoi ressemblera l'e-mail de phishing final :
Je recommanderais d'envoyer les e-mails de test à des adresses de messagerie temporaire afin d'éviter d'être blacklisté lors des tests.
Une fois que tout est prêt, lancez simplement la campagne !
Clonage de Site Web
Si pour une raison quelconque vous souhaitez cloner le site web, consultez la page suivante :
Documents et Fichiers Piégés
Dans certaines évaluations de phishing (principalement pour les Red Teams), vous voudrez également envoyer des fichiers contenant une sorte de backdoor (peut-être un C2 ou simplement quelque chose qui déclenchera une authentification). Consultez la page suivante pour quelques exemples :
Phishing MFA
Via Proxy MitM
L'attaque précédente est assez astucieuse car vous imitez un vrai site web et recueillez les informations définies par l'utilisateur. Malheureusement, si l'utilisateur n'a pas saisi le bon mot de passe ou si l'application que vous avez imitée est configurée avec une authentification à deux facteurs, ces informations ne vous permettront pas d'usurper l'utilisateur trompé.
C'est là que des outils comme evilginx2, CredSniper et muraena sont utiles. Cet outil vous permettra de générer une attaque de type MitM. Fondamentalement, les attaques fonctionnent de la manière suivante :
Vous imitez le formulaire de connexion de la vraie page web.
L'utilisateur envoie ses identifiants à votre fausse page et l'outil les envoie à la vraie page web, vérifiant si les identifiants fonctionnent.
Si le compte est configuré avec une authentification à deux facteurs, la page MitM demandera cela et une fois que l'utilisateur l'aura introduit, l'outil l'enverra à la vraie page web.
Une fois que l'utilisateur est authentifié, vous (en tant qu'attaquant) aurez capturé les identifiants, l'authentification à deux facteurs, le cookie et toute information de chaque interaction pendant que l'outil effectue un MitM.
Via VNC
Et si au lieu d'envoyer la victime vers une page malveillante avec le même aspect que l'original, vous l'envoyez vers une session VNC avec un navigateur connecté à la vraie page web ? Vous pourrez voir ce qu'il fait, voler le mot de passe, l'authentification à deux facteurs utilisée, les cookies... Vous pouvez le faire avec EvilnVNC
Détection de la détection
Évidemment, l'une des meilleures façons de savoir si vous avez été repéré est de rechercher votre domaine dans les listes noires. S'il apparaît répertorié, votre domaine a été détecté comme suspect d'une manière ou d'une autre. Une façon simple de vérifier si votre domaine apparaît dans une liste noire est d'utiliser https://malwareworld.com/
Cependant, il existe d'autres moyens de savoir si la victime recherche activement des activités de phishing suspectes dans la nature, comme expliqué dans :
Vous pouvez acheter un domaine avec un nom très similaire à celui du domaine de la victime et/ou générer un certificat pour un sous-domaine d'un domaine que vous contrôlez contenant le mot-clé du domaine de la victime. Si la victime effectue une sorte d'interaction DNS ou HTTP avec eux, vous saurez qu'elle recherche activement des domaines suspects et vous devrez être très discret.
Évaluer le phishing
Utilisez Phishious pour évaluer si votre e-mail va finir dans le dossier de spam ou s'il sera bloqué ou réussi.
Références
Last updated