ingenierie sociale
Recherche sur les menaces

Des attaquants combinent des techniques d’ingénierie sociale pour générer une chaîne d’attaque crédible et complexe

Un appel téléphonique qui utilise l'ingénierie sociale pour donner une certaine authenticité à l’email malveillant de l'attaquant.

Lors d’une investigation post-mortem menée sur un ordinateur infecté, Sophos X-Ops a découvert que l’attaque avait débuté par un appel téléphonique apparemment anodin. La personne ayant passé l’appel a incité un employé d’une entreprise basée en Suisse à lancer une chaîne d’attaque complexe qui a compromis l’ordinateur de ce dernier.

Les analystes de l’équipe Sophos Incident Response ont découvert que les attaquants auraient à priori cibler personnellement le destinataire de l’appel et mis en œuvre une chaîne d’attaque par ingénierie sociale assez élaborée qui aurait permis aux cybercriminels de prendre, brièvement, le contrôle de l’ordinateur de la victime, avant que celle-ci ne débranche purement et simplement la prise (Ethernet) de l’ordinateur compromis. L’employé ciblé a senti que quelque chose n’allait pas et a déconnecté l’ordinateur infecté du réseau, mais pas avant que la charge malveillante ne soit déjà à l’œuvre.

La personne ayant passé l’appel, et dont la voix ressemblait à celle d’un homme d’âge moyen, a dit à l’employé qu’il était chauffeur-livreur avec un colis urgent destiné à l’un des sites de l’entreprise, mais que personne n’était là pour le réceptionner : il a donc demandé qu’on lui donne une nouvelle adresse de livraison pour accéder aux bureaux de l’employé. Afin de livrer à nouveau le colis, a-t-il poursuivi, l’employé devait ensuite lire à haute voix un code que le transporteur allait lui envoyer par email.

Alors que la personne était toujours au téléphone avec l’employé, ce dernier a effectivement reçu un email, à priori provenant du transporteur qui employait le ‘livreur‘ en question. L’email ci-dessous indiquait qu’un fichier PDF joint au message contenait le code dont le livreur avait besoin pour pouvoir livrer le colis dans les locaux de l’entreprise.

ingenierie sociale

De l’appel téléphonique à la charge virale, cette attaque comporte plusieurs niveaux d’ingénierie sociale

Le message de phishing intègre des éléments graphiques

Le corps du message indique que “vos documents ont été envoyés par un service de livraison qui n’a pas eu de contact avec” la destination. Il poursuit en indiquant que, pour des raisons de sécurité, la livraison n’est possible que si la cible fournit le code correct à l’expéditeur, et que cette dernière ne peut obtenir le code qu’à partir du PDF ci-joint.

ingenierie sociale

Le message reçu en français

L’email indique également que “l’envoi” est un article qui a un poids proche de celui d’une lettre et qu’il a une priorité “élevée (agences gouvernementales)”.

Bien que le message électronique ait été rédigé en français, des indices techniques indiquent toutefois que les attaquants savaient que la cible suisse pouvait être germanophone. Les deux langues (française et allemande) sont considérées comme des langues “officielles” en Suisse. Des commentaires en allemand sont intégrés dans le code HTML (“Inhalt mit Bild links“, qui se traduit soit par “contenu avec des liens image” soit par “contenu avec image à gauche”) qui constituait le corps de l’email, lequel a été envoyé à une personne utilisant Outlook comme client de messagerie.

ingenierie sociale

Le code source de l’email fait référence au “contenu avec des liens image”

Le curieux message électronique a déclenché la chaîne d’attaque qui a suivi, mais pas comme vous pourriez l’imaginer. Il n’y avait aucune pièce jointe PDF intégrée au message, même s’il semblait bien y en avoir une au départ. Vous trouverez ci-dessous ce que la cible a vu dans Outlook.

ingenierie sociale

L’email avec sa “pièce jointe PDF”…

L’employé a vu ce qui ressemblait à un message Outlook avec une pièce jointe au format PDF, mais il s’agissait en fait d’un graphisme intégré dans le corps du message, conçu pour ressembler à un message Outlook avec une pièce jointe à l’email : La “pièce jointe” et l’email qui l’accompagnait n’étaient en fait que des images statiques intégrées dans le corps du message.

Ainsi, lorsque l’employé a cliqué à l’endroit où il pensait trouver une pièce jointe dans l’email (ou bien en cliquant ailleurs), Outlook était redirigé vers un site Web.

ingenierie sociale

… n’est pas du tout une pièce jointe, comme le montre l’info-bulle.

Ce mécanisme d’attaque a semblé inhabituellement complexe à nos analystes : en effet, l’appel téléphonique incitant la cible à cliquer sur l’email ; l’email spécialement conçu sans texte dans le corps ; le site Web enregistré par l’attaquant avec un nom de domaine personnalisé associé au mot “livraison” était utilisé pour héberger un fichier à télécharger, mais cette complexité semblait avoir un but.

D’une part, le fait qu’il n’y ait pas de pièce jointe PDF donne un avantage à l’attaquant, car de nombreux systèmes de messagerie traitent les messages contenant de telles pièces jointes avec une suspicion (justifiée) lorsqu’ils proviennent de sources inhabituelles et retarderaient alors la réception ou filtreraient automatiquement les emails avec PDF ou autres pièces jointes au format Office.

D’autre part, les attaquants n’ont pas non plus établi de lien direct vers le site Web qu’ils contrôlaient et qui hébergeait du code malveillant. Au lieu de cela, ils ont trouvé un script de redirection de page Web, hébergé sur un site Web inoffensif, à savoir un site peu susceptible d’éveiller des soupçons, et lié à ce dernier, en utilisant le script de redirection pour diriger le navigateur de l’employé vers le site Web malveillant.

La capture d’écran suivante montre le code source HTML de l’email, notamment le lien vers le site Web inoffensif (surligné en vert) et comment sa redirection a envoyé les utilisateurs vers le site Web malveillant (surligné en rouge).

ingenierie sociale

La source de l’email, avec le site Web inoffensif (partiellement obfusqué, en vert) et sa redirection vers le site Web malveillant (en rouge)

Cette technique de redirection semble être conçue comme une méthode permettant de contourner les fonctionnalités de vérification d’URL. Certains filtres anti-spam ou pare-feu qui bloquent les sites Web malveillants peuvent vérifier la réputation de l’URL du site inoffensif hébergeant le script de redirection, au lieu du domaine de destination, safedelivery-company.com, enregistré et exploité par les attaquants et utilisé pour héberger des malwares (ce même attaquant semble également avoir utilisé le domaine aircourier-company.com à un moment donné par le passé).

Les informations manquantes laissent des indices intrigants concernant l’attaque

Comme nous avons été impliqués après l’attaque et que les attaquants ont rapidement fait disparaître les traces de leur passage, nous n’avions que des informations limitées sur les évènements qui s’étaient déroulés ensuite.

Nous savons par exemple que les attaquants ont réussi à convaincre l’employé de cliquer sur la “pièce jointe” qui ouvrait un lien au niveau de son navigateur. Le lien semblait avoir transmis un malware qui s’était exécuté sur l’ordinateur, car moins d’une minute après avoir consulté l’email, les attaquants avaient commencé à exécuter des commandes sur l’ordinateur de l’employé.

Les logs récupérés sur la machine compromise indiquaient, par exemple, qu’un employé avait cliqué sur le lien malveillant contenu dans l’email à 11h16, heure locale. Ils ont téléchargé un fichier exécutable nommé sendung_N03012_16092022.com et ont apparemment double-cliqué dessus. Suite à cette action, un autre programme nommé SECURE DELIVERY SERVICE.EXE s’est exécuté sur l’ordinateur.

Au moment où nous avons effectué l’analyse, aucun des deux fichiers n’était présent au niveau du stockage de l’ordinateur infecté et les sites Web sur lesquels les fichiers étaient hébergés ne produisaient plus les fichiers demandés. En fait, les sites Web hébergeaient une page avec un message indiquant la mention “Bientôt de retour” (We are coming soon) et un compte à rebours qui occupait la majeure partie de l’espace de la page.

ingenierie sociale

Lorsque notre équipe IR est intervenue, le site problématique en question ressemblait à ce modèle ReactJS inoffensif

En fait, il s’agit d’un comportement observé dans d’autres incidents de malware. Le compte à rebours se réinitialisait avec une valeur aléatoire au format jours/heures/minutes à chaque fois que vous rechargiez la page. Le code qui exécutait cette page était un modèle ReactJS appelé Deadline. Les personnes qui l’utilisaient n’ont même pas pris la peine de modifier le bloc de texte standard ‘Lorem ipsum’ du modèle en question.

Scripts malveillants récupérés qui étaient cachés dans le fichier de licence du logiciel

Au cours des 15 minutes ayant suivi l’attaque, l’attaquant a téléchargé et exécuté plusieurs scripts PowerShell, mais il les avait supprimés au moment où nos analystes étaient enfin en mesure d’examiner les machines affectées quelques jours plus tard.

En recherchant les données que les attaquants auraient pu modifier ou consulter, nous avons trouvé des traces de script, mais nous avons également découvert qu’ils avaient utilisé une méthode inhabituelle pour les dissimuler à la vue de tous.

Parmi les fichiers que les attaquants n’ont pas supprimés se trouvait un dossier contenant l’éditeur de texte Notepad++. Le projet open source Notepad++ donne aux utilisateurs le choix de télécharger soit un exécutable d’installation, soit une version “portable” dans une archive zip contenant tous les fichiers nécessaires à l’exécution du programme. Nous avons trouvé ce qui semblait être une installation “portable” modifiée sur l’ordinateur concerné. L’employé et l’équipe IT de l’entreprise ont confirmé qu’ils n’avaient pas utilisé et installé ce logiciel. Son apparition coïncidait donc avec l’attaque.

Le dossier contenait tout ce qui est normalement inclus avec le téléchargement officiel “portable”, mais avec quelques changements notables : l’exécutable Notepad++ et d’autres composants exécutables (notamment l’utilitaire de mise à jour automatique du programme) avaient été signés cryptographiquement à l’aide d’un certificat de signature désormais révoqué, initialement délivré à une entreprise appelée ‘Cloud Accountants Limited’, au lieu du certificat toujours valide délivré à la société Notepad++.

ingenierie sociale

Le logiciel Notepad++ légitime (à gauche) et la version abusée par les attaquants (à droite)

Nous avons également constaté que le dossier contenant le programme de mise à jour automatique dans le dossier malveillant “portable Notepad++” contenait 15 fichiers supplémentaires non inclus dans le zip d’installation portable légitime.

Ces fichiers supplémentaires comprenaient une copie renommée de la DLL légitime utilisée par Windows pour créer des tâches planifiées (Scheduled Tasks) ; une copie non signée de la bibliothèque cURL nommée libpurl.dll ; une version exécutable Windows de l’application Linux (au moins, dans ce cas-ci) potentiellement indésirable, Socat, que les développeurs décrivent comme “un relais pour les transferts de données bidirectionnels entre deux canaux de données indépendants” ; et les fichiers requis et indispensables pour ouvrir une connexion au réseau Tor, alias le “dark web”.

ingenierie sociale

La version compromise de Notepad++ comporte un certain nombre d’éléments supplémentaires indésirables

Comme de nombreux projets open source, Notepad++ est publié sous le système de licence logicielle publique GNU, qui exige que les développeurs incluent un fichier texte en clair avec les termes du contrat de licence. Notepad++ inclut généralement un fichier texte en clair nommé LICENSE. Nous avons également trouvé un fichier LICENSE sur cette installation, mais une personne avait ajouté au document un blob de données codées en base64. La copie normale de LICENSE ne fait que 8 Ko ; ce fichier LICENCE pesait 59 Ko de plus que la version originale.

ingenierie sociale

Une blob en base64, inutilisable en l’état, présent dans le fichier LICENCE

Une fois décodé, ce blob de données en base64 génère un script PowerShell composé de trois commandes. Chaque commande décode un autre blob de données codées en base64 et utilise la commande Invoke-Expression pour l’exécuter.

ingenierie sociale

“Cadeaux” supplémentaires offerts par le blob en base64

Une fois décodés, les trois blobs en base64 se sont révélés être trois autres scripts PowerShell. Les premier et deuxième scripts ont été conçus pour installer un certificat CA racine (Certificate Authority Root) non fiable, respectivement, au niveau du magasin de certificats dans Windows et Firefox (si ce dernier était installé). NB : Firefox n’utilise pas le stockage des certificats Windows, mais possède le sien.

ingenierie sociale

Il insère d’abord un certificat dans le magasin de certificats de Windows, puis dans Firefox

Le certificat semble avoir été conçu pour imiter celui délivré par l’autorité de certification légitime Comodo, mais n’a pas été délivré par cette dernière.

ingenierie sociale

Il ne s’agit pas d’un certificat CA (Certificate Authority) émis par Comodo.

Le troisième script configure une tâche planifiée qui exploite deux programmes du dossier de mise à jour Notepad++, à savoir GUP.exe et GUPP.exe, pour effectuer des ‘phone home’, une fois par jour à minuit (heure locale), au niveau de ​​l’une des cinq adresses .onion, choisies au hasard, à partir d’une liste hardcodée également intégrée dans le script.

ingenierie sociale

Des ‘phone home’ (lancés vers l’une des cinq ‘homes’)

En examinant les logs à la recherche de preuves, nous avons trouvé un quatrième script PowerShell (nommé ms.ps1) que les attaquants n’ont pas réussi à supprimer. Ce script est un outil global de collecte de données conçu pour récupérer les emplacements des données sensibles et, éventuellement, les stocker dans C:\ProgramFiles\matches.txt .

ingenierie sociale

Un aperçu de ms.ps1

Le script recherche les informations de configuration du système ; les données de logiciels de comptabilité (telles que les fichiers QuickBooks) ; les portefeuilles de mots de passe et de cryptomonnaie ; ainsi que les cookies, l’historique de navigation et la liste des plugins de navigateur installés sur toutes les principales plateformes de navigateur Web : Firefox, Opera, Edge, Brave, Chrome, Chromium, Vivaldi et le navigateur QQ de Tencent (principalement utilisé en Chine).

Le script contient également une liste intégrée de 53 sites Web. Il utilise cette liste pour parcourir l’historique du navigateur et les données de cookie récupérés et ajoute au fichier matches.txt des informations sur les sites Web que le navigateur a visités par le passé. La cible étant basée en Suisse, cette localisation pourrait expliquer pourquoi la liste de sites Web comprenait le site de vente en ligne suisse Tutti ainsi que 24 sites Web associés à des sociétés de cryptomonnaie.

ingenierie sociale

Banques, sites de crypto et divers sites de vente en ligne : les attaquants veulent connaître les diverses activités de la cible

Le vol de cookie est une tendance croissante avec les malwares voleurs d’informations, car certains cookies de navigateur peuvent être aussi utiles pour se connecter à un site Web sécurisé qu’un simple mot de passe.

Ce qui est moins clair, c’est pourquoi ce script inclut 25 domaines utilisés par les banques de la région Australie et Nouvelle-Zélande. Cependant, lors de leurs recherches sur cet incident, les analystes de l’équipe Managed Detection and Response ont signalé des notes d’incident concernant une attaque contre un client australien qu’ils ont investiguée en juin 2022.

Lors de l’incident précédent, la cible de l’attaque avait également signalé qu’un ordinateur avait visité des URL sur deux des mêmes domaines malveillants utilisés dans cet incident, aircourier-company.com et carpoollk.com, et les experts en réponse ont trouvé plusieurs scripts PowerShell similaires, dont un ayant extrait des informations de l’ordinateur, et un autre ayant configuré une tâche planifiée pour appeler la même version, avec un certificat révoqué, de l’utilitaire de mise à jour Notepad++, découverte lors de cet incident.

Programmes d’installation trouvés dans les référentiels publics

En recherchant dans les outils d’intelligence open source des fichiers liés à la collecte de fichiers malveillants dans le répertoire Notepad++, nous avons trouvé plusieurs fichiers (soit des archives zip, soit des applications d’installation) qui contenaient un répertoire de programme Notepad++ pratiquement identique avec le même programme de mise à jour malveillant modifié et le même fichier LICENCE.

L’un des fichiers uploadés sur VirusTotal était une application Electron, essentiellement, un ensemble d’instructions JavaScript conçues pour s’exécuter dans une version allégée du navigateur Chromium. Non seulement le nom de fichier de cette application (delivery_N03041_07042022.exe) était très similaire à celui enregistré dans les logs de cet incident (sendung_N03012_16092022.com) et à celui que nous avons découvert par hasard lors d’un troisième incident (envoi_N01670_24022022), mais le répertoire temporaire créé pour stocker ses fichiers en cours d’exécution incluait le même répertoire du programme Notepad++ dans son intégralité, que nous avons découvert sur l’ordinateur de la cible.

ingenierie sociale

Cette approche semble familière

D’un point de vue thématique, les noms sont suffisamment proches pour commencer à dégager une tendance. La cible australienne en a reçu un dont le nom commençait par le mot “livraison“, la cible située dans une partie du monde germanophone en a reçu un nommé “sendung” (“livraison”) et une cible francophone en a reçu un nommé “envoi” (“expédition”). Les noms de fichier incluaient également une date qui suivait le même format JJMMAAAA.

ingenierie sociale

L’application malveillante de suivi de livraison Electron

Une fois exécutée, l’application Electron décompresse les fichiers du navigateur Chromium dans un répertoire temporaire et lance un programme appelé Universe Parcel Service.exe, qui est simplement un exécutable Chromium renommé. L’application affiche une fenêtre en plein écran centrée autour d’un bouton intitulé “Afficher les informations” avec le texte “Cliquez sur le bouton pour voir les détails de suivi” au bas de la page.

Lors de sa première exécution, l’application se connecte (en arrière-plan) à un service Web qui renvoie l’adresse IP publique de l’ordinateur exécutant l’application, puis tente de se connecter à l’URL d’un fichier hébergé dans Google Drive. Alors que nous avons capturé la connexion au moment où elle était véritablement active, le code hébergé dans le Cloud Google a apparemment été désactivé et n’est plus fonctionnel.

ingenierie sociale

L’application Electron établissant une communication sortante vers deux adresses IP

En cliquant sur le bouton “Afficher les informations” au niveau de l’application, cette dernière s’arrête quelques secondes, puis affiche à l’écran un code qui est censé ressembler à un numéro de suivi de colis. Le numéro est généré aléatoirement à chaque fois que vous appuyez sur le bouton.

ingenierie sociale

Le code de suivi en question

Pendant ce temps, en arrière-plan, les scripts intégrés dans le fichier LICENSE Notepad++ ont commencé à s’exécuter et le script a appelé l’utilitaire Socat pour ouvrir plusieurs connexions Tor, lesquelles ‘écoutaient’ une large gamme de numéros de port importants concernant le trafic entrant.

ingenierie sociale

Socat fait méthodiquement son travail, ouvrant les connexions Tor

Les exécutables Notepad++ de l’archive sur VirusTotal ont été signés avec le même certificat révoqué utilisé pour signer les exécutables que nous avons récupérés lors de l’investigation post-mortem. Après un examen plus approfondi, le contenu des scripts décodés provenant du fichier LICENSE modifié et trouvé dans l’échantillon VirusTotal, ressemblait beaucoup à celui que nous avons récupéré sur l’ordinateur infecté. Seuls les noms de variable et les adresses du dark web .onion ont été modifiés ; les scripts contenaient par ailleurs des instructions identiques.

ingenierie sociale

À notre grande surprise : des scripts étrangement similaires

En particulier, ces scripts provenant de sources extérieures contenaient le même faux certificat CA Comodo trouvé et intégré dans les scripts de la machine que nous avons examinée.

La surveillance peut être l’une des raisons pour lesquelles un attaquant voudrait installer un certificat CA dans le stockage des certificats système : cette technique permet à un attaquant d’effectuer une attaque de type machine-in-the-middle et de capturer le contenu déchiffré d’une session de navigation HTTPS.

Conseils pour tous ceux qui décrochent encore leur téléphone

L’employé, observant en temps réel ce qui se passait sur son ordinateur, a pris l’initiative et a physiquement déconnecté la machine concernée du réseau en débranchant le câble Ethernet. Cette action a laissé la machine dans un état ‘infecté’ mais incapable de contacter ou d’être atteinte par les attaquants, ce qui s’est avéré être une mesure potentiellement salvatrice pour l’entreprise, stoppant ainsi la progression de l’attaque à mi-parcours. L’employé qui a pris cette décision mérite d’être félicité pour sa rapidité de réflexion, car l’attaque aurait pu avoir de terribles conséquences.

Les éléments de cette attaque étaient bien planifiés et coordonnés à l’avance, impliquant un opérateur humain passant un appel téléphonique et éventuellement une ou plusieurs autres personnes créant une variété de scripts Windows Scripting Host et PowerShell malveillants, ainsi que l’application Electron qui les diffusait et les exécutait. Il convient de noter que les appels téléphoniques vocaux peuvent faire partie de l’aspect ingénierie sociale d’une attaque et, dans ce cas, ont été utilisés efficacement par les acteurs malveillants.

Nous conseillons souvent de ne pas ouvrir les liens ou les pièces jointes envoyés par email par des personnes inconnues ; nous n’incitons généralement pas les employés à se méfier de ces mêmes emails lorsqu’une personne vous contacte par téléphone pour vous demander de guetter l’arrivée d’un message. Mais si vous ne connaissez pas la personne qui vous appelle, il est clair que traiter de tels appels avec suspicion est une bonne mesure défensive.

Remerciements et détections

Sophos X-Ops souhaite remercier les analystes experts en réponse aux incidents Aaron Short, Bill Kearney et Ollie Jones pour les travaux menés sur cet incident. Les scripts PowerShell comme ceux découverts dans cet incident déclencheront une détection sous la désignation Troj/PSDL-OM ou Troj/PS-KH dans les produits Sophos Endpoint. Les indicateurs de compromission concernant les fichiers de cette investigation sont listés sur le GitHub des SophosLabs.

Billet inspiré de Attacker combines phone, email lures into believable, complex attack chain, sur le Blog Sophos.