Connexion Premium

Autopsie d’un kit de phishing et de son camouflage

O.D.I.L… ? LIDO, c'est peut-être une danseuse !

Autopsie d’un kit de phishing et de son camouflage

Illustration : Flock

Parfois il suffit de peu : un lien et deux trois clics plus tard, voilà que votre boîte email est compromise. Comment fonctionnent les kits de phishing livrés clés en main par certains groupes de pirates ? Nous en avons récupéré et analysé un, conçu pour attaquer des comptes Outlook protégés par une double authentification.

Il y a quelques mois, Hexastrike dévoilait une nouvelle attaque baptisée CodeStorm. Il s’agit d’une attaque de l’homme du milieu ou adversary-in-the-middle (AiTM) visant les utilisateurs Microsoft 365. Son but ? Obtenir un accès aux comptes protégés par une authentification à deux facteurs. La technique n’est pas nouvelle, on en parlait déjà en 2022.

Lors de différents tests de cybersécurité, nous avons récupéré dans nos filets le code malveillant d’un kit fonctionnant sur le même principe que cette attaque. Nous n’allons évidemment pas diffuser la charge malveillante, mais son analyse permet de comprendre le fonctionnement et comment le programme malveillant se cache des antivirus et autres systèmes de détection.

Une page de 10 ko avec du code malveillant qui joue à cache-cache

Il reste 84% de l'article à découvrir.

Cadenas en colère - Contenu premium

Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.

Accédez en illimité aux articles

Profitez d'un média expert et unique

Intégrez la communauté et prenez part aux débats

Partagez des articles premium à vos contacts

Commentaires (27)

votre avatar
:bravo:

Super didactique.

Il reste probablement une alerte d'Outlook indiquant la connexion depuis une nouvelle adresse IP (celle des bandits), mais :
1) pour qu'elle soit lue, il faut aussi l'envoyer vers un compte mail de secours (pas seulement celui qui vient d'être piraté)
2) il faut que l'utilisateur remarque que ce n'est pas son adresse IP.

Conclusion : ne jamais aller sur son webmail depuis un lien reçu mais toujours en direct (par un favori par exemple).
votre avatar
Le gros soucis est que les prestataires n'ont toujours pas compris (Google et Infomaniak par exemple),, qu'une adresse IPv6 change tous les jours.

On reçois donc systématiquement un mail pour avertir qu'une connexion s'est faite depuis une nouvelle adresse et on ne lit plus à force tellement c'est débile.

Quand même Google ne pense pas à s'arrêter au préfixe ipv6, cela en dit long sur le niveau des sois-disant pro.... :fumer:
votre avatar
Vraiment instructif, merci pour cet article :chinois:
votre avatar
Le sous-titre :yes:
votre avatar
"Définitivement italien !" :8
votre avatar
Super intéressant. Comment "trouver" qu'une page est piégé?
votre avatar
Je pense que ça dépend vraiment des vecteurs d’attaques. Dans le cas présent (et de manière générale), le plus simple et de ne pas cliquer sur un lien pour éviter de se retrouver sur un faux site. Des navigateurs peuvent afficher des alertes aussi. Un indice : si votre gestionnaire de mots de passe ne propose pas d’auto remplir les champs c’est peut-être car il ne reconnait pas (à juste titre) le nom de domaine.

Mais, encore une fois, ne pas cliquer n’importe ou est vraiment le plus sur !
votre avatar
+1 avec le gestionnaire de mot de passe et son extension !
votre avatar
sauf qu'avec ce genre de conseils à l'emporte pièce, les gens qui n'y connaissent rien refusent les mails avec des liens légitimes comme les liens pour accéder à une réunion ou un lien de tékéchargement vers une instance nextcloud ou un service comme gros fichier.

Vu la galère que cela m'occasionne avec des gens qui veulent m'impposer l'envois de données personellles par mail car mes liens nexcloud, c'est dangereux, je ne vous dit par merci.

Pour le coup, :cartonrouge: à tout ceux qui véhiculent l'idée que tout lien dans un mail est une menace, sans discernement.
votre avatar
comme l'a dit Sébastien, les gestionnaires de mot de passe sont des outils merveilleux pour détecter ça : s'il ne propose pas de login/mot de passe, c'est qu'on n'est pas sur le site habituel. L'avantage des gestionnaires de mots de passe, c'est qu'ils sont utilisables par Mme et M. Tout Le Monde.

noscript est un outil magique aussi: il permet d'activer javascript depuis certaines sources de confiance. si on se retrouve sur un site qui ressemble au site habituel mais que javascript est désactivté, c'est qu'on n'est pas sur le site prévu (et le javascript n'est pas actif).

ensuite, il y a virustotal auquel on peut soumettre une URL pour validation mais il ne dira quelque chose que si un des antivirus du commerce connait le site. donc un résultat positif (dangereux) soit être pris en compte mais un résultat négatif (pas de menace connue) ne veut pas forcément dire grand chose.
votre avatar
Merci pour cette analyse
votre avatar
C'est vraiment intéressant ! Merci pour le contenu.
votre avatar
Je remarque que la fonction eval() a un rôle majeur dans le premier script, je me demande si l'interdire par défaut dans le navigateur ne résoudrait pas beaucoup de souci (en plus de casser des sites webs légitimes, mais que je considère à priori mal conçus) ?
votre avatar
+1 même question si quelqu'un à un début de réponse ça m’intéresse. Y a t'il des utilisations légitime de la fonction eval ?
votre avatar
Tu as tout dit 😄 cela casserait des sites et applications, qu’on peut considérer comme « mal conçues » si on veut, ou tout du moins construites à une époque où les standards étaient différents, de même que le panorama des menaces. Je pense que cela affecterait davantage des applis métier en entreprise, qui ne bénéficient pas forcément du même niveau de suivi et maintien à jour pour appliquer les meilleures pratiques. Mais dans l’absolu, il n’y a pas d’usage que seul eval() est en mesure de remplir : d’autres fonctions ont été développées avec le temps pour assurer l’usage qui en était fait.
votre avatar
On peut toujours imaginer le désactiver par défaut et laisser un flags ou une config pour l'activer dans les environnements concernés.
votre avatar
Effectivement, on peut l'imaginer. Mais ça voudrait dire qu’à un moment donné, même après des mois de notification aux utilisateurs, certaines applications d’entreprise arrêteraient de fonctionner si elles n’ont pas été migrées pour se passer de cette fonction. Qui pour effectuer cette tâche, sachant que même lorsque des applis d’entreprises sont sous contrat de maintenance, certains devs ne savent pas (ou leur hiérarchie ne veut pas qu’ils passent du temps à) bosser pour améliorer du code s’il n’y a pas de gain fonctionnel visible... Il me semble que ce serait compliqué en tout cas, pour un gain difficile à évaluer (les attaquants peuvent s’en passer, et ce n’est pas le seul marqueur d’une charge malveillante).
votre avatar
maintenant avec les container on peut imaginer avoir la fonction eval d'activée pour les applications métiers sur le domaine de l'entreprise et désactivé dans les autres containers ou ça pourrait être une extension d'ailleurs j'ai vu qu'il en existait une mais avec très peu de commentaire et non vérifiée donc autant dire à ne pas installer. Il y a noscript mais lui il bloque tout et est relou à utiliser au quotidien
votre avatar
Je pense que eval() n'est pas le cœur du problème, le javascript étant extrêmement souple, il y'aurait de toute façon moyen de faire autrement... L'usage d'eval maquillé c'est juste pour ne pas se faire détecté par les boits de sécurité, l'interdire c'est le jeu du cahta et de la souris les vilains feront différemments...

D'ailleurs le code ci-dessus, à probablement eu une version moins offusqué avec un eval en dur...
votre avatar
super article @SébastienGavois et super illustration @Flock

Après les utilisateurs lamba d'une boite ne sont pas admin sur leur machine ni sur le réseau donc l'intérêt d'avoir un user réside dans le fait de pouvoir accéder à de bonne information sur le serveur office365 ou enchaîner avec d'autre techniques pour accéder au serveur interne de la boite mais c'est sûr que si un admin se fait avoir là c'est jackpot pour le pirate.

D'après l'interview d'un négociateur par micode sur sa chaîne underscore youtube.com YouTube il disait que les particuliers n’intéressent plus les pirates car ils ne peuvent pas demander des rançons élever à des particuliers contrairement aux boites où de base ils vont demander 10% du CA et c'est là qu'entre en jeu le négociateur pour faire baisser la note. De son expérience il arrive à faire baisser entre 100 et 500k€ de rançon en fonction de la taille de la boite, du secteur etc.

J'avais justement l'impression de moins recevoir de phishing sur mes mails persos mais ça n'a peut être juste rien à voir ou ils sont peut être mieux filtrer.

Par contre l'autre jour une nouvelle RH m'envoie un lien pour un formulaire office365 à remplir où il faut se loguer avec ces identifiants et double authentification c'était tellement louche que je l'ai signaler en phishing au service IT et ils m'ont dit que non c'était ok. Donc même en étant loguer dans les applications office je trouve que c'est bizarre que l'on doivent aller sur un site web pour afficher un formulaire office365, cela devrait pouvoir l'ouvrir dans une application office sans devoir se loguer sur un site ou intégrer le formulaire dans le mail j'sais pas moi mais il y a moyen de faire plus simple à mon avis, en envoyant directement les questions dans le mail, trop compliqué ? C'est à cause de gens comme ça que les utilisateurs s'habituent à ce procédé et du coup se font avoir.
votre avatar
Bravo pour l'article, en tant que Dev c'est super intéressant 👍
votre avatar
Comment un cookie de session peut être accepter de deux sources IP différentes, il devrait immédiatement être révoqué non ?
votre avatar
Non. Il y a plein de cas légitimes où un appareil change d'adresse IP. Un smartphone passant du réseau mobile au Wi-Fi à un endroit puis à un autre réseau Wi-Fi. Et je ne parle même pas de IPv6 où l'adresse peut aussi changer sans que l'on change de réseau ou des VPN.

Ce qu'il faut, c'est détecter un changement d'appareil en utilisant une fingerprint.
votre avatar
Je ne vois pas le rapport : pourquoi deux IP différentes peuvent accéder en même temps avec le même cookie.
Que ton cookie te suive quand tu te connectes au WIFI OK,
mais son accès avec l'IP précédente réseau mobile doit être bloqué !
votre avatar
SI tu changes l'énoncé du problème, je deviens d'accord avec toi.

Cependant, tu parles de vol de cookie de connexion ce qui est autre chose que de l'attaque décrite dans l'article.

Ici, les pirates obtiennent un nouveau cookie de connexion suite à une double authentification par attaque man in the middle.

J'aurais d'ailleurs dû remarquer cela sur ton premier commentaire.
votre avatar
Ici, les pirates obtiennent un nouveau cookie de connexion suite à une double authentification par attaque man in the middle.
Si c'est un Man in the middle il n'y a qu'une seule connexion possible : sauf avec un TOTP (valable pendant 30sec), la plupart des MFA ne peuvent servir d'un seule fois, donc si le pirate se connecte, l’utilisateur ne le sera pas (et ça se verra l'OTP sera refusé).
A relire l'article j'ai l'impression que le faux site ne fait rien, du coup ce n'est pas un man in the middle et je deviens d'accord avec ton commentaire ;)
votre avatar
mais son accès avec l'IP précédente réseau mobile doit être bloqué !
Pourquoi la bloquer ? Si tu revient sur ton wifi après être passé en 4G, couic ? 💀