Anatomie d’OsintS, une extension Firefox malveillante

Anatomie d’OsintS, une extension Firefox malveillante

Le 15 février 2025, une extension Firefox baptisée Osint Sync a été diffusée sur plusieurs communautés Discord, présentée comme un outil OSINT légitime. Cependant, des investigations ont rapidement révélé qu’il s’agissait en réalité d’un malware conçu pour collecter des informations et surveiller les actions des utilisateurs au sein de l’outil.

Des membres de la communauté Le Debunk Café ont identifié cette menace et nous ont signalé la diffusion suspecte de cet add-on malveillant. Cette alerte s’inscrit dans la continuité des efforts de sensibilisation menés depuis avril 2024, lors de la propagation d’une menace similaire sous le nom OsintX. Grâce à notre analyse antérieure et à sa diffusion au sein de la communauté, les anomalies entourant cet outil et son mode de distribution ont rapidement été mises en évidence.

Dans cet article, nous procédons à une analyse approfondie de cette extension, de son fonctionnement et des risques qu’elle représente pour les utilisateurs.

L'extension Osint Sync

Osint Sync (également appelé OsintS) est présenté comme une « puissante extension de navigateur » visant à optimiser les flux de travail OSINT et à améliorer l’efficacité des recherches pour les professionnels de la cybersécurité, les journalistes d’investigation et les débutants en OSINT. L’extension a été publiée par un compte nommé « Tsuskie » et prétend s’appuyer sur plusieurs API, notamment celles d’IntelX, Epieos, Snusbase et RocketReach.  

Dans sa description, l’extension met l’accent sur la confidentialité et la sécurité, affirmant qu’« aucune donnée sensible n’est stockée localement » et que OsintS « priorise la confidentialité des utilisateurs ». Toutefois, un détail troublant apparaît : la description contient à plusieurs reprises la mention « OsintX » au lieu de « OsintS ». Or, en avril 2024, un malware baptisé OsintX avait été diffusé sur le serveur Discord de la communauté OSINT-FR. Ce lapsus est le premier élément qui suggère que le même acteur malveillant est derrière les deux extensions et a omis de modifier entièrement la description lors de la publication d’OsintS.

Comme OsintX, OsintS requiert des permissions particulièrement intrusives, disproportionnées pour un outil censé simplement automatiser des recherches OSINT :  

  • Téléchargement de fichiers, ainsi que lecture et modification de l’historique des téléchargements du navigateur,  
  • Accès à l’historique de navigation, 
  • Accès aux onglets ouverts,  
  • Accès aux données de l’utilisateur sur tous les sites web.  

Un autre indicateur suspect réside dans les avis laissés sur l’extension. Celle-ci affiche quatre évaluations, toutes notées cinq étoiles. L’un des commentaires provient d’un utilisateur nommé MiscDex, qui correspond au même compte Firefox ayant publié l’extension malveillante OsintX. Il est probable que les autres avis aient été déposés par le même individu ou par des complices.

Quelques images d’OsintS :

Analyse du code

L’extension Firefox OsintS adopte une architecture conventionnelle, avec une structure de fichiers comprenant des dossiers d’images et de métadonnées, ainsi que plusieurs fichiers JavaScript gérant différents aspects du fonctionnement : 

  • background.js pour les tâches en arrière-plan, 
  • content.js (vide), 
  • script.js contenant une signature, 
  • popup.js pour l’affichage et les interactions de la fenêtre contextuelle,
  • Plusieurs fichiers HTML et CSS, pour l’interface utilisateur, notamment une page de connexion, une fenêtre popup et une page de mise à jour mais qui ne sont pas tous utilisés.

Un examen attentif de la structure de l’extension révèle plusieurs éléments incohérents. On retrouve dans le code source des fichiers inutilisés, tels que admin.html et updates.html. De plus, le fichier admin.html contient un mot de passe codé en dur, vraisemblablement oublié par l’auteur par inadvertance.

De plus, l’intégration de Google Analytics dans le fichier admin.html, identifié par le code de suivi GTM-NJZ4T8L8, soulève des questions sur les intentions de collecte de données.

Le fichier script.js ne contient qu’une simple signature « OSINTX », contrastant avec le nom officiel « Osint Sync », et la pseudonyme de « Kietsus ».

Ce pseudonyme, différent de celui ayant publié l’extension, soulève quelques interrogations. Cela rappelle notre analyse précédente de l’extension malveillante OsintX, où des incohérences similaires avaient été détectées entre l’utilisateur ayant publié l’extension et celui mentionné dans le code source.

Lorsqu’un utilisateur installe l’extension ou la relance après une journée, le code source indique que la page osint-sync[.]netlify[.]app s’ouvre automatiquement. OsintS semble intégrer un menu contextuel permettant des recherches rapides sur diverses cibles (adresses IP, domaines, URLs, vulnérabilités, hachages, profils de réseaux sociaux) via plusieurs services OSINT, bien que toutes ces fonctionnalités ne soient pas réellement exploitées.

background.js
background.js

Comme pour OsintX, le code source contient des commentaires en français. Cependant, contrairement à OsintX, ces commentaires ne présentent pas de fautes d’orthographe et semblent générés par une IA telle que Mistral ou ChatGPT.

Bien qu’aucun code malveillant évident ne soit présent dans le code source d’OsintS, contrairement à OsintX, cela ne garantit pas sa légitimité. Tout code potentiellement malveillant semble hébergé sur les liens netlify[.]app, une technique récemment employée par l’acteur malveillant derrière OsintS et OsintX.

Sur osint-sync[.]netlify[.]app, trois options sont disponibles : 

  • « OsintSync Searcher »,
  • « OsintSync Maltego », 
  • un bouton pour rejoindre le serveur Discord d’Osint Sync.
osint-sync[.]netlify[.]app

L’analyse de « OsintSync Maltego » n’a révélé aucun comportement suspect. Il s’agit simplement d’un éditeur de graphes imitant des outils comme Maltego ou Osintracker.

osintsyncmaltego[.]netlify[.]app

En revanche, « OsintSync Searcher » redirige vers une fausse page de connexion visant à voler des informations utilisateur et les transmettre à un serveur Discord contrôlé par l’acteur malveillant. Le script login-register.js récupère l’adresse e-mail, le mot de passe, l’adresse IP et le User-Agent de l’utilisateur, avant d’envoyer ces données via un webhook vers un serveur Discord. On note également que la page de connexion est factice : il est possible d’y entrer n’importe quelles informations, et elles seront validées.

login-register.js désobfusqué

Ce script est obfusqué, avec des noms de variables et fonctions remplacés par des chaînes hexadécimales et des mécanismes de désobfuscation, une technique fréquemment utilisée pour masquer des intentions malveillantes et compliquer la détection.

login-register.js obfusqué

Une fois sur l’onglet de recherche, plusieurs fichiers sont chargés, dont reel.js, disable_inspect.js et anti-akashi.js.

Le script disable_inspect.js empêche l’inspection du code source de la page. Le script reel.js contient le code qui appelle différentes API afin de collecter des informations sur une adresse e-mail, un pseudonyme ou un numéro de téléphone fourni par l’utilisateur. Le code intègre des clés API codées en dur, qui semblent avoir été volées, probablement via des logs d’infostealers, comme la clé API pour Intelx.io. Le script récupère l’élément recherché par l’utilisateur, le type de recherche, le User-Agent, ainsi que les résultats de la recherche, puis envoie l’ensemble de ces données vers le serveur Discord de l’acteur malveillant.

L’auteur aurait pu récupérer l’adresse IP de l’utilisateur, si l’IA ayant généré le code ne l’avait pas averti de la nécessité d’une API côté serveur.

reel.js désobfusqué
reel.js obfusqué

Le script anti-akashi.js lui collecte des informations sur les visiteurs en interrogeant l’API ipinfo.io (adresse IP, User-Agent, localisation approximative, etc.) et les transmet via un webhook Discord. L’IP est comparée à une liste noire prédéfinie : si présente, l’utilisateur est redirigé vers search-blacklists[.]netlify[.]app (inaccessible) ; sinon, une alerte contenant les données est envoyée sur un serveur Discord.

anti-akashi.js

Ce script constituant une « protection », les IPs blacklistées pourraient être exploitées par le ou les acteurs malveillants derrière OsintS ou ses complices. Certaines appartiennent à ProtonVPN et Mullvad VPN (disponibles dans les IoCs en fin d’article).

anti-akashi.js

En inspectant les champs des métadonnées de certaines pages HTML au niveau des headers des différentes URLs netlify[.]app, on remarque que le threat actor a affiché un pseudonyme différent : Wazzyx.

Ce même pseudonyme se retrouve également dans le code source d’OsintX, suggérant un lien direct entre les deux.

Schéma du fonctionnement du malware

Osint Sync est actuellement en version 1.2.3, succédant aux versions 1.2 et 1.1. Dans ses versions précédentes, l’extension utilisait l’URL « osint-extension-firefox[.]netlify[.]app » au lieu de « osintsync[.]netlify[.]app« .

La principale différence réside dans la technique d’obfuscation utilisée dans le script reel.js. Celui-ci était obfusqué avec JSFuck, une méthode d’obfuscation JavaScript qui repose uniquement sur six caractères ([]()!+). Cette technique permet d’écrire du code JavaScript parfaitement valide tout en le rendant extrêmement difficile à lire et à analyser.

reel.js obfusqué

Conclusion

L’extension Firefox Osint Sync présente de nombreux indicateurs préoccupants. Bien qu’aucun code explicitement malveillant ne soit détecté dans l’extension elle-même, plusieurs éléments indiquent qu’il s’agit bel et bien d’un logiciel malveillant, notamment l’auteur derrière cette extension, l’usage de scripts obfusqués, des fonctionnalités de collecte de données, ainsi que l’envoi de ces informations vers un serveur Discord. Ces éléments suggèrent qu’OsintS est un malware visant à surveiller les utilisateurs de l’outil et à collecter toutes les informations relatives à leurs recherches.

Comme mentionné précédemment, Kietsus pourrait être l’un des pseudonymes utilisés par Wazzyx, l’auteur de l’extension malveillante OsintX, et ce pseudonyme apparaît également dans OsintS.  

D’après un article de Zataz, Kietsus serait membre du groupe de « cybercriminels » francophone Epsilon/Overdrive, notamment impliqué dans l’attaque contre Free. Par ailleurs, Wazzyx a été actif récemment sur le forum cybercriminel BreachForum, où il a réalisé de fausses revendications d’attaques contre des entreprises françaises sous divers pseudonymes. Il aurait également cherché à piéger d’autres acteurs de la menace via un lien netlify[.]app malveillant, utilisant des techniques similaires à celles retrouvées dans OsintS. Cette tentative lui a valu le bannissement d’un de ses multiples comptes sur le forum.

Face à ces risques, il est essentiel de sensibiliser le public aux dangers liés au téléchargement d’outils inconnus et non vérifiés, ainsi que de promouvoir des pratiques de sécurité rigoureuses. Les utilisateurs doivent rester vigilants, installer uniquement des extensions provenant de sources de confiance, examiner attentivement les autorisations demandées et surveiller régulièrement l’activité de leurs extensions. La prudence et la vigilance collective sont des éléments clés pour sécuriser l’écosystème numérique et garantir un environnement en ligne plus sûr pour tous.

IoCs

Files hash :

OsintSync V1.2.3
0009600f2b90afaec6331905332a23d6f10613b91019eb16dd4414161aaa7507

OsintSync V1.2
703750fbfaad9c44eff12f1c682714b6e2da82a339700897a6775fd211e35f8b

OsintSync V1.1
d627ff4806733109360aa3b5e1990cdcee36f8df4348ac0376610e41bf7a16fe

Suspicious IPs :

89.149.40.16
86.192.164.239
62.210.201.179
138.199.15.156 – Mullvad VPN
193.32.126.231 – Mullvad VPN
193.32.126.227 – Mullvad VPN
185.177.124.100 – Proton VPN