
On ne peut pas parler d’ingénierie sociale sans évoquer le phishing. De même, l’email est incontournable quand il s’agit de phishing. Bien qu’il existe d’autres techniques d’ingénierie sociale, comme le vishing, et de multiples vecteurs de phishing, comme le SMS (smishing), l’email reste en effet l’outil préféré des attaquants.
Dans cet article, nous présenterons trois outils couramment utilisés pour réaliser des campagnes de phishing : Gophish, Evilginx et Evilgophish.
Avant de plonger dans les détails pratiques et de compromettre un compte Dropbox de trois manières différentes (un compte de test, bien sûr), prenons un peu de recul pour expliquer deux approches du phishing sur lesquelles reposent ces outils.
Plan détaillé de l’article :
Quelques précisions avant de commencer. Dans la suite de l’article, nous parlerons de phishing d’identifiants pour obtenir un accès Dropbox. Cela dit :
Le principe du phishing par clone est simple. L’attaquant copie un formulaire de connexion connu (comme la page d’authentification VPN de l’entreprise), l’héberge sur son serveur, puis envoie des liens frauduleux (par email, par exemple) redirigeant vers ce faux formulaire.
Cependant, cette méthode a des inconvénients. Copier l’interface est facile. L’attaquant télécharge les ressources (HTML, JS, CSS) du formulaire légitime et remplace les références au site d’origine pour rendre le clone indépendant. Mais ce processus peut être plus ou moins fastidieux selon le nombre de ressources.
De plus, toute modification de l’interface légitime doit être répliquée sur le clone pour maintenir une copie exacte et un scénario réaliste.
Un autre défi est l’authentification en plusieurs étapes (sans même parler d’authentification multifacteur); une première page pour l’adresse email, puis une seconde pour le mot de passe. Dans ce cas, l’attaquant doit cloner chaque page et les chaîner, ce qui complique la tâche. Néanmoins, cloner la page de saisie du mot de passe suffit généralement pour récupérer ce dernier; l’adresse email étant généralement connue.
L’inconvénient principal du phishing par clone est l’authentification forte. Les méthodes de double authentification (codes envoyés par SMS, générés par une application mobile, etc.) posent un problème.
Si le formulaire cloné nécessite une double authentification, l’attaquant doit aussi cloner le formulaire de saisie du code à usage unique (OTP pour One-Time Password). Alternativement, il peut ajouter un champ pour l’OTP sur le faux formulaire, mais cela peut éveiller les soupçons.
Après avoir récupéré l’OTP saisi sur le faux formulaire, l’attaquant doit rapidement le rejouer sur le site légitime pour accéder au compte de la victime. Les OTP, souvent des TOTP (Time-based One-Time Password), sont valides pour une période limitée (30 ou 60 secondes); réduisant la fenêtre d’action de l’attaquant.
En résumé, le phishing par clone est efficace si le formulaire cible n’est pas trop complexe et n’a pas de double authentification.
Toutefois, l’attaquant n’a pas besoin de s’authentifier à la place de sa victime. Il peut capturer ses jetons de session (cookies par exemple). Cette idée est à la base d’une technique de phishing plus avancée et de plus en plus répandue : le phishing en mode Man in the Middle (MitM).
Le phishing en mode Man in the Middle (MitM), ou phishing en mode reverse-proxy, consiste pour l’attaquant à placer son serveur entre la victime et le site légitime.

Pour ce faire, le lien de phishing pointe vers un domaine malveillant (par exemple, dropbox.fake.com) qui agit comme un proxy vers l’app légitime (ici, dropbox.com).
L’utilisateur interagit presque normalement, mais l’attaquant accède à tout le trafic, y compris les mots de passe et les codes de double authentification.
Après l’authentification, un jeton de session est délivré à l’utilisateur. Ce jeton est également accessible à l’attaquant, qui peut l’importer dans son propre navigateur pour accéder au compte de la victime.
L’attaquant est alors connecté à la même session que l’utilisateur. Si l’un se déconnecte, l’autre le sera aussi. Pour persister sur le compte de la victime (même après déconnexion de celle-ci), l’attaquant peut ajouter un appareil de confiance pour générer des codes de double authentification valides ou récupérer les codes de récupération du compte (si accessibles).
En comparaison du phishing par clone, le phishing en MitM présente plusieurs avantages :
Passons maintenant aux choses sérieuses en présentant quelques outils mettant en pratique les techniques présentées.
Voici un bref aperçu du scénario inspiré d’un de nos audits. Notre objectif est d’accéder à un compte Dropbox de test, sur lequel la double authentification est activée. L’email de phishing envoyé à la « victime » mentionne la fin de l’abonnement Dropbox et la perte de synchronisation des fichiers pour l’inciter à s’authentifier. Le domaine malveillant utilisé est « dropbox.fake.com ». Voyons comment ce scénario se décline selon la technique utilisée.
Gophish est une solution open source conçue pour aider les pentesters et les entreprises à mener des simulations de phishing. Elle offre une interface web permettant de configurer et d’envoyer facilement une campagne.
Plutôt qu’un long discours, voici une vidéo montrant le déroulement complet de l’attaque avec Gophish :
Détaillons l’attaque étape par étape (la vidéo commence à l’étape 3) :
Comme nous l’avons vu, le phishing par clone (avec Gophish par exemple) ne permet pas facilement de contourner la double authentification. Pour une méthode plus efficace, les attaquants peuvent se tourner vers le phishing en mode Man in the Middle.
Evilginx est un kit de phishing de type reverse-proxy destiné aux pentesters et red teamers. Il permet de contourner la double authentification en se concentrant sur les jetons de session des utilisateurs. Depuis la version 3.3, Evilginx peut s’intégrer avec Gophish pour utiliser son interface web et faciliter l’envoi des campagnes.
Voyons comment se déroule la même attaque, cette fois avec Evilginx :
Comme démontré, le phishing en mode MitM permet de contourner la double authentification (dans la plupart des cas). Cependant, la double authentification reste un mécanisme de sécurité crucial, notamment contre le phishing par clone. En fin d’article, nous aborderons aussi les mécanismes de protection contre le phishing en mode MitM.
Voyons maintenant la même attaque en mode MitM, mais cette fois-ci délivrée par SMS, avec Evilgophish.
Evilgophish combine Evilginx et Gophish, en ajoutant des fonctionnalités comme l’envoi de SMS via l’API Twilio.
Voici comment l’attaque se déroule du côté de la victime :
Du point de vue de l’attaquant maintenant, après avoir récupéré les cookies de session dans Evilginx :
Le comportement diffère légèrement de celui d’Evilginx :
Pour conclure, prenons un moment pour voir comment une application peut se protéger contre le phishing par clone et, plus particulièrement, contre le phishing en mode MitM.
Une première idée est d’implémenter des protections dans le code JavaScript de l’application, s’exécutant dans le navigateur du client.
Une protection classique consiste à vérifier l’identité du site sur lequel le code s’exécute, par exemple :
function validateHostname() {
return window.location.hostname.endsWith("dropbox.com");
}
Le domaine de phishing étant généralement différent du domaine légitime (par exemple, dropbox.fake.com), la vérification échouera si l’utilisateur visite le site frauduleux.
Cependant, il faut garder à l’esprit que toute protection côté client est vulnérable, car l’attaquant peut modifier le code JavaScript de la page. Que l’attaquant soit en position de Man in the Middle ou utilise un clone, il peut retirer l’appel à la fonction validateHostname ou la rendre inopérante (retournant toujours true).
En pratique, le code JavaScript peut être obfusqué, ce qui rend la tâche plus complexe pour l’attaquant, voire impossible. Le coût devient alors trop important pour l’attaquant, qui préférera cibler une autre application.
Une variante plus récente consiste à utiliser des jetons chiffrés pour valider l’identité du site côté serveur. Lorsque l’utilisateur soumet son mot de passe, un jeton chiffré (contenant par exemple la valeur de window.location.hostname) est ajouté à la requête par du code JavaScript. À la réception de la requête, le serveur déchiffre le jeton et vérifie l’identité du site visité par le client initial.
Cette méthode peut également être contournée par l’attaquant s’il identifie le code JavaScript construisant le jeton. Il lui suffirait alors de remplacer window.location.hostname par la chaîne « dropbox.com » lors de la construction du jeton pour passer la validation côté serveur. Cela dit, la complexité et l’obfuscation du code JavaScript peuvent encore une fois rendre cette tâche impossible dans un temps raisonnable pour un attaquant cherchant un profit rapide.
Outre les vérifications JavaScript, il existe plusieurs protections côté serveur contre le phishing en mode MitM.
Par exemple, Microsoft Entra ID (anciennement Azure Active Directory) utilise l’accès conditionnel, basé sur divers facteurs de risque, pour déterminer si une requête d’authentification est légitime (comme la provenance géographique, les caractéristiques du navigateur, etc.).
Cela fonctionne car les requêtes de l’utilisateur légitime sont relayées par le serveur de l’attaquant, qui agit comme client auprès de l’application légitime.
L’adresse IP visible depuis l’application est celle du serveur de l’attaquant, et non celle de la victime. De plus, l’attaquant établissant une nouvelle connexion HTTPS avec l’application, certaines caractéristiques des échanges peuvent être suspectes. Par exemple, les versions de TLS ou les suites de chiffrement proposées par le client malveillant peuvent différer de celles d’un navigateur classique (comme Chrome ou Firefox) qui ont une empreinte connue (empreinte JA4). Cela peut permettre de détecter un serveur de phishing en mode reverse proxy.
En fonction du risque identifié, l’application peut exiger une méthode d’authentification plus forte (comme TOTP ou une clé de sécurité) ou même bloquer l’accès. Par exemple, Microsoft Entra ID peut imposer un niveau d’authentification minimum en fonction du niveau de risque identifié pour un utilisateur tentant de s’authentifier.
Le phishing est l’un des vecteurs les plus utilisés par les attaquants, car il suffit d’envoyer un email ou un SMS pour avoir un impact potentiellement important, voire critique, ou au moins obtenir un accès initial.
Dans le monde cybercriminel, il existe aujourd’hui plusieurs offres de Phishing as a Service, comme Evilproxy (lancée fin 2021, quatre ans après la sortie d’Evilginx), NakedPages ou encore Tycoon. Ces services démocratisent les techniques avancées de phishing, appelées Adversary in the Middle (AitM), permettant à des attaquants moins expérimentés de contourner des protections avancées, comme la double authentification.
C’est une course éternelle entre les offensives des attaquants et les défenses mises en place. Les attaquants innovent constamment avec des techniques de plus en plus sophistiquées, à mesure que les protections deviennent plus robustes, et vice-versa. Les innovations sont d’autant plus rapides que le phishing est un vecteur d’attaque très répandu.
L’élément humain, souvent considéré comme le maillon faible, est en réalité l’un des premiers maillons à sécuriser pour qu’il devienne un atout et non une faiblesse. Une sensibilisation efficace des collaborateurs, combinée à des mesures techniques, permet de réduire significativement le risque de phishing.
Auteur : Benjamin BOUILHAC – Pentester @Vaadata