Voler des sessions et contourner 2FA avec EvilnoVNC

Très bien à tout le monde !

Cette semaine, je vous présente un nouveau projet appelé EvilnoVNC . Cette fois, c’est un petit outil qui nous permettra de voler des sessions et de contourner 2FA via une connexion noVNC malveillante . Tout cela se fera via Docker de manière entièrement automatique, grâce à un simple script écrit en bash.


L’un des exercices les plus courants dans toutes les grandes entreprises (même celles qui ne font pas d’exercices Red Team) sont les campagnes de phishing . Grâce à eux,obtenirIl vise à sensibiliser les utilisateurs afin qu’ils n’accèdent pas à des sites malveillants, qui pourraient finir par les compromettre, voire l’ensemble de l’entreprise .

D’un point de vue offensif, il existe différentes manières d’aborder cette tâche ardue. Pour donner quelques exemples assez courants :

• Nous pouvons créer un clone identique de la page dont nous voulons usurper l’identité
• Nous pouvons créer une nouvelle page pour que l’utilisateur puisse s’inscrire
• Nous pouvons utiliser un « proxy inverse » pour créer un MiTM

Chacune de ces techniques a ses avantages et ses inconvénients, certaines étant plus transparentes pour la victime et d’autres plus évidentes à l’œil expert ou à l’utilisateur méfiant. Dans certains cas, nous obtiendrons des informations d’identification en texte brut et dans d’autres, nous obtiendrons uniquement des cookies de session , nous permettant d’accéder au compte de l’utilisateur pendant une courte période de temps.

Quoi qu’il en soit, il existe de nombreux articles sur Internet contenant des informations à ce sujet et de nombreux outils, aussi bons que Gophish ou evilginx2 pour n’en citer que quelques-uns.

Dans l’article d’aujourd’hui, nous parlerons d’une technique différente (qui pourrait être aussi valable qu’une autre). Évidemment, cela n’échappe pas à ses avantages et à ses inconvénients , je vous laisse donc le soin de décider si ce sera votre prochain outil préféré, ou, au contraire, vous pensez que cela ne vaut pas la peine de l’utiliser dans un environnement réel.

Avant de commencer, il est obligatoire de mentionner que cette idée n’est pas de moi, et que vous pouvez retrouver toutes les informations dans l’article que @mrd0x a écrit à ce sujet.

Fondamentalement, le concept est de faire accéder un utilisateur à un lien malveillant, qui affichera la page d’origine dont nous voulons usurper l’identité. Cette page se chargera dans un navigateur que l’attaquant pourra contrôler , via une connexion noVNC (un VNC via le navigateur) de manière totalement transparente pour la victime.

À première vue, cela peut paraître complexe, mais c’est quelque chose de complètement trivial. En réalité, la seule difficulté est de réaliser le processus d’installation et de modifier certains composants de noVNC afin que les contrôles à l’écran , les écrans de chargement ou tout ce qui pourrait rendre l’utilisateur suspect ne soient pas affichés.

Une fois de plus, j’ai décidé de créer ma propre preuve de concept, que j’appellerais EvilnoVNC . Ci-dessous, je vous laisse le lien du projet sur GitHub : https://github.com/JoelGMSec/EvilnoVNC

Maintenant que nous connaissons la théorie, passons à la partie pratique 😋

Pour l’instant, cet outil a été conçu pour être utilisé sous Linux via bash, et il est nécessaire d’installer Docker et Chromium pour le faire fonctionner. Dans mon cas, tous les tests ont été réalisés sur la dernière version de Kali Linux.

Comme d’habitude, nous allons cloner le référentiel et exécuter les commandes suivantes pour installer le conteneur sur notre système :

clone git https://github.com/JoelGMSec/EvilnoVNC
cdEvilnoVNC ; sudo chown -R 103 Téléchargements
sudo docker build -t joelgmsec/evilnovnc .

Une fois l’installation terminée, nous exécuterons la commande suivante pour voir l’aide du programme :

./start.sh -h

Comme vous pouvez le constater, l’exécution du scénario n’a aucun mystère. La seule chose que nous devrons faire pour que cela fonctionne est d’indiquer la résolution de la victime et la page dont nous voulons usurper l’identité.

Il est très important de prendre en compte la question de la résolution, car actuellement, cette technique ne prend pas en charge l’utilisation d’une résolution dynamique , étant nécessaire de la saisir avant chaque exécution. Cela donnera au bureau virtuel les dimensions que nous indiquons, ce qui rendra très évident pour la victime si nous faisons une erreur en entrant une valeur trop faible ou trop élevée.

Heureusement, la grande majorité des utilisateurs utilisent une résolution de 1920 x 1080 sur leurs ordinateurs portables et de bureau. Dans tous les cas, il serait possible d’obtenir ces informations via javascript et d’adapter la résolution aux données obtenues.

Maintenant que nous savons comment cela fonctionne, faisons un test simple avec une vraie page. Pour cet exercice, j’utiliserai le login Google comme exemple :

./start.sh 1920x1080x24 https://accounts.google.com

Une fois l’outil lancé, il renverra une URL avec les données d’accès, qui sera ce que nous utiliserons pour voir ce qui se passe en temps réel . En revanche, l’auditeur devra acheter un domaine et rediriger l’accès (via NAT, ou en lançant le script depuis un VPS) pour que la victime puisse y accéder.

À partir de là, nous enverrons le lien malveillant et attendrons de voir ce qui se passe. Je recommande fortement d’ouvrir deux navigateurs la première fois que vous exécutez le programme, pour voir comment exactement la même chose se reflète dans les deux. En fait, nous pourrions taper ou faire défiler et la victime le verrait en temps réel, alors soyez prudent avec cela.

Comme on peut le voir sur l’image suivante, l’accès à la page Google est identique à l’original (en fait, c’est original, mais il se charge dans notre navigateur virtuel) :

Une fois que la victime a saisi ses informations d’identification, la boîte de dialogue 2FA apparaîtra si elle l’a activé :

Et enfin, la victime accédera à son compte et réalisera les actions qu’elle avait prévu de faire :

A partir de là, en tant qu’attaquants, nous avons plusieurs accès à toutes ces informations :

– Tout d’abord, même si la victime ferme le navigateur, nous continuerons à y avoir accès , avec le compte correctement connecté.

– De plus, toutes les données utilisateur seront enregistrées dans le dossier « Téléchargements » ainsi que les cookies de session dans le fichier « Cookies.txt ».

– Et comme si cela ne suffisait pas, tous les fichiers téléchargés par l’utilisateur seront enregistrés dans notre dossier, ainsi que tous les mots de passe enregistrés dans le navigateur.

Si à tout moment nous finissons d’exécuter le script en appuyant sur « Ctrl+C », l’outil copiera le profil complet de la victime sur notre système, ouvrant un Chromium avec toutes ces informations :

Après quelques secondes, le navigateur s’ouvrira et nous pourrons consulter tout ce que l’utilisateur a fait , en ayant accès à tous ses cookies et mots de passe stockés :

Comme je l’ai mentionné précédemment, dans le dossier « Téléchargements », nous aurons les cookies, le profil du navigateur et tous les fichiers que la victime a téléchargés :

Lors de l’exécution du script, tous les cookies du navigateur prolongeront automatiquement leur durée de vie aussi longtemps que possible. De cette manière, une fois le profil de la victime importé, nous pourrons accéder à ses sessions pendant la durée maximale que le serveur nous autorise.

La seule chose que nous devrons garder à l’esprit est que certaines pages (comme Google ou Microsoft) ne permettent pas de maintenir la session via des cookies si nous les importons dans un autre navigateur, donc pour réaliser notremauxaudits, nous devrons le faire sans mettre fin à aucun moment à l’exécution du script.

Avant de terminer cet article, je voudrais dire qu’il ne rend pas justice à l’outil, car on le comprend beaucoup mieux lorsqu’on le voit en fonctionnement. Si vous en avez l’occasion, essayez le et vous verrez qu’il est bien plus impressionnant de voir les mouvements de la victime en temps réel.

Enfin, l’outil est en phase « bêta » et des échecs sont susceptibles de survenir dans certains scénarios. Si vous en trouvez, n’hésitez pas à me le faire savoir 🙂

J’espère que vous l’avez apprécié et que vous le trouverez utile lors de vos prochains audits.

À la prochaine!

 

Source: https://darkbyte.net

 

Add a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *