Un fichier Slack infecté par un cheval de Troie, téléchargé depuis un site de typosquatting, offre aux pirates quelque chose que la plupart des utilisateurs ne sauraient même pas rechercher : un bureau caché fonctionnant sur leur ordinateur.
Le programme d'installation semble légitime et lance même une instance fonctionnelle de Slack. Mais en arrière-plan, il peut créer une session invisible permettant aux pirates de naviguer, d'accéder à des comptes et d'interagir avec votre système sans que rien n'apparaisse à l'écran. Pour être clair, cette campagne n'a aucun lien avec l'entreprise Slack, et nous l'avons informée de nos découvertes.
Slack compte des dizaines de millions d'utilisateurs actifs quotidiens répartis dans plus de 200 000 organisations abonnées, présentes dans plus de 150 pays, dont 77 des entreprises du classement Fortune 100. Un programme d'installation infecté par un cheval de Troie ne constitue donc pas seulement une menace pour la personne qui l'exécute, mais aussi pour les réseaux d'entreprise, les comptes liés à l'authentification unique (SSO) et les communications internes.
Tout le monde fait confiance à ce logo

Slack fait partie de ces applications que l'on installe sans y réfléchir à deux fois. Elle côtoie Chrome Zoom au panthéon des logiciels que les employés téléchargent dès leur premier jour dans un nouvel emploi, souvent à la suite d'une rapide recherche sur Google plutôt qu'à partir d'un lien enregistré dans leurs favoris. C'est ce qui en fait un appât si irrésistible. La marque est immédiatement reconnaissable, le programme d'installation est un outil que des millions de personnes ont déjà utilisé, et le simple fait de la voir s'installer semble tout à fait banal.
Les auteurs de cette campagne ont enregistré le nom de domaine slacks[.]pro (notez le « s » supplémentaire et le domaine de premier niveau .pro à la place de .com). Le code source du site comprend un gestionnaire de clic JavaScript qui intercepte chaque clic sur la page et redirige le navigateur vers un fichier de téléchargement hébergé sur un domaine distinct, debtclean-ua[.]sbs. Les seuls clics exclus sont ceux sur les boutons de consentement aux cookies ; tout le reste déclenche le téléchargement. Il ne s'agit pas d'une véritable attaque « drive-by » qui exploite le navigateur à l'insu de l'utilisateur, mais cela s'en rapproche beaucoup : il suffit d'un seul clic de la part d'un utilisateur distrait.
Ce qui apparaît sur le bureau de la victime est un fichier nommé slack-4-49-81.exe, un nom qui ressemble suffisamment à la numérotation réelle des versions de Slack pour que la plupart des gens n'hésitent pas.

Il ne s'agit pas d'une tactique obscure. En août 2024, nous avons recensé une campagne presque identique qui utilisait des publicités Google Ads frauduleuses pour rediriger les recherches sur Slack vers une page de téléchargement malveillante. Ces attaques propageaient SecTopRAT, un cheval de Troie d'accès à distance doté de capacités de vol de données.
Ces campagnes reviennent sans cesse parce que la recette fonctionne : les pirates s'emparent d'une marque de confiance, enregistrent un nom de domaine convaincant et misent sur le fait que la plupart des gens ne vérifient pas minutieusement une URL lorsqu'ils essaient simplement de se connecter pour travailler.
Une installation réelle et un chargeur caché, fonctionnant en parallèle
Voici ce qui rend cet échantillon particulièrement astucieux : il ne se contente pas de simuler l'installation de Slack. Il installe bel et bien une version fonctionnelle de l'application tout en exécutant simultanément un chargeur de logiciels malveillants en arrière-plan. La victime voit s'afficher un écran de démarrage légitime, constate que Slack apparaît dans sa barre des tâches et n'a aucune raison de soupçonner que quelque chose ne va pas.
Vous avez ramassé quelque chose que vous n'auriez pas dû ?
Quelques secondes après son lancement, slack-4-49-81.exe enregistre deux fichiers temporaires dans le répertoire de l'utilisateur %TEMP% dossier. Le premier, slack.tmp, sert de leurre : il s'agit d'un paquet d'installation Squirrel à extraction automatique. Squirrel est un framework de mise à jour open source légitime intégré à des dizaines d'applications Electron, notamment les véritables versions de Slack, Discord et Microsoft Teams. Le dropper intègre une copie authentique de Squirrel Update.exe ainsi qu'un package NuGet intitulé slack-4.49.81-full.nupkg, une image d'accueil personnalisée (background.gif), ainsi qu'un manifeste de version. Lorsque slack.tmp lorsqu'il s'exécute, il décompresse tout cela dans %LOCALAPPDATA%\SquirrelTemp, lance Update.exe avec un modèle standard --install drapeau, et à partir de là, l'installation de Slack se déroule exactement comme si l'utilisateur avait téléchargé l'application depuis slack.com. Slack s'ouvre, s'affiche correctement et fonctionne.
Le deuxième fichier, svc.tmp, arrive quelques secondes plus tard. Voici le chargeur : un fichier exécutable distinct d'environ 519 Ko intégré au programme d'installation de 150 Mo et extrait dans %TEMP% à côté du leurre. Il n'est pas signé, s'identifie dans ses métadonnées d'exécutable portable (PE) comme étant Windows « Windows Update Service » de Microsoft Corporation, et n'a aucun lien avec le framework Squirrel ni avec l'application Slack qui est installée à côté. Presque immédiatement, il crée un petit fichier nommé loader_log.txt dans le dossier temporaire, ce qui confirme que la phase de chargement a commencé, et tente de contacter un serveur de commande et de contrôle (C2) à l'adresse 94.232.46.16 sur le port TCP 8081.
Pendant ce temps, l'installation de Squirrel s'achève et crée une clé « Run » dans le registre afin de persister après les redémarrages : nom de la valeur com.squirrel.slack.slack sous HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. Il s'agit exactement du nom de clé et du chemin d'accès créés par une installation légitime de Slack. Un administrateur informatique parcourant les entrées de démarrage automatique verrait ce qui ressemble à une installation normale de Slack et passerait à autre chose.
Dans les coulisses du chargeur : ce que révèle l'analyse statique
Pour comprendre le rôle prévu du chargeur une fois qu'il dispose d'un canal C2, nous avons examiné directement le fichier binaire. Les informations de version PE indiquent qu'il s'agit d'un service de mise à jour Windows (nom interne WinSvcUpd.exe), publié par Microsoft Corporation, version 1.4.2.0. Rien de tout cela n'est vrai. Il s'agit d'une manœuvre de diversion destinée à passer inaperçue lors d'un rapide coup d'œil à la liste des processus ou au gestionnaire de tâches.
Le fichier binaire est un Windows 64 bits compilé avec MSVC. Ses sept sections PE portent des noms aléatoires, tels que .7ssik, .d1npl, .m6zef, plutôt que les extensions standard .text et .rdata générées par les compilateurs classiques, ce qui correspond à l'utilisation d'un générateur ou d'un outil de cryptage personnalisé. Sa table d'importation est délibérément réduite au minimum : 90 fonctions provenant de KERNEL32.dll et rien d'autre. Il n'y a pas d'importations statiques pour la gestion du réseau, l'accès au registre ou la manipulation des processus. À la place, il résout ces API au moment de l'exécution à l'aide de GetProcAddress et LoadLibraryExW, une technique courante qui masque les véritables capacités du fichier binaire lors de l'analyse de la table d'importation.

Ce qui rend cet échantillon inhabituel pour un chargeur, c'est son niveau de communication interne. Le fichier binaire regorge de chaînes de débogage qui décrivent l'ensemble de son architecture, organisée en sous-systèmes identifiés. Ces chaînes n'étaient pas destinées à être vues par la victime. Il s'agit de diagnostics des développeurs laissés dans la version finale, qui nous indiquent précisément à quoi cet outil a été conçu.
Chaînes préfixées [P1] décrire la première phase : le chargeur télécharge une charge utile depuis son serveur C2 ([P1] Downloading payload...). Le téléchargement proprement dit utilise WinHTTP, qui est initialisé au moment de l'exécution. Les chaînes de débogage [HTTP] Connect, [HTTP] Send, et [HTTP] Recv suivre l'intégralité du cycle de la requête, tandis que [HTTP] winhttp unavailable indique le chemin de secours si la bibliothèque ne peut pas être chargée. Il stocke la charge utile dans la mémoire partagée via les API Windows ([P1] Payload in shared memory), et lance une deuxième instance d'elle-même sous le nom de Phase 2 ([P1] Phase-2 launched). La phase 2 lit la charge utile à partir de la mémoire partagée ([P2] Payload copied from shared memory) et le déchiffre. Les chaînes [CRYPT] Decrypting... et [CRYPT] MZ OK vérifier que la charge utile arrive sous forme chiffrée et qu'elle est validée comme Windows après déchiffrement. La DLL déchiffrée est enregistrée sur le disque sous un nom de fichier correspondant au modèle wmiprvse_*.tmp, conçu pour se fondre parmi les fichiers temporaires créés par le programme légitime « Windows Provider Host ».
Le chargeur est ensuite conçu pour appeler une fonction exportée spécifique à partir de la DLL déchiffrée : HvncRun. Les cordes [LOAD] Calling HvncRun... et --- HvncClient log --- identifier la charge utile comme un client HVNC, un outil de « Hidden Virtual Network Computing ». HVNC se distingue d'un cheval de Troie d'accès à distance classique sur un point essentiel : il crée une session de bureau totalement distincte et invisible sur l'ordinateur de la victime. L'attaquant peut ouvrir des navigateurs, accéder à des portails bancaires et interagir avec des sessions authentifiées sans que rien n'apparaisse sur l'écran visible de l'utilisateur. Il s'agit d'un outil principalement utilisé dans le cadre d'opérations de fraude financière.
Pour exécuter la charge utile HVNC de manière furtive, le chargeur est conçu pour injecter la DLL dans explorer.exe en utilisant une technique appelée « injection par section ». Les chaînes [INJ] === Section-based injection into explorer.exe === et [INJ] Remote thread created in explorer.exe! décrire la séquence au cours de laquelle le chargeur crée une section de mémoire partagée via NtCreateSection, l'intègre à la fois dans son propre processus et dans le Windows , écrit le shellcode et le chemin d'accès à la DLL dans la zone partagée, puis lance un thread distant via NtCreateThreadEx. Il s'agit d'une variante de l'injection de processus plus difficile à détecter que la méthode classique WriteProcessMemory cette approche, car elle évite d'écrire directement dans l'espace mémoire de la cible. Si les API NT ne sont pas disponibles, le chargeur se rabat sur l'écriture de la DLL sur le disque et son chargement direct ([INJ] Required NT APIs not available, falling back to DropAndLoad).

Le fichier binaire intègre des mécanismes de protection contre l'analyse. La chaîne [AA] Debugger/sandbox detected indique qu'il vérifie les données d'observation et adapte son comportement en conséquence. Il dispose des outils nécessaires pour ce faire : IsDebuggerPresent et GetTickCount apparaissent dans la table d'importation ; elles sont couramment utilisées pour la détection des débogueurs et le contournement de sandbox basé sur le timing, bien que ces deux éléments constituent également des importations CRT standard dans tout binaire compilé avec MSVC. La chaîne de débogage est le signe le plus évident que ces API sont utilisées intentionnellement.
Ce que cela signifie pour quelqu'un qui l'a utilisé
Si vous avez téléchargé Slack depuis un autre site que slack.com récemment, en particulier depuis un domaine se terminant par .proou un site qui téléchargeait automatiquement un fichier dès que l'on cliquait n'importe où sur la page, prenez cela au sérieux.
Le chargeur tente de se connecter à son serveur C2 avant que la fenêtre Slack ne finisse de se charger. Il est conçu pour utiliser cette connexion (si elle est établie) afin de télécharger et de déchiffrer une charge utile HVNC, puis de l'injecter dans explorer.exe pour fonctionner directement depuis Windows . L'installation de Squirrel crée la même clé « Run » qu'une installation légitime de Slack, de sorte que l'entrée de démarrage automatique est impossible à distinguer de celle d'un ordinateur vierge. Par ailleurs, le chargeur n'a besoin de réussir qu'une seule fois : s'il télécharge la charge utile HVNC et l'injecte dans explorer.exe Lors de l'exécution initiale, l'attaquant dispose d'un point d'ancrage qui perdure jusqu'au prochain redémarrage. La persistance supplémentaire de la charge utile dépendra des prochaines actions de l'opérateur C2.
Comment rester en sécurité
Cette campagne illustre parfaitement l'ampleur des efforts d'ingénierie nécessaires pour donner une apparence anodine à un programme. L'une des branches du code installe un véritable logiciel via un framework légitime. L'autre exécute un chargeur en plusieurs phases comprenant une résolution dynamique des API, la transmission d'une charge utile chiffrée, l'injection de processus dans le Windows et des mécanismes de défense anti-analyse, le tout intégré dans un fichier binaire qui s'identifie comme un service Microsoft. Le leurre dissimule ce qui se passe réellement, tandis que le chargeur permet à l'attaquant de prendre pied dans le système.
Ajoutez à vos favoris les pages de téléchargement officielles des logiciels que vous utilisez. Si vous vous retrouvez à rechercher « téléchargement Slack » sur Google et à cliquer sur le premier résultat qui vous semble correct, vous êtes exactement le type de personne que cette campagne vise à piéger.
- Téléchargez Slack uniquement depuis le site officiel. Rendez-vous directement sur slack.com ou utilisez un signet fiable. Évitez de cliquer sur des publicités ou des liens inconnus.
- Vérifiez attentivement l'URL. Soyez attentif aux modifications subtiles, telles que des lettres supplémentaires ou des extensions inhabituelles (par exemple, « .pro » au lieu de « .com »).
- Méfiez-vous des sites qui déclenchent des téléchargements dès que vous cliquez. Si une page commence à télécharger un fichier dès que vous cliquez n'importe où, fermez-la.
- Vérifiez le programme d'installation avant de l'exécuter. Cliquez avec le bouton droit sur le fichier, consultez ses propriétés et vérifiez qu'il comporte une signature numérique valide.
- Utilisez une protection de sécurité en temps réel. Un outil de sécurité peut bloquer les domaines malveillants connus et détecter les comportements suspects lors de l'installation.
- Soyez attentif à tout comportement inhabituel après l'installation d'un logiciel. Une activité réseau inattendue, des ralentissements ou des processus inconnus méritent d'être examinés de plus près.
- Si quelque chose vous semble suspect, réagissez rapidement. Déconnectez-vous d'Internet, lancez une analyse complète et modifiez vos mots de passe depuis un appareil sain, en particulier pour vos comptes de messagerie, bancaires et professionnels.
Que faire si vous pensez avoir été affecté
- Déconnectez-vous immédiatement du réseau pour mettre fin à toute session C2 en cours.
- Lancez une analyse complète avec Malwarebytes.
- Modifiez tous les mots de passe des comptes auxquels vous avez accédé depuis cet ordinateur. Effectuez cette opération depuis un autre appareil qui n'a pas été compromis. Privilégiez les comptes de messagerie, bancaires et d'authentification unique (SSO).
- S'il s'agit d'un ordinateur professionnel, prévenez immédiatement votre service informatique ou votre équipe de sécurité.
Indicateurs de compromis (IOC)
Hachages de fichiers (SHA-256)
cfd2e466ea5ac50f9d9267f3535a68a23e4ff62e3fe3e20a30ec52024553c564 (slack-4-49-81.exe)
08fd0a82cdeb0a963b7416cf57446564dfed5de5c6f66dee94b36d28bfefec9d (svc.tmp)
Distribution
slacks[.]pro
debtclean-ua[.]sbs
Indicateurs réseau
94.232.46.16:8081
« L'une des meilleures suites de cybersécurité au monde. »
D'après CNET.Lire leur critique →





