
Vous connaissez certainement le phishing qui consiste à envoyer des emails malveillants pour inciter les destinataires à réaliser des actions sensibles, comme renseigner leurs identifiants de connexion VPN sur une fausse page d’authentification par exemple.
Le smishing est quasiment identique, à ceci près que l’attaquant n’envoie non pas des emails, mais des SMS, d’où le nom de smishing. Essentiellement, le smishing est ni plus ni moins que du phishing par SMS.
Globalement, le smishing est une technique d’ingénierie sociale qui, pour rappel, utilise un prétexte pour influencer ses victimes et les pousser à l’action, et ce via le canal SMS. Par ailleurs, le phishing par SMS ou par email, peut être utilisé pour des arnaques « en masse » ou des attaques plus ciblées comme nous le verrons dans la suite de l’article.
Plan détaillé de l’article :
Avant de détailler un cas concret de campagne de smishing en boite grise réalisé dans le cadre d’un pentest d’ingénierie sociale, revenons sur les quelques éléments devant être pris en compte pour identifier un SMS malveillant.
Dans la majorité des attaques de phishing par SMS, le numéro de téléphone de l’expéditeur est totalement inconnu du destinataire, ce qui devrait suffire à tirer la sonnette d’alarme.
L’indicatif téléphonique – par exemple +33 pour la France, +1 pour les États-Unis et le Canada, ou encore +258 pour le Mozambique – peut être plus ou moins suspect.
Pour donner plus de poids aux SMS, l’attaquant peut tenter d’usurper un numéro familier de sa victime. Par exemple, il existe des plateformes permettant d’envoyer des SMS ou même de placer des appels depuis un numéro virtuel. L’attaquant peut ainsi choisir son numéro avant de lancer l’attaque.
Il va sans dire qu’un SMS est déjà plus crédible s’il semble venir d’un numéro local – c’est-à-dire géographiquement proche de nous, du même pays, voire de la même ville. Avec un peu de chance, l’attaquant peut même usurper un numéro proche d’un numéro connu de sa victime – avec seulement quelques chiffres de différence.
Usurper une marque familière est une autre alternative intéressante pour les attaquants. Il est par exemple fréquent de recevoir un SMS légitime de sa propre banque avec le nom de l’organisme affiché (par exemple « LCL ») à la place d’un numéro de téléphone.
L’attaquant peut également choisir d’envoyer les SMS en utilisant un nom plutôt qu’un numéro classique. Selon la nationalité des destinataires, certaines restrictions peuvent néanmoins s’appliquer, certains noms pouvant notamment être réservés dans certains pays pour éviter qu’ils ne soient usurpés. Alerte spoiler : ce n’est pas le cas partout !
Ce qu’il faut retenir :
En résumé, il ne faut pas se baser uniquement sur l’identité de l’expéditeur – que ce soit un nom de marque ou un numéro de téléphone – pour déterminer si un SMS est légitime ou non.
Outre l’identité de l’expéditeur, qui est naturellement le premier élément auquel nous prêtons attention quand nous recevons un SMS, certains indices dans le corps du message lui-même doivent nous mettre en garde.
La notion de prétexte n’est pas spécifique au Smishing, mais est un élément crucial de toute tentative d’ingénierie sociale, car c’est ce qui incite la victime à réaliser l’action sensible souhaitée par l’attaquant.
Par exemple, dans une attaque ciblée visant les employés d’une entreprise, l’attaquant peut prétexter une mise à jour VPN pour inciter ces derniers à renseigner leurs identifiants sur une fausse page de connexion sous son contrôle.
Pour remplir son objectif et pousser les utilisateurs à l’action, le prétexte doit utiliser différents leviers psychologiques pour tromper leur vigilance. Il s’appuie souvent sur une notion d’urgence (par exemple « veuillez mettre à jour sous 48h sous peine de désactivation du compte »), de curiosité (« untel vient de partager le dossier suivant avec vous »), de familiarité (notamment si l’attaquant usurpe un expéditeur familier), voire d’autorité (si l’expéditeur présumé se trouve être le manager ou le service IT de l’entreprise).
Dans le cas du Smishing, l’attaquant délivre son prétexte en envoyant un SMS à ses victimes. Le contenu du message en lui-même contient la demande, ce qui constitue l’essentiel du prétexte, mais d’autres éléments rentrent également en ligne de compte dans l’élaboration d’un bon prétexte (par exemple l’identité de l’expéditeur, la période à laquelle le SMS est envoyé, etc.).
Que ce soit pour distribuer un malware via une plateforme en ligne ou pour voler des identifiants de connexion, l’attaquant doit en général inclure, dans le corps du SMS, au moins un lien vers un domaine sous son contrôle. Aussi bien ficelé que soit le prétexte, bien analyser ce lien – ce qui prend quelques minutes tout au plus – peut faire toute la différence.
Pour analyser un lien, il faut tout d’abord comprendre la notion de nom de domaine et les différents niveaux qui le composent.
Prenons par exemple, le sous-domaine (légitime) login.microsoftonline.com. Il se décompose de la manière suivante :
Comme nous l’avons déjà dit, un lien de phishing pointe (la plupart du temps) sur un domaine malveillant – c’est-à-dire sur un domaine qui n’est pas le domaine légitime (par exemple oultook.com au lieu de outlook.com).
Outre l’inversion, le remplacement ou l’omission de caractères dans le nom de domaine légitime (une technique appelée « typosquatting »), les attaquants utilisent quelques autres astuces pour passer sous le radar.
Dans le même esprit, le « combosquatting » est la combinaison d’un mot clé et du domaine légitime (par exemple accounts–google.com au lieu de accounts.google.com). Modifier le TLD est une autre possibilité (par exemple gmail.co au lieu de gmail.com).
Dans tous les cas, il faut vérifier si le nom de domaine (au sens « TLD + 1 ») est légitime ou non. Petit test : que pensez-vous par exemple de paypal.securelogin.com ?
Ce qu’il faut retenir :
Maintenant que nous avons passé en revue les indices à relever pour identifier une tentative de smishing, nous allons les mettre en pratique à travers un scénario d’attaque, inspiré d’un de nos audits.
Dans cet exemple, nous nous placerons en condition « boîte grise », à savoir que les numéros de téléphone professionnels des collaborateurs à cibler nous auront été fournis en amont par notre client, disons la société Koogivi.
À noter qu’en condition « boîte noire » – c’est-à-dire dans les conditions d’un attaquant externe n’ayant aucune information sur l’entreprise – la recherche des numéros à cibler nécessite une étape intermédiaire plus ou moins longue, ces derniers pouvant être potentiellement divulgués de plusieurs manières. Si une plateforme en ligne est piratée par exemple – ce qui arrive fréquemment – il n’est pas rare de retrouver des informations de contact (dont des numéros de portable) dans les fuites de données rendues publiques ou vendues sur le dark web. Plus simplement, les profils LinkedIn ou les signatures d’email peuvent contenir ce type d’information.
La phase de reconnaissance est une première étape importante de nos audits et plus généralement de toute cyberattaque, car elle permet d’inventorier les actifs exposés d’une entreprise et d’identifier les plus critiques. Elle peut également permettre d’identifier certains services externes qui sont également des portes d’entrée potentielles.
Par exemple, supposons que durant notre phase de reconnaissance, nous remarquions que l’entreprise Koogivi utilise Gandi comme serveur de messagerie (information révélée par les enregistrements MX par exemple). La page de connexion à la webmail est la suivante :

Il va sans dire que la webmail est un point d’entrée intéressant pour un attaquant, car y accéder permet de mettre la main sur des informations potentiellement sensibles – sans parler du fait que les mots de passe de la webmail peuvent donner accès à d’autres plateformes internes (ou externes) s’ils sont réutilisés ailleurs…
Une fois la plateforme cible identifiée, la prochaine étape consiste à cloner la page de connexion. Nous ne rentrerons pas (trop) dans les détails techniques pour cette fois, mais sachez que certaines techniques permettent aux attaquants de faire interagir leurs victimes, non pas avec un clone classique, mais avec la véritable application, contournant ainsi la plupart des méthodes de double authentification.
Le principe pour l’attaquant est de se placer au milieu de l’interaction entre sa victime et l’application légitime (pour résumer : en position de « man-in-the-middle ») comme sur le schéma ci-dessous :

Comme vous l’aurez remarqué, le domaine malveillant (« combosquatté ») que nous avons choisi est webmail–gandi.net qui usurpe le sous-domaine légitime webmail.gandi.net qui héberge la page de connexion légitime. En proxifiant le trafic entre la victime et l’application légitime, l’attaquant peut récupérer les identifiants de connexion, y compris les codes de double authentification s’il y en a.
Une fois le serveur malveillant configuré, la fausse page de connexion se présente comme suit :

Et voilà ! Il ne nous reste plus qu’à envoyer les SMS en utilisant un prétexte pertinent et convaincant pour inciter les destinataires à se connecter à la fausse webmail.
En combinant tout ce que l’on vient de voir, voici à quoi l’attaque pourrait ressembler :

Le résultat est plutôt réaliste, mais ne nous laissons pas avoir si vite et passons en revue les quelques indices dont nous avons parlé dans cet article :
Pour finir, récapitulons les quelques règles d’hygiène anti-*ishing que nous venons de voir.
Rapide parenthèse : pourquoi « *-ishing » ? Parce que les bonnes pratiques qui vont suivre sont applicables à pratiquement tous les vecteurs d’ingénierie sociale – que ce soit du phishing par email, par SMS (donc plus précisément du Smishing), par Teams ou par la poste (et j’en passe). Fermer la parenthèse.
De manière générale, nos recommandations couvrent principalement deux axes : un volet de sensibilisation et un volet orienté technique.
Commençons par les bons réflexes auxquels tous les collaborateurs doivent être sensibilisés. Tout d’abord, pour détecter les attaques de Smishing, il faut systématiquement prendre le temps d’analyser les indices clés, à savoir :
L’erreur est humaine et il suffit que le prétexte résonne avec ce que la destinataire attend ou est en train de faire pour que l’attaque réussisse. Vous ne me croirez peut-être pas, mais tout le monde peut se faire avoir et je dirais même plus : adopter cet état d’esprit est un des moyens les plus sûrs de rester vigilant et de ne pas pécher par excès de confiance. Dans tous les cas, il faut également sensibiliser les collaborateurs aux bons réflexes pour réagir en cas d’attaque :
Maintenant que nous avons vu les éléments de sensibilisation à destination des collaborateurs, passons aux mesures techniques permettant de réduire le risque de smishing :

Comme on peut le voir, le gestionnaire de mots de passe supporte également l’authentification multifacteur (le code 2FA sera généré par 1Password dans ce cas). Pour parler plus spécifiquement du smishing, la mise en place d’un gestionnaire de mots de passe sur mobile dépend des accès souhaités. Il est peut-être préférable que certaines applications ne soient accessibles que depuis un ordinateur par exemple.
La distinction entre téléphone professionnel et personnel doit être également prise en compte. Il n’est pas souhaitable que les mots de passe d’applications sensibles soient stockés sur un appareil personnel, sans doute moins sécurisé qu’un appareil à usage professionnel.
Pour conclure, certains bons réflexes doivent être adoptés par tous les collaborateurs dans un climat bienveillant. En parallèle, des mesures techniques permettent de limiter le risque de smishing et plus globalement de phishing.
Auteur : Benjamin BOUILHAC – Pentester @Vaadata