Publicité
Rate this post


npm

Un nouveau malware npm a été surpris en train de voler les informations d’identification du navigateur Web Google Chrome en utilisant des outils de récupération de mot de passe légitimes sur les systèmes Windows.

De plus, ce malware écoute les connexions entrantes du serveur C2 de l’attaquant et fournit des fonctionnalités avancées, telles que l’accès à l’écran et à la caméra, la liste des répertoires, la recherche de fichiers, le téléchargement de fichiers et l’exécution de commandes shell.

Comme l’a vu BleepingComputer, les packages identifiés se trouvent dans le registre npm depuis 2018 et ont enregistré plus de 2 000 téléchargements au total au moment de la rédaction.

Utilise l’utilitaire ChromePass pour « récupérer » les mots de passe Chrome

Aujourd’hui, les chercheurs de ReversingLabs ont divulgué leurs découvertes sur deux packages npm malveillants qui volent secrètement les mots de passe de votre navigateur Web Chrome.

Ces packages s’appellent :

  • nodejs_net_server – plus de 1 300 téléchargements au total
  • fichiertemptesttempest – plus de 800 téléchargements au total

Ces packages ont été découverts par le moteur d’analyse statique Titanium Platform de ReversingLabs qui employait apprentissage automatique algorithmes.

Mais, l’objectif principal du rapport est de nodejs_net_server qui contient la fonctionnalité de base des logiciels malveillants.

Le malware cible les machines Windows pour voler les informations d’identification des utilisateurs et met également en place une porte dérobée à distance persistante pour que l’attaquant mène des activités de surveillance.

Pour faciliter ses activités de vol d’informations d’identification, le logiciel malveillant, en particulier « nodejs_net_server », utilise le ChromePass utilitaire gratuit pour Windows.

ChromePass est un outil de récupération de mot de passe pour les systèmes Windows visant à extraire les mots de passe du navigateur Web Chrome de l’utilisateur :

Utilitaire ChromePass
Utilitaire de récupération de mot de passe ChromePass (NirSoft)

Cet utilitaire est emballé dans le package npm avec des noms cryptiques ou trompeurs, tels que a.exe.

Quoi qu’il en soit, ces exécutables ChromePass ont déjà été signalés par VirusTotal comme mal intentionné.

Le “nodejs_net_server” a eu 12 versions publiées à ce jour, la dernière 1.1.2 mesurant environ 40 Mo de taille non compressée.

Dans les versions ultérieures, cependant, le malware se lance TeamViewer.exe pour éviter de soulever des drapeaux rouges.

Abus des options de configuration npm pour gagner en persistance

La plupart des packages npm malveillants détectés jusqu’à présent reposent sur typosquattage ou alors confusion de dépendance d’infecter les développeurs.

Mais ce n’est pas le cas avec ces packages, et on ne sait pas encore comment ces packages ont réussi à obtenir autant de téléchargements.

npm nodejs_net_server
page de téléchargement nodejs_net_server sur le registre npm (Ordinateur sonore)

“Nous n’avons trouvé aucune cible de typosquattage évidente en analysant le nom du package.”

“Nous ne savons pas comment l’auteur avait l’intention d’inciter les utilisateurs à installer le package. Nous pouvons cependant voir l’activité de téléchargement sur la page des statistiques du package.”

“Nous avons contacté NPM pour retirer le package. Nous attendons toujours la réponse de leur équipe de sécurité”, a déclaré Tomislav Pericin, architecte logiciel en chef et co-fondateur de ReversingLabs, à BleepingComputer dans une interview par e-mail.

npm nous a répondu avec :

“Nous avons supprimé le package conformément à la politique d’utilisation acceptable de npm concernant les logiciels malveillants, comme indiqué dans son Termes Open Source“, a déclaré un porte-parole de GitHub à BleepingComputer.

Fait intéressant, dès que le package est installé par le développeur, il tente de gagner en persistance sur la machine Windows en abusant de l’option de configuration npm bien connue, “poubelle“.

L’option “bin” dans le fichier manifeste du package, package.json, vise à détourner le populaire package “jstest”, s’il est pré-installé sur la machine d’un développeur.

jstest” est un framework de test JavaScript multiplateforme téléchargé plus de 36 000 fois à ce jour, ce qui signifie qu’il y a de fortes chances qu’un développeur NodeJS l’ait.

package.json pour nodejs_net_server
package.json pour nodejs_net_server (Ordinateur sonore)

Mais, avoir “jstest” pré-installé n’est en aucun cas une condition préalable à l’exécution du package malveillant. Sa présence aide simplement le malware à atteindre la persistance sur les machines infectées :

“JSTest n’a pas besoin d’être installé pour que cette attaque fonctionne. L’installation du package détourne la commande ‘jstest’ si elle a déjà été attribuée.”

“L’exécution de cette commande garantirait la persistance des logiciels malveillants et l’exécution de la fonctionnalité de porte dérobée”, a déclaré Pericin à BleepingComputer.

Le fichier “jstest” chargé par le malware tente d’écraser le contenu du “jstest” existant lien symbolique, et ajoute en outre un autre fichier JS (“test.js”) en tant que service Windows qui s’exécuterait désormais de manière persistante.

les logiciels malveillants tentent de gagner en persistance à l'aide de jstest
Les logiciels malveillants tentent d’atteindre la persistance en ajoutant le script lib/test.js en tant que service Windows (Ordinateur sonore)

Ce service Windows nouvellement ajouté ouvre le port 7353 auquel l’attaquant peut se connecter et effectuer diverses activités de surveillance, notamment :

  • inverser la configuration de l’hôte et du port
  • liste du contenu de l’annuaire
  • téléchargement et recherche de fichiers
  • exécution de la commande shell
  • accès à l’écran et à la caméra et enregistrement via le pack ffmpeg exécutable
  • vol de mot de passe du navigateur Chrome à l’aide de l’utilitaire de récupération ChromePass fourni
Script de service Windows
Un logiciel malveillant ouvre une connexion socket sur le port 7353 (Ordinateur sonore)

Pour ce qui est de fichiertemptesttempest, le package est minimal avec seulement deux fichiers et n’implémente que la fonctionnalité de shell distant de nodejs_net_server, le faisant ressembler à un package de test comme son nom l’indique.

Oups! L’auteur de logiciels malveillants expose ses propres mots de passe

Dans une tournure inattendue, certaines versions de nodejs_net_server contiennent des fichiers texte avec les noms d’utilisateur et les mots de passe en clair de l’auteur du malware, extraits de Chrome.

ReversingLabs soupçonne qu’il s’agit d’un accident de la part de l’auteur :

“Le fait amusant lié aux versions qui contiennent l’outil de récupération de mot de passe est que l’auteur du package a accidentellement publié ses propres identifiants de connexion stockés.”

“Il semble que les versions publiées 1.1.1 et 1.1.2 du référentiel NPM incluent les résultats des tests du ChromePass sur l’ordinateur personnel de l’auteur.”

“Ces informations de connexion ont été stockées dans le fichier ‘a.txt’ situé dans le même dossier que l’outil de récupération de mot de passe nommé ‘a.exe'”, a déclaré Karlo Zanki, ingénieur en reverse engineering de ReversingLabs dans un communiqué. article de blog.

L’observation de Zanki a également été confirmée par BleepingComputer lorsque nous avons remarqué deux fichiers, un.txt, et b.txt avec des informations d’identification en clair, assis dans les versions susmentionnées de “nodejs_net_server”.

mots de passe inclus dans les logiciels malveillants
Le malware NPM comprend une liste de mots de passe supposés être ceux de l’auteur du malware (Ordinateur sonore)

Au cours des derniers mois, les attaques contre les écosystèmes open source, notamment, npm, PyPI et RubyGems ont augmenté régulièrement.

Avec des rapports récents de détournement de dépendance attaques inondant les dépôts open source, le problème ne disparaîtra pas de sitôt.

ReversingLabs pense que comprendre ce qu’il y a à l’intérieur de votre logiciel ou avoir une nomenclature logicielle (SBOM) est une étape critique pour se défendre contre ces attaques de la chaîne d’approvisionnement.

“Les référentiels de packages offrent des commodités pour le développement rapide d’applications, mais comportent également des risques.”

« La compréhension de l’arbre de dépendance des packages, ou de la nomenclature des logiciels, est devenue un élément essentiel de la défense contre les attaques de la chaîne d’approvisionnement logicielle. »

« Chaque composant doit être examiné attentivement avant l’installation, sinon un code malveillant risque de passer inaperçu. »

“Nous n’avons pas encore vu de package de référentiel malveillant s’intégrer dans l’image de la version finale, mais cela semble n’être qu’une question de temps avec l’état actuel des choses”, a conclu Pericin dans son entretien avec BleepingComputer.

Mise à jour : 22 juillet 2021 à 01h25 HE : ajout de la déclaration de la société mère de npm, GitHub, reçue après la publication.

Leave a Reply