Les testeurs d'intrusion et les pirates ont pu ajouter à leur arsenal une méthode automatisant les attaques de hameçonnage déjouant l'authentification à deux facteurs (2FA) et qui n'est, en plus, pas facile à détecter et à bloquer. Cette boîte à outils a été présentée le mois dernier à la conférence Hack in the Box à Amsterdam et est sortie sur GitHub quelques jours après. Elle comporte deux volets : un reverse-proxy transparent appelé Muraena et un conteneur Docker – appelé NecroBrowser – pour automatiser les instances Headless Chromium.
Les attaques de phishing traditionnelles consistent à créer de fausses pages de connexion hébergées sur des serveurs Web contrôlés par l'attaquant et dont les noms de domaines sont similaires à ceux des sites Web ciblés. Cependant, de telles attaques statiques ne sont pas efficaces contre les services en ligne qui utilisent l'authentification à deux facteurs. Dans ce cas, il n'y a en effet aucune interaction avec les sites Web légitimes pour déclencher la génération de codes à usage unique. Sans ces codes, les attaquants ne peuvent pas se connecter avec les identifiants de phishing.
Un type d’attaque pas nouveau mais bien plus facile à lancer
Pour surmonter la 2FA, les attaquants doivent faire en sorte que leurs sites Web de hameçonnage fonctionnent comme des serveurs mandataires, transmettant les demandes au nom des victimes aux sites Web légitimes et leur fournissant des réponses en temps réel. L'objectif final n'est pas seulement d'obtenir des noms d'utilisateur et des mots de passe, mais aussi des cookies de session que les sites Web réels associent aux comptes connectés. Ces derniers peuvent être placés à l'intérieur d'un navigateur pour accéder directement aux comptes auxquels ils sont associés sans avoir à s'authentifier.
Cette technique de proxy n'est pas nouvelle et est connue depuis longtemps, mais la mise en place d'une telle attaque nécessitait des connaissances techniques et impliquait la configuration de multiples outils indépendants tels que le serveur web NGINX pour fonctionner en reverse-proxy. Ensuite, l'attaquant devait compromettre manuellement les cookies de session volés avant qu'ils n'expirent. De plus, certains sites Web utilisent des technologies comme Subresource Integrity (SRI) et Content Security Policy (CSP) pour empêcher le « proxying », et certains bloquent même les navigateurs automatiques basés sur les en-têtes.
Un outil de création de site de phishing sous Go
Muraena et NecroBrowser ont été créés pour vaincre ces protections et automatiser la majeure partie du processus. Cela signifie qu'un plus grand nombre d'attaquants peuvent maintenant lancer des attaques de phishing capable de passer outre la 2FA. Les outils ont été créés par les chercheurs Michele Orru, ancien développeur du Browser Exploitation Framework Project (BeEF), et Giuseppe Trotta, membre du projet Bettercap.
Muraena est écrit dans le langage de programmation Go, ce qui signifie qu'il peut être compilé et exécuté sur n'importe quelle plateforme où Go est disponible. Une fois déployé, l'attaquant peut configurer son domaine d'hameçonnage et obtenir un certificat légitime pour celui-ci, par exemple en utilisant l'autorité de certification Let's Encrypt. L'outil contient un serveur web minimal qui agit en tant que reverse-proxy et un crawler qui détermine automatiquement les ressources à proxy à partir du site web légitime. Le mandataire réécrit de façon transparente les demandes reçues de la victime avant de les transmettre. Le crawler génère automatiquement un fichier de configuration JSON, qui peut ensuite être modifié manuellement pour contourner diverses défenses sur des sites Web plus complexes. Le paquet comprend des exemples de fichiers de configuration pour Google, GitHub et Dropbox.
Une fois qu'une victime atterrit sur un site de phishing propulsé par Muraena, le processus de connexion fonctionne exactement comme sur le vrai site Web. L'utilisateur est invité à entrer son code 2FA. Une fois qu'il l'a fourni et que l'authentification est terminée, le mandataire vole le cookie de session. Ce dernier est normalement stocké par le navigateur à l'intérieur d'un fichier et est servi lors de requêtes ultérieures. Cela permet au site Web de fournir automatiquement à ce navigateur l'accès à un compte pendant un certain temps -- durée de la session -- sans avoir à demander à nouveau le mot de passe de connexion. Muraena peut transmettre automatiquement les cookies de session collectés à son deuxième composant, le NecroBrowser, qui peut immédiatement commencer à les compromettre.
Générer des centaines de conteneurs simultanément
NecroBrowser est un microservice qui peut être contrôlé via une API et être configuré pour effectuer des actions via des instances Chromium Headless s'exécutant dans des conteneurs Docker. Selon les ressources disponibles sur le serveur, un pirate peut générer des dizaines ou des centaines de ces conteneurs simultanément, chacun avec un cookie de session volé à une victime.
Les actions effectuées par les instances du navigateur zombie peuvent être entièrement automatisées. Par exemple, selon le type de compte, cela peut signifier prendre des captures d'écran d'emails, initier la réinitialisation des mots de passe, télécharger des clés malveillantes sur GitHub ou ajouter des adresses malveillantes aux boîtes emails. Les instances du navigateur peuvent également être utilisées pour recueillir des informations sur les contacts et les amis sur les réseaux sociaux et même pour envoyer des messages de phishing à ces amis dans une attaque de type ver.
Un gros problème pour peu de solutions
Et malheureusement, peu de solutions techniques bloquent complètement de telles attaques de phishing côté serveur. Muraena a été développé pour montrer que des techniques telles que le SRI et le CSP ont un effet limité et peuvent être contournées de manière automatisée. De plus, l'outil montre que la 2FA n'est pas une solution à toute épreuve.
Ce type de phishing par procuration ne peut cependant pas vaincre certaines implémentations 2FA. Celles qui utilisent des tokens matériels USB avec prise en charge de la norme Universal 2nd Factor (U2F). C'est parce que ces jetons USB établissent une connexion vérifiée cryptographiquement au site Web légitime par l'intermédiaire du navigateur, qui ne passe pas par le reverse-proxy de l'attaquant. Par ailleurs, les solutions basées sur des codes reçus par SMS ou générés par des applications d'authentification mobiles sont vulnérables, car les victimes doivent les saisir manuellement.
La vigilance est de mise
Une autre solution technique peut être une extension de navigateur qui vérifie si l'utilisateur saisit ses identifiants sur le bon site Web. Google a développé une telle extension pour Chrome appelée Password Alert qui avertit les utilisateurs s'ils tentent d'entrer leurs identifiants Google sur un site Web qui n'appartient pas à Google.
Former les utilisateurs à être vigilants et à s'assurer qu'ils s'authentifient sur le bon site web avec le bon nom de domaine reste très important. La présence d'un indicateur TLS/SSL et d'un certificat valide ne sont pas suffisants pour considérer qu'un site Web est légitime car les certificats peuvent maintenant être facilement obtenus gratuitement, de sorte que la plupart des sites de phishing seront compatibles HTTPS.