L'application qu'on vous propose d'acheter sur le darknet pour contourner l'authentification à deux facteurs est une arnaque et une tromperie. Très probablement, vous l'achetez et cela ne fonctionnera pas.
N'hésitez pas à faire un acompte et à l'acheter sans vérification.
L'authentification à deux facteurs est configurée et fonctionne différemment pour chaque banque, système de paiement ou tout magasin ou série, et il n'y a pas de méthode unique pour contourner l'authentification à deux facteurs.
Il est nécessaire de tester différentes méthodes et méthodes pour contourner l'autorisation en deux étapes pour chaque site spécifique.
Ci-dessous, je vais vous écrire une méthode qui a été testée et essayée, mais pas le fait qu'elle soit adaptée à votre site.
Pour vous aider spécifiquement, fournissez le lien où vous avez trouvé une offre de vente d'une application pour contourner l'atorisation à deux facteurs.
Je vais postorayus projekt et analyser ce sujet publicitaire et écrire ma propre critique adéquate à ce sujet.
Comment les pirates brisent l'authentification à deux facteurs avec Modlishka
Contenu
- 1. Une visite guidée de l'authentification à deux facteurs
- 2. Piratage de l'authentification à deux facteurs avec Modlishka
- 3. Support pour contourner l'authentification à deux facteurs
- 4. Capture des informations d'identification et des sessions des victimes
- 5. Prêt derrière NAT
- 6. Contournement de l'authentification à deux facteurs
- 7. Au total
Les forums de piratage regorgent de suggestions de piratage de comptes. Dans la plupart des cas, les attaques sont menées par phishing avec une fausse page de connexion. Cependant, cette méthode est inefficace si l'utilisateur reçoit un SMS avec un code de vérification. Je vais vous montrer comment les pirates contournent l'authentification à deux facteurs en utilisant l'exemple du piratage du compte Google de l'éditeur du site.
Une excursion dans l'authentification à deux facteurs
Auparavant, lorsque les sites fonctionnaient sur HTTP et que personne ne pensait vraiment à la protection, l'interception du trafic avec les informations d'identification était une tâche très simple. Ensuite, le trafic a été crypté et les attaquants ont dû trouver des moyens plus sophistiqués d'usurper et de rediriger les routes. Il semblerait que l'authentification à deux facteurs ait finalement résolu le problème, mais tout dépend des détails de sa mise en œuvre.
La méthode d' authentification à deux facteurs (authentification à deux facteurs) a été conçue comme un moyen supplémentaire de confirmer le titulaire du compte.
Elle repose sur plusieurs méthodes d'authentification:
- l'utilisateur sait quelque chose (par exemple, il peut répondre quel était le nom de jeune fille de sa mère ou le surnom du premier animal de compagnie);
- l'utilisateur a des traits uniques qui peuvent être numérisés et comparés (authentification biométrique);
- l'utilisateur dispose d'un appareil avec un identifiant unique (par exemple, un numéro de portable, une clé USB avec un fichier clé).
La première méthode est toujours rencontrée lors de la récupération des mots de passe pour les questions de sécurité. Il ne convient pas à une utilisation régulière, car les réponses ne changent pas et peuvent être facilement compromises. La deuxième méthode est plus souvent utilisée pour protéger les données sur les gadgets mobiles et autoriser les applications clientes sur les serveurs.
La méthode 2FA la plus populaire est la troisième. Il s'agit d'un SMS avec des codes de vérification générés à l'aide de la technologie OTP. Le code est différent à chaque fois, il est donc presque impossible à deviner.
Cependant, plus il est difficile de surmonter la protection par des méthodes techniques, plus il est facile de le faire par ingénierie sociale. Tout le monde a tellement confiance en la fiabilité de l'authentification à deux facteurs qu'il l'utilise pour les opérations les plus critiques - de l'autorisation dans Google (et c'est l'accès immédiat au courrier, au disque, aux contacts et à tout l'historique stocké dans le cloud) à la banque cliente. systèmes.
Dans le même temps, le chercheur australien Shubham Shah a déjà montré la possibilité de contourner un tel système. Certes, sa méthode était assez compliquée dans la mise en œuvre pratique. Il utilisait l'autorisation d'appel, pas les SMS, et vous deviez d'abord trouver le numéro de téléphone de la victime et une partie des informations d'identification. Le PoC n'était pas très convaincant, mais il a cartographié un vecteur d'attaque.
Piratage de l'authentification à deux facteurs avec Modlishka
Début 2019, le chercheur polonais Peter Dushinsky (Piotr Duszyński) a présenté dans le domaine public le proxy inverse
Modlishka. Selon lui, cet outil peut contourner l'authentification à deux facteurs, ce que nous allons maintenant vérifier.
Si nous le comparons avec le même
SEToolkit (il est intégré à presque toutes les distributions populaires pour les tests d'
intrusion), alors la différence est la suivante : SET clone et place une page d'autorisation sur le serveur local. Tout y est basé sur le travail de scripts qui interceptent les informations d'identification saisies de la victime. Vous pouvez bien sûr mettre en place une redirection vers le site d'origine, mais le trafic de la victime vers votre serveur ne sera pas crypté. En fait, ces types de programmes agissent comme des serveurs Web avec un faux site (hameçonnage).
Modlishka fonctionne différemment. Un certificat personnalisé est généré, qui crypte la connexion de la victime à notre serveur (afin de ne pas se brûler). Cette machine agit alors comme un proxy inverse.
En d'autres termes, tout le trafic va vers le site d'origine avec une instance sur notre serveur. Le pirate informatique se retrouve avec les informations d'identification et la session autorisée de la victime est détournée. Une attaque MITM classique précédée de phishing (il faut en quelque sorte forcer la victime à installer un faux certificat et la diriger vers un faux site).
Stand pour contourner l'authentification à deux facteurs
Configurons un serveur avec Modlishka dans une machine locale. Je vais le faire en utilisant Kali Linux comme exemple, mais il n'y aura pas de différence fondamentale pour les autres distributions - à moins que le chemin vers la source Go ne change légèrement.
Tout d'abord, nous installons
Go - un proxy inverse est écrit dans ce langage, et sans Go, il ne sera pas compilé.
Code:
$ apt-get groupe d'installation
Ensuite, nous indiquons le chemin vers le répertoire source:
Code:
$ export GOPATH='/root/go'
Vous pouvez tout vérifier avec la commande
La sortie doit inclure GOPATH.
Sortie de commande.
Ensuite, on clone la branche avec l'outil.
Code:
$ allez chercher -u github.com/drk1wi/Modlishka
$ cd /root/go/src/github.com/drk1wi/Modlishka/
Nous créons un certificat:
Code:
$ openssl genrsa -out secret.key 2048
$ openssl req -x509 -new -nodes -key secret.key -sha256 -days 1024 -out cert.pem
Vous devez maintenant transférer le contenu de la clé et du certificat dans le fichier plugin / autocert.go et remplacer la valeur de deux variables:
- const CA_CERT - valeur du certificat (fichier pem);
- const CA_CERT_KEY - valeur de clé (fichier de clé).
Fichier Autocert.go après remplacement du certificat
Maintenant, nous collectons le tout:
La compilation prend de trois à dix minutes selon la quantité de ressources informatiques.
Le fichier exécutable lui-même est situé dans le répertoire dist / appelé proxy. Pour vérifier, vous pouvez exécuter la sortie d'aide avec le commutateur -h.
Affichage de l'aide de Modlishka
Capturer les informations d'identification et les sessions de la victime
Comme je l'ai écrit ci-dessus, afin de créer un canal crypté transparent pour la victime à notre proxy inverse, vous devez d'abord exporter le certificat vers le navigateur. D'autres actions sont analysées en utilisant l'exemple de Mozilla Firefox x64 v. 67.0.
Avant de commencer, examinons de plus près le contenu d'un autre fichier dans le répertoire des modèles. Nous sommes intéressés par
google.com_gsuite.json. Une description détaillée de chaque élément se trouve dans le
guide de cette configuration.
Contenu du fichier google.com_gsuite.json
Il existe deux options pour démarrer Modlishka: manuellement et à l'aide d'un fichier de configuration. Pour exécuter manuellement, la commande minimale ressemble à ceci:
Code:
$ ./dist/proxy -target https://google.com -phishingDomain loopback.modlishka.io -listeningPort 443 -tls
Lancer à l'aide d'un fichier de configuration:
Code:
$ ./dist/proxy -config /templates/google.com_gsuite.json
Commençons par la configuration et allons sur loopback.modlishka.io dans le navigateur. La page google.com s'ouvrira à nous. Nous nous connectons au compte et voyons comment les informations d'identification de la victime apparaissent dans la sortie du terminal.
Login et mot de passe dans la sortie Modlishka.
Si nous allons à l'adresse loopback.modlishka.io/SayHello2Modlishka (très symbolique), nous obtiendrons la console de gestion de la session interceptée (pour le moment c'est une fonction bêta). A ce stade, nous avons intercepté le login et le mot de passe de la victime sans aucune erreur de cryptage et dans une connexion «sécurisée». Pour autant que je sache, d'autres outils ayant un objectif similaire ne peuvent pas le faire.
Que faire maintenant de l'authentification à deux facteurs ? Voici quoi : il y a un champ UUID vide dans le panneau de configuration, et ce numéro est la clé de tout.
Si vous cliquez immédiatement sur le bouton Emprunter l'identité de l'utilisateur (bêta), un onglet vide s'ouvrira et dans la console Modlishka, il nous indiquera qu'il n'y a pas d'UID d'utilisateur. Il doit être défini, et il est défini au tout début - c'est indiqué dans le lien vers notre URL maléfique. Pour ce faire, revenons au fichier de configuration.
Nous nous intéressons à la chaîne "trackingParam": "ident". Il doit être défini sur ident pour que notre URL ressemble à ceci:
Code:
https://loopback.modlishka.io/?ident=1
C'est vers cette URL (ou en plus obscurcie) que la victime doit être dirigée.
Cette fois, après avoir cliqué et autorisé à l'aide d'un tel lien, une session avec un UUID rempli sera disponible dans le panneau de configuration (loopback.modlishka.io/SayHello2Modlishka). À quoi cela ressemble exactement, je le montrerai un peu plus tard avec un exemple réel.
Désormais, lorsque nous appuierons sur le gros bouton jaune, nous verrons une belle animation bleue et au bout de cinq à dix secondes nous entrerons dans la session autorisée de la victime, malgré les difficultés de l'authentification à deux facteurs. La victime, comme d'habitude, recevra et entrera un code de confirmation, voyant la connexion cryptée et le vrai panneau d'autorisation de Google, mais ne remarquant pas le proxy inverse Modlishka coincé au milieu.
Bien que j'ai fourni un Wiki sur tous les paramètres du fichier de configuration, il y a encore une chose. Une fois que la victime a entré les informations d'identification, il est conseillé d'empêcher la déconnexion du compte et d'enregistrer la session autorisée. Le paramètre terminateTriggers fait cela. Si vous spécifiez dans ce paramètre l'URL à laquelle l'utilisateur accédera après une autorisation réussie, alors lorsqu'une telle adresse apparaît, tout le trafic sera redirigé vers l'URL d'origine et la session autorisée ne sera pas touchée même après la déconnexion du compte .
Ensemble complet derrière NAT
Il s'est avéré qu'il n'était pas si difficile d'attaquer à l'intérieur d'une machine ou d'un LAN, mais avec la préparation d'un stand de "combat" sur le WWW en tant que PoC, j'ai eu un problème au début. Il aura besoin soit d'une redirection vers une adresse IP blanche (externe), soit d'un serveur dédié avec cette adresse. Vous pouvez louer un serveur à partir de $ 5 par mois.
Lorsque j'ai installé ce serveur sur Kali Linux, il n'y a eu aucun problème. Il y avait Ubuntu Server sur le VDS, et lors de l'installation de Golang, il s'est avéré que les référentiels par défaut contenaient une très ancienne version de Go, ce qui donnait beaucoup d'erreurs lors de la compilation. Dans ce cas, vous devez ajouter les référentiels Go actuels et installer la dernière version.
Le premier problème est le nom de domaine. Si vous passez de l'ordinateur de la victime à l'URL loopback.modlishka.io, rien ne fonctionnera, car les DNS externes et non contrôlés ne connaissent pas une telle adresse. Si vous redirigez vers l'adresse IP de la machine Modlishka, la victime ira directement sur la page Google, en contournant le serveur proxy, et dans la sortie du terminal, nous verrons deux lignes:
Code:
L'hôte 192.168.1.15 ne contient pas le domaine de phishing
Redirection du client vers google.com
Si la victime est sur le même réseau local, alors vous pouvez faire correspondre l'IP - URL dans le DNS local ou dans son fichier hosts. Dans mon cas, c'était comme ça:
Code:
192.168.1.15 loopback.modlishka.io
Sur Internet, j'ai d'abord essayé d'enregistrer un domaine de 3ème niveau gratuit. J'ai supposé que cela suffirait, mais ce n'était pas le cas ! Lorsque vous avez cliqué sur, il s'est avéré qu'une seule page du site était inaccessible, et lorsque vous avez entré une adresse IP via HTTPS, elle a été redirigée vers Google. HTTP simple a ouvert la page d'accueil d'Apache.
Comme d'habitude, le diable est dans les détails. Lorsque vous accédez à une URL du réseau mondial, le préfixe www est automatiquement ajouté et le programme attend un appel propre au domaine. L'ajout de www à la configuration n'a pas aidé et j'ai dû mettre en ma possession l'ensemble des sous-domaines. En d'autres termes, si le domaine ressemble à loopback.modlishka.io, alors vous devez avoir * .loopback.modlishka.io.
Le prochain hic concerne les certificats. Il est nécessaire de créer un certificat et une clé pour le domaine enregistré. Idéalement, vous devez signer le certificat auprès d'une autorité de certification, mais un certificat auto-signé peut également être utilisé pour le test.
Nous allons sur n'importe quel générateur de certificats, créons et téléchargeons deux fichiers. Leur contenu doit être substitué dans le fichier de configuration de Modlishka selon les champs "cert": "" et "certKey": "". Une petite remarque: le certificat et la clé doivent être spécifiés sur une seule ligne, et le saut de ligne, comme d'habitude, est spécifié par la séquence \ n.
Ça devrait ressembler a quelque chose comme ca:
Code:
"cert": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg2gAwIBAgIESjdT0DANBgkqhkiG9w0BAQsFADApMScwJQYDVQQDDB5SZWdlcnkgU2Vs\n...".
Nous devons également modifier quelques autres paramètres dans le fichier de configuration:
- "PhishingDomain": "loopback.modlishka.io" - remplacez votre domaine par loopback.modlishka.io;
- "ListeningAddress": "127.0.0.1" - vous devez le remplacer par 0.0.0.0, sinon seule l'interface lo est écoutée et tout ne fonctionnera qu'à l'intérieur de la machine locale.
Modlishka est déployé à chaque fois sur des noms de domaine spécifiques. Il vaut donc mieux enregistrer dans un premier temps un nom de domaine, puis recevoir un certificat et ensuite seulement déployer la partie technique. Dans ce cas, vous pouvez importer le contenu des certificats dans autocert.go, et vous n'avez plus besoin d'enregistrer la clé avec le certificat dans le fichier de configuration.
Contourner l'authentification à deux facteurs
J'ai testé ce stand avec l'éditeur du site, qui jouait le rôle d'une victime très naïve. Sur google.com, mon adresse de domaine n'est pas du tout similaire, mais nous avons décidé d'éviter l'obscurcissement. Il y a déjà eu un article séparé à ce sujet, et plus d'un.
Les résultats de l'expérience conjointe peuvent être vus dans les captures d'écran. Andrey était dans une autre ville et ne pouvait donc rien me faire, connecté via un autre fournisseur, accédant à mon site de phishing via le bureau Firefox v. 67.0.
Tout d'abord, il a téléchargé le faux certificat pour mon domaine et l'a installé dans le navigateur. Dans la vraie vie, lorsque vous effectuez un pentest, vous pouvez vous motiver pour un acte aussi désespéré sous couvert de problèmes de sécurité, de promotion ou de jouer sur la cupidité / la peur de mille manières différentes.
Il y a une honte dans la barre d'adresse, mais peu de gens la regardent (sur les navigateurs mobiles, elle est généralement masquée pour économiser de l'espace à l'écran). Le cadenas vert de la connexion "sécurisée" inspire confiance, et le panneau d'autorisation de Google charge généralement celui d'origine.
La première étape a été couronnée de succès : Andrey a saisi son nom d'utilisateur et son mot de passe, après quoi Google lui a envoyé un code de confirmation à usage unique par SMS.
En moins d'une minute, Andrey l'entre dans le champ de vérification standard. Il est connecté à son compte... et moi aussi.
Après cela, j'ai eu une totale liberté d'action. Mail, disque, contacts, historique du navigateur, historique des mouvements géographiques, listes des applications installées, mots de passe enregistrés des hotspots Wi-Fi et sauvegardes. Juste un Klondike numérique !
Plus important encore, nous avons réussi à intercepter la session active.
Panneau de contrôle Modlishka
Remarque importante: si le compte est utilisé sur un smartphone, une notification push sera envoyée à l'utilisateur que le compte a été connecté à partir d'un nouvel appareil. Cependant, le pirate a le temps de saisir le courrier et de supprimer cette lettre. Pour la victime, tout ressemblera à un bug dans le système de notification, si elle y réagit.
Le total
La session de tableau de bord Modlishka est très robuste. Il ne meurt que lorsque l'utilisateur (ou un pirate informatique) en sort. Autrement dit, si la victime ferme l'onglet, la session autorisée restera active. Si vous vous reconnectez directement à google.com, puis vous déconnectez de votre compte, la session restera active. Même si vous arrêtez le serveur Modlishka et le redémarrez, la session reste toujours. Il n'y a qu'une seule option de désautorisation garantie - pour quitter au moment où vous ne faites que "rediriger" vers le proxy.
Bien que les détails techniques aient été traités dans cet article, le contournement de 2FA ne fonctionnera pas sans ingénierie sociale. Vous devez déguiser le site et installer le certificat d'une manière ou d'une autre sur l'ordinateur de la victime. Cependant, ce n'est peut-être pas si difficile. La plupart des utilisateurs suivent volontiers les instructions qui commencent par les mots "désactiver l'antivirus et le pare-feu", et seules quelques personnes dans la rue verront un danger potentiel dans l'installation d'un certificat.