Mailsploit : une technique facilite le phishing sur de nombreux clients e-mail

Mailsploit : une technique facilite le phishing sur de nombreux clients e-mail

« La faute à la RFC ! »

Avatar de l'auteur
Guénaël Pépin

Publié dans

Internet

05/12/2017 7 minutes
40

Mailsploit : une technique facilite le phishing sur de nombreux clients e-mail

Des bugs dans des clients et interfaces e-mail très utilisés permettent d'afficher une fausse adresse d'expédition, sans éveiller les soupçons du serveur. Une vingtaine d'entre eux seraient encore touchés, dont les clients d'iOS et macOS.

Afficher un e-mail venant de Donald Trump ([email protected]), sans que l'internaute ne puisse voir la vraie adresse d'expédition, voire insérer un contenu dans une page en exploitant une faiblesse de sécurité. C'est l'objet de Mailsploit, une « collection de bugs d'affichage » repérée dans 33 logiciels et webmails, découverte par Sabri Haddouche, chercheur en sécurité chez Wire, une alternative européenne à Signal.

« Le problème se situe au niveau du rendu de l'e-mail, qui t'autorise à afficher n'importe quelle adresse e-mail, même si le message est valide côté serveur. La technique permet d'avoir, dans les entêtes, l'adresse e-mail valide du côté du serveur et d'en afficher un autre du côté du client » nous déclare-t-il.

Une divulgation après trois mois d'attente

Aujourd'hui, le chercheur révèle Mailsploit, sur lequel il travaille depuis le mois d'août. Plusieurs approches existent sur la divulgation de failles de sécurité. D'un côté, il existe les partisans du « full disclosure », soit la publication d'une vulnérabilité, pour forcer les éditeurs touchés à les corriger rapidement. De l'autre, la « divulgation responsable » (responsible disclosure), qui consiste à obtenir la correction avant de divulguer quoi que ce soit.

Nous l'avons constaté sur certains clients mail, dont celui d'iOS : les fausses informations peuvent être reprises sans que la vraie adresse d'expédition ne soit révélée. Selon Sabri Haddouche, des clients comme Courrier de Windows 10, Outlook 2016 ou encore Thunderbird sont affectés par ces erreurs d'interprétation. Les clients et interface web de Gmail, eux, affichent bien l'adresse originelle.

Sur les 33 clients repérés, 32 ont été prévenus il y a au moins trois mois et huit ont apporté un correctif. Du point de vue d'Haddouche, le souci est désormais trop connu pour encore attendre, malgré le nombre d'outils affectés. Il fournit un outil de test de clients e-mail, via les 14 variantes d'exploitation, auxquelles sont sensibles différents clients.

L'interprétation de texte non-ASCII en cause

La découverte de la faiblesse a été fortuite. « J'effectuais un test d'intrusion chez Wire. Je me suis rendu compte d'un bug sur iOS, qui faisait en sorte que tu ne pouvais pas cliquer sur un e-mail quand tu le recevais. Il est possible de hasher le nom du mail avec un guillemet au bout. J'ai essayé de travailler un peu dessus pour l'enlever mais je n'ai pas réussi, donc j'ai laissé tomber. C'est resté dans les cartons quelques semaines. J'ai ensuite commencé à vérifier les autres clients e-mail » nous détaille Haddouche.

Il a ensuite adapté la recette à Thunderbird et au client de macOS, chacun avec sa payload (charge utile) propre. Cette partie a été la plus longue. « La plupart des clients réagissent différemment. Certains sont sensibles à certaines payloads. Une payload peut fonctionner pour trois clients, une autre pour cinq clients » détaille-t-il.

Pour ses essais, il a d'abord conçu une charge générique, à même de montrer si un client affiche correctement une chaine de caractères spécifiques. « Si elle était coupée ou si elle était différente, c'est que le client était touché par ce bug. »

Quel est concrètement le souci ? La RFC 1342, une proposition de standard datée de 1992, depuis remplacée par la RFC 2047. Elle fournit une manière d'interpréter du texte non-ASCII dans un champ expéditeur. La plupart des clients e-mail interprètent donc le texte, sans assainir correctement le champ en question, ce qui ouvre la voie à des interactions indésirables.

Haddouche a trouvé deux manières de l'exploiter : du base64 (en débutant l'adresse par =?utf-8?b?[BASE-64]?=) ou du quoted printable (=?utf-8?Q?[QUOTED-PRINTABLE]?=). Via certains caractères, comme NUL, il est ensuite possible de masquer l'adresse réelle d'envoi. Des bugs spécifiques, par exemple sur iOS, peuvent interdire de cliquer sur l'adresse de l'expéditeur pour en apprendre plus.

Mailsploit iOSMailsploit iOSMailsploit iOS
Sur iOS, une variante permet de totalement masquer l'adresse réelle d'envoi (ici [email protected])

Une exploitation considérée comme aisée

Selon des spécialistes en sécurité, la technique facilite le spam ou le phishing. Pour Guillaume Vassault-Houlière de YesWeHack, « cela évite de compromettre un serveur pour de l'injection mail [...] pour un coût faible ». Une automatisation adéquate permettrait de l'exploiter quelques semaines.

« C'est très simple, bien plus simple que toute autre technique permettant d'obtenir quelque chose de similaire. Il n'y a pas beaucoup de prérequis » appuie Sabri Haddouche. L'envoi passe par un script dédié, non un client e-mail classique. Si chaque client e-mail répond à une payload différente, l'automatisation reste possible, en se fondant par exemple sur le nom de domaine, pour les webmails.

Surtout, les vérifications côté serveur (comme DMARC) n'ont que peu d'intérêt dans ce cas. Il suffit d'envoyer les messages depuis un nom de domaine avec des entrées DKIM et SPF valides pour berner le serveur. Pour lui, l'e-mail provient d'une adresse valide, même si le client en affiche une autre. Le message peut donc passer entre les filets d'un anti-spam qui s'appuierait trop fortement sur ces éléments côté serveur.

Les services contactés n'ont pas encore constaté d'exploitation du problème. Pour Haddouche, pourtant, « ça risque d'être découvert bientôt. Beaucoup d'entreprises sont au courant du bug ».

thunderbird mailsploit

Des corrections et quelques récompenses

En trois mois, les réactions des services aux contacts du chercheur ont été variées : de la fermeture de ticket sans préavis à la récompense via un programme de bug bounty. « Les meilleurs étaient Opera Mail, qui m'ont répondu que c'est la faute du serveur ! Ils ont tort. Le message s'affiche sur le client, pas le serveur » relève Haddouche.

De grandes entreprises ont d'abord refusé de traiter le souci, avant de consentir à une correction. De plus petits acteurs ont apporté un correctif en quelques minutes. Car si l'exploitation est perçue comme facile, sa correction peut aussi être assez simple. Il reste que des clients, comme ceux de Yahoo, ont des cycles de mise à jour lents, repoussant d'autant une correction. Certaines équipes, comme celle de Thunderbird, refuseraient simplement de s'en occuper.

Le géant russe Mail.ru a été l'un des premiers à s'occuper du sujet, attribuant une récompense au chercheur. D'autres sociétés, comme les Suisses de ProtonMail, ont aussi récompensé la découverte, même si le chercheur se refuse à fournir les montants.

Pour ProtonMail, il ne s'agit pas d'une faille de sécurité, mais bien un problème d'affichage exacerbé sur mobile. L'habitude y est d'afficher le nom de l'expéditeur, sans l'adresse. Les spammeurs mettent fréquemment quelque chose de faux en nom d'utilisateur, comme PayPal, pour tromper l'utilisateur. Heureusement, nous avons beaucoup de moyens de détecter les spammeurs, et généralement les messages sont placés en Indésirables » rappelle Andy Yen, fondateur du service.

Openmailbox était, lui, affecté par une faille de sécurité, type XSS, qui permettait d'introduire du code indésirable. « Le problème a été résolu quelques instants après réception de son message, puis le patch a été déployé quelques dizaines de minutes après correction » nous répond Pierre Barre, administrateur système. Son exploitation aurait tout de même demandé « d'effectuer une attaque particulièrement ciblée », estime-t-il.

Avec cette publication, Sabri Haddouche espère amener les outils encore vulnérables à apporter un correctif, comme l'envisagerait Apple dans l'une des prochaines itérations d'iOS.

Écrit par Guénaël Pépin

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Une divulgation après trois mois d'attente

L'interprétation de texte non-ASCII en cause

Une exploitation considérée comme aisée

Des corrections et quelques récompenses

next n'a pas de brief le week-end

Le Brief ne travaille pas le week-end.
C'est dur, mais c'est comme ça.
Allez donc dans une forêt lointaine,
Éloignez-vous de ce clavier pour une fois !

Fermer

Commentaires (40)


Combinez ça avec un corps de message qui contient un lien avec des caractères unicode pris parmi ceux qui ressemblent fortement à certains caractères ASCII, bingo


On va de nouveau avoir les mails Bill Gates <img data-src=" />


Tout ça pour nous montrer que Guénaël reçoit des e-mails de Trump, quelle immaturité <img data-src=" />


Sous Thunderbird, si je clique sur ‘Afficher la source’ du mail je vois bien :

&nbsp;

From: “=?utf-8?b?cG90dXNAd2hpdGVob3VzZS5nb3Y=?==?utf-8?Q?=0A=00?=” &lt;=?utf-8?b?cG90dXNAd2hpdGVob3VzZS5nb3Y=?==?utf-8?Q?=0A=00?=@mailsploit.com&gt;



Donc ça doit pas être compliqué d’afficher la vraie source.

Quelqu’un sait si Thunderbird se bouge sur ce point ?



Edit: ah super dans le tableau fournit sur son site, c’est inscrit “won’t fix”…


Ca me rappelle quand je faisais ça via Telnet, pour faire flipper les collègues en leur envoyant des mails d’insultes qui venaient du patron…. <img data-src=" />


Oui, c’est regrettable… Peut-être y a-t-il moyen en modifiant un paramètre ou via une extension ?








Ricard a écrit :



Ca me rappelle quand je faisais ça via Telnet, pour faire flipper les collègues en leur envoyant des mails d’insultes qui venaient du patron…. <img data-src=" />





voila, j’allais dire que quand j’étais étudiant (début des années 2000), j’avais un petit soft pour envoyer des mails avec des adresses bidon et un pote savait également le faire par Telnet comme tu dis <img data-src=" />



ça nous rajeunit pas <img data-src=" />



Cela dit, je suppose que le cas présent ne repose pas sur le même principe, si ?



Marrant ! Sur windows phone c’est corrigé il semble (outlook sur windows phone)



il met l’adresse entre “ ” et quand tu clique tu retrouve l’adresse de mailsploit en clair, [email protected]


Oui c’est ce que je me dis, doit bien y avoir quelqu’un capable de faire un petit plugin qui rajoute une ligne dans l’entête…



Après j’aimerais bien comprendre pourquoi ils ne veulent pas régler ce point, ils ont peut être une raison ? et la connaître permettrait d’en discuter, mais j’ai absolument rien trouvé sur le sujet (pas vue d’issue sur github non plus).


Sur le site, il est noté :



Two vendors (Mozilla and Opera) said they won’t fix the bug (they consider it to be a server-side problem) (…)



Je ne vois pas en quoi c’est un problème du côté du serveur, alors que le problème se situe clairement dans l’affichage de l’adresse de l’expéditeur <img data-src=" />




Pour ProtonMail, il ne s’agit pas d’une faille de sécurité, mais bien un problème d’affichage exacerbé sur mobile. La bonne pratique y est d’afficher le nom de l’expéditeur, sans l’adresse. Les spammeurs mettent fréquemment quelque chose de faux en nom d’utilisateur, comme PayPal, pour tromper l’utilisateur. Heureusement, nous avons beaucoup de moyens de détecter les spammeurs, et généralement les messages sont placés en Indésirables » rappelle Andy Yen, fondateur du service.



alors là j’hallucine un petit peu, Yen joue sur les mots.

Il ne s’agit, effectivement, pas d’une faille de sécu techniquement parlant.

Mais c’est légèrement abuser que de prétendre qu’il n’y a “pas de faille”, et de parler des spammeurs (lol, ça fait combien de temps qu’on n’avait plus entendu parler de spam? sérieux?).

le danger (et il le sait très bien), c’est l’exploitation de ce bug dans une campagne de phishing, pas pour du spam. léger foutage de gueule de la part de protonmail sur ce coup.



à part ça on voit une fois encore que Google est quand même plutôt pas mal niveau sécu.


Pour info, Roundcube n’est pas affecté (testé avec la 1.0.5), mais BlueMail sur Android est affecté par les variations 5 et 6


Je n’arrive pas à reproduire le problème sur Outlook 2016 alors qu’il est affiché en non résolu: J’obtiens le même résultat que sur Gmail.


Mozilla me déçoit pas mal là <img data-src=" />


blat…



Pareil, qu’est ce que j’ai pu m’amuser avec çà <img data-src=" />


Thunderbird est maintenu par la communauté, ceci explique cela.



J’ignore comment Thunderbird va gérer le passage à quantum et aux webextensions


MailDrop a l’air affecté plus ou moins par plusieurs variations. bizarrement, en mettant à jour, le bug est encore plus caché par les changements visuels entre la version 1.9 et la version 1.11.

sur la dernière version, il faut afficher l’info bulle pour voir le problème avec certaines adresses là où le bug était évident en version 1.9.



Je voulais pas trop mettre RoundCube sur mon serveur car un poil lourd pour du mail auto-hébergé pour max 5 adresses mail dont une seul vraiment utilisée quotidiennement…



Est ce qu’il y a d’autres client web qui ont été testé? (Zimbra, SquirrelMail… )


J’avais été très déçu de voir que dans Thunderbird je devais passer par une extension pour afficher une colonne avec l’adresse de l’expéditeur (et pas seulement le nom qu’il a spécifié de son côté).

Je ne comprends pas que ça paraisse normal d’afficher “Alfred Dupont” plutôt que alfred.dupont@achiésurleplafond.com…



&nbsp;De toute façon les clients mails semblent disparaître, on m’a regardé comme un hurluberlu quand j’ai dit au boulot que j’utilisais Thunderbird plutôt que tout rapatrier sur un compte gmail <img data-src=" />


Le fait de dire que c’est une “bonne pratique” aussi… Non ce n’en est pas une, c’est l’usage, éventuellement une guideline, mais on peut quand même afficher l’adresse par sécurité


Tu utilises quelle extension ?


Bon, contrairement au M2 d’Opera 12, mon futur nouveau client mail n’a pas l’air d’être vulnérable à ce genre de p’tite filouterie&nbsp;<img data-src=" />


J’ai revu ce passage. Andy Yen parle effectivement de “convention”, ce que j’ai repris (hors citation) par bonne pratique, “habitude” est effectivement plus juste.&nbsp;<img data-src=" />



Pour le reste, PM considère effectivement plus la question comme un problème d’interface que de sécurité, dont Andy Yen n’avait pas été prévenu avant que je ne lui en parle (et qu’il se renseigne en interne).


Dans le tableau il y a marqué pour Thunderbird

&nbsp;

Mozilla Thunderbird ≤ 52.3.0 / SeaMonkey ≤ 2.4.8 MACOS WINDOWS



Or sur le site de Thunderbird ils sont à la 52.5.0

&nbsp;Donc est-ce que Thunderbird est encore concerné ou pas ?

&nbsp;


Corrigé depuis le 1er septembre chez ProtonMail en tout cas, ça fait plaisir de voir de la réactivité.


La capture dans l’article vient de la version 52.5.0.


Merci Guénaël, ça change pas mal la compréhension du coup


il a techniquement raison, mais l’interface participe aussi de la sécurité générale d’une appli, particulièrement dans la lutte contre le phishing.


De souvenir (c’est sur mon pc perso) : Show address only

Je me demande si ça évite l’exploit de l’article, je pense pas








Soriatane a écrit :



J’ignore comment Thunderbird va gérer le passage à quantum et aux webextensions





Ce qui est sur c’est que pour firefox ça été géré avec les pieds de bout en bout… Mise à jours silencieuse, pas de warning au niveau des extensions… J’allume mon pc portable qui sert de media center, je lance firefox et HOP j’ai perdu mes 50 onglets de torrent… Tout ça parce que l’extension utilisé n’est plus mise à jours.



Si n’avait été prévenu quelques jours avant qu’une grosse mise à jours arrivait et que mon extension n’était plus compatible j’aurais pu sauvegarder mes onglet en bookmark ou alors bloquer les mise à jours de firefox…



D’ailleurs si quelqu’un à une solution parce que franchement j’ai pas envie de geeker la dessus j’ai pas que ça à faire. Enfin tout ça me rappelle pourquoi j’ai arrêté de bosser dans l’informatique, maj de marde !

&nbsp;





hellmut a écrit :



c’est l’exploitation de ce bug dans une campagne de phishing, pas pour du spam.





Le spam est une forme de phishing… De toute façon le gros problème du mail c’est qu’il y à aucune vérification de l’expéditeur et il existe un milliard de soft dans tous les langages pour envoyer des emails “anonymes”.









skankhunt42 a écrit :



…Le spam est une forme de phishing…





Tu m’étonnes. Le spam était du courrier non désiré et le phishing étant du courrier tentant d’obtenir des informations je penses qu’il y a inversion.



Merci&nbsp; <img data-src=" />








skankhunt42 a écrit :



D’ailleurs si quelqu’un à une solution parce que franchement j’ai pas envie de geeker la dessus j’ai pas que ça à faire. Enfin tout ça me rappelle pourquoi j’ai arrêté de bosser dans l’informatique, maj de marde !





[HS]

pour ne pas avoir les mises à jour automatiquement ?



Les 3 barres à droites &gt; Options.

Dans le premier onglet (Général) tu scrolles un peu et il y a le pavé “mises à jour” où tu peux passer en “vérifier l’existence de MàJ mais vous laisser décider de leur installation” (c’est sur “Installer automatiquement” par défaut, je pense.)



Je suis sur une 56.0.2 mais je suppose que c’est pareil au dessus…

[/HS]









skankhunt42 a écrit :



Ce qui est sur c’est que pour firefox ça été géré avec les pieds de bout en bout… Mise à jours silencieuse, pas de warning au niveau des extensions… J’allume mon pc portable qui sert de media center, je lance firefox et HOP j’ai perdu mes 50 onglets de torrent… Tout ça parce que l’extension utilisé n’est plus mise à jours.



Si n’avait été prévenu quelques jours avant qu’une grosse mise à jours arrivait et que mon extension n’était plus compatible j’aurais pu sauvegarder mes onglet en bookmark ou alors bloquer les mise à jours de firefox…



D’ailleurs si quelqu’un à une solution parce que franchement j’ai pas envie de geeker la dessus j’ai pas que ça à faire. Enfin tout ça me rappelle pourquoi j’ai arrêté de bosser dans l’informatique, maj de marde !







Ouais ca ne fait que un an que Mozilla communique dessus, que pas mal de personne en parlait y compris ici, que dans la liste des modules il y avait de gros panneaux “OBSOLÈTE” à coté des extensions non compatibles webextension… mais c’est de la faute à Mozilla !



+1

ça fait des mois que si on va dans l’onglet des modules complémentaires, c’est mis en gros que les extensions ne vont plus être compatibles.








CryoGen a écrit :



Ouais ca ne fait que un an que Mozilla communique dessus, que pas mal de personne en parlait y compris ici, que dans la liste des modules il y avait de gros panneaux “OBSOLÈTE” à coté des extensions non compatibles webextension… mais c’est de la faute à Mozilla !





Oui c’est de la faute à Mozilla… Parce que :



. Ça fait des mois que je ne suis pas allez dans la liste des modules

. Les news sur firefox ne m’intéressent pas vraiment

. J’en ai marre d’être un geek

. Il y à pas de vrai solution au problème.



Si je bloque les mise à jours pour conserver le module j’aurais des problèmes de sécurité, si j’update mon firefox je devrais dire au revoir au module et en installer un autre en trouvant comment migrer et ça sera fait à l’aveugle vu que pas de rollback possible.



La moindre des choses aurais été de balancer un énorme popup à l’ouverture de firefox et d’écrire en énorme ( dans quelques semaines votre module ne sera plus compatible, et voici la marche à suivre pour résoudre le problème ).



De toute façon c’est un problème récurant dans le dev modulaire c’est pour ça que j’ai laisser tomber… Ca pousse des mise à jours pas compatible, communique peu dessus, te force à faire un boulot supplémentaire non rémunérer…



Mais bon personellement je pense que mozilla aurais surtout du sortir un mode “compatible” avec la possibilité d’utiliser de vieux modules même si performances légèrement dégrédée. Ou alors d’installer une autre version à côté avec choix au lancement.



Parce que bon, la j’ai boot mon pc en mode “yolo” et je me retrouve avec un truc inutilisable… Et aucune solution facile bien sur ! Alors oui dans l’absolu je pourrais trouver une solution mais je répète “je n’ai pas que ça à faire”.

&nbsp;





Minikea a écrit :



+1 ça fait des mois que si on va dans l’onglet des modules complémentaires, c’est mis en gros que les extensions ne vont plus être compatibles.





Dans l’absolu du pire de la drogue : Ça faisait plusieurs mois que je n’avais pas allumé mon laptop. GG mozilla.



Cette mauvaise fois… “j’en ai marre d’être un geek” mais ton Firefox a des extensions et plein d’onglets “torrent” ?



J’aurai du savoir que ce n’était pas la peine de te répondre en fait…








CryoGen a écrit :



Cette mauvaise fois… “j’en ai marre d’être un geek” mais ton Firefox a des extensions et plein d’onglets “torrent” ? J’aurai du savoir que ce n’était pas la peine de te répondre en fait…





J’utilisais un module pour avoir des groupes d’onglet ( fonction native supprimée par mozilla ), avec un groupe principal, un groupe pour le torrent et un groupe pour le streaming ( yt / replay ) et un groupe pour le travail quand pas branché à la télévision ainsi qu’un autre groupe quand je fait une recherche sur un domaine précis.



A la base rien qu’utiliser cette méthode c’est déjà “faire le geek”… D’après mon entourage. Mais clairement oui, j’en ai ma claque de devoir geek à fond pour parer ce genre de conneries… C’est d’ailleurs pour ça qu’a la base je doit être geek. Sauf qu’ont est plus en 1990 quoi…

&nbsp;



Je reviens pour informer d’éventuels intéressés : l’extension Show Address Only pour Thunderbird permet de voir l’adresse d’origine dans la colonne qu’elle permet d’ajouter.

J’en reviens à un de mes autres commentaires, je trouve ça honteux que ça ne soit pas natif comme option. Cette technique est peut être “nouvelle” mais ça fait longtemps que les spams se masquent grâce au fait de pouvoir mettre ce qu’ils veulent dans le champ expéditeur.


Serein avec Claws Mail&nbsp;<img data-src=" />


Merci HerrFrance.

L’extension est en effet vieille, mais je confirme moi ça fonctionne aussi avec TB 52.5 sous Ubuntu 17.10.

Ça&nbsp;fait le job simplement. Tip top.