High-Tech

À la une

Kothamine : le malware Windows qui détourne Tailcat pour faire disparaître son serveur de commande

Tailcat n’aura pas eu besoin d’attendre longtemps avant d’intéresser les mauvaises personnes. Moins d’un mois après la publication officielle de cet outil open source signé Tailscale, les chercheurs de Malwarebytes ont découvert Kothamine, un cheval de Troie Windows qui l’utilise pour transporter ses commandes à travers un tunnel WireGuard chiffré. Résultat : pas de domaine C2 malveillant classique à bloquer, pas de compte Tailscale à repérer et un trafic qui ressemble beaucoup à celui d’un outil réseau parfaitement légitime. Tailcat n’a rien de vulnérable ici. C’est justement ce qui rend l’histoire intéressante.

10 min de lecture 0 commentaire
Kothamine : le malware Windows qui détourne Tailcat pour faire disparaître son serveur de commande

Tailcat était trop pratique pour rester réservé aux gentils

À la fin du mois d’août, Tailscale publiait Tailcat, un petit outil open source que la société résume elle-même comme une sorte de « Tailscale sans Tailscale ». Il reprend une partie de la plomberie réseau de Tailscale — WireGuard, traversée de NAT et relais DERP — tout en se débarrassant du plan de contrôle, des comptes, des utilisateurs et d’une bonne partie de la couche d’administration habituelle.

Le résultat ressemble à un netcat moderne capable de créer un tuyau chiffré entre deux machines qui ne peuvent normalement pas communiquer directement. Pas besoin d’enregistrer la machine auprès d’un service et pas forcément besoin d’une adresse IP publique. Le projet échange les informations nécessaires à la connexion, tente ensuite d’établir une liaison directe entre les deux extrémités et peut s’appuyer sur les relais DERP de Tailscale lorsque la traversée NAT directe n’est pas possible.

Pour un développeur, un homelab ou une VM temporaire, c’est franchement pratique. Tailcat apporte une bonne partie de la magie réseau de Tailscale dans un outil léger que l’on peut sortir rapidement lorsque l’on veut simplement relier deux machines.

Malheureusement, les attaquants savent eux aussi reconnaître un bon outil lorsqu’ils en voient un.

Voici Kothamine, le RAT qui préfère ne pas avoir de domaine C2

Le 25 septembre, Malwarebytes a documenté Kothamine Agent , un cheval de Troie d’accès à distance jusque-là peu documenté. Écrit en C et C++, il apparaît dans la majorité des échantillons étudiés sous la forme d’un injecteur accompagné d’une DLL contenant l’agent principal.

Une fois installé, Kothamine peut recevoir plus de trente types de commandes. Le malware peut manipuler des fichiers et des processus, exécuter des commandes système ou charger dynamiquement de nouvelles DLL afin d’étendre ses fonctionnalités. Les échantillons analysés par Malwarebytes montrent également, selon les versions, des capacités liées au navigateur, aux captures d’écran, au presse-papiers, à la caméra ou encore au microphone.

Le RAT lui-même n’est pourtant pas particulièrement révolutionnaire. On retrouve une partie du catalogue habituel des malwares Windows : tentative d’ajout d’exclusions dans Microsoft Defender, persistance via une tâche planifiée, fichiers utilisant des noms rappelant des composants Microsoft et injection de la DLL dans explorer.exe. Certaines variantes plus anciennes comportaient également un mécanisme de contournement de l’UAC.

Ce qui rend Kothamine beaucoup plus intéressant, c’est moins ce qu’il fait que la manière dont il communique avec son opérateur.

Avant Tailcat, les attaquants utilisaient déjà Tailscale

Les premières variantes étudiées par les chercheurs utilisaient directement le VPN Tailscale comme infrastructure réseau . Elles pouvaient télécharger les composants nécessaires, lancer le service discrètement puis rejoindre un réseau contrôlé par l’opérateur du malware.

Du point de vue d’un attaquant, l’idée est plutôt efficace. Tailscale est un logiciel parfaitement légitime, les communications reposent sur WireGuard et le trafic réseau ne ressemble pas spontanément à celui d’un serveur de commande bricolé sur un VPS loué avec une carte bancaire volée.

Puis Tailcat est arrivé.

Pour un malware, plusieurs caractéristiques qui rendent l’outil séduisant pour les utilisateurs légitimes deviennent immédiatement intéressantes : pas de compte Tailscale obligatoire, pas d’enregistrement permanent de l’appareil et pas de plan de contrôle central. Les variantes plus récentes de Kothamine observées par Malwarebytes récupèrent donc Tailcat ou l’embarquent directement afin de créer leur propre canal de communication.

Le RAT parle localement à Tailcat. Tailcat s’occupe du transport réseau. Et l’administrateur chargé de surveiller la machine se retrouve face à un tunnel WireGuard chiffré utilisant une technologie parfaitement légitime.

C’est déjà moins confortable qu’un joli domaine super-malware-c2.ru à placer dans une blacklist.

Pas de domaine malveillant évident à bloquer

C’est probablement le point le plus intéressant de toute cette histoire.

Dans une architecture de malware plus traditionnelle, le cheval de Troie doit retrouver son opérateur quelque part sur Internet. Il contacte généralement un serveur, une adresse IP ou un nom de domaine contrôlé par l’attaquant. Une fois cette infrastructure identifiée, elle devient un indicateur de compromission intéressant : le DNS de l’entreprise, le pare-feu ou le proxy peuvent la bloquer.

Avec Tailcat, cette logique devient plus compliquée. L’analyse technique de Kothamine montre comment l’utilisation d’un tunnel chiffré et d’une technologie légitime réduit l’intérêt d’une simple approche basée sur les domaines ou les IP connus.

Cela ne rend évidemment pas Kothamine invisible. Les processus présents sur la machine restent observables, les mécanismes de persistance laissent des traces et les comportements suspects ne disparaissent pas sous prétexte qu’ils passent ensuite dans WireGuard.

Mais la défense doit regarder davantage ce que fait le programme que simplement où il se connecte.

Et cette nuance devient de plus en plus importante en cybersécurité.

Tailcat n’a rien fait de mal

Précisons un point essentiel : Kothamine n’exploite pas une vulnérabilité de Tailcat ou de Tailscale.

Le malware n’a pas trouvé une faille secrète dans WireGuard ou un moyen de détourner les serveurs DERP. Les attaquants utilisent simplement un outil réseau de la manière pour laquelle il a été conçu : transporter des données entre deux machines de manière chiffrée.

Ce sont les données transportées dans ce tunnel qui sont malveillantes.

C’est un peu comme reprocher à SSH d’être utilisé par un pirate après la compromission d’un serveur. SSH fait exactement son travail. C’est même précisément parce qu’il le fait bien qu’il devient utile.

La documentation officielle de Tailcat décrit justement cette philosophie : réutiliser WireGuard, la traversée NAT et les relais DERP sans reproduire tout le plan de contrôle de Tailscale.

Pour l’utilisateur légitime, cela enlève énormément de lourdeur.

Pour un RAT aussi.

Le malware passe également par des packages npm

L’autre volet de cette campagne devrait particulièrement intéresser les développeurs JavaScript.

Malwarebytes a relié Kothamine à plusieurs packages npm utilisés comme vecteur de distribution . Parmi eux figurait dotnet-runtime-base, qui téléchargeait un exécutable hébergé sur GitHub associé aux échantillons étudiés par les chercheurs.

Le package dotnet-runtime-base est désormais signalé comme malveillant par Snyk . Pour un environnement de développement dans lequel il aurait été installé, la prudence impose donc de ne pas considérer sa suppression comme suffisante : il faut également vérifier ce qui a pu être exécuté sur la machine et quelles informations ou identifiants étaient accessibles au moment de l’installation.

Voilà qui rappelle un problème désormais récurrent de l’écosystème logiciel moderne. Un développeur peut avoir Windows parfaitement à jour, ne jamais ouvrir de pièce jointe louche et utiliser un navigateur entièrement patché.

Puis lancer :

npm install

Et connaître malgré tout une journée particulièrement pénible.

La chaîne d’approvisionnement logicielle est devenue une surface d’attaque immense. Les postes des développeurs sont d’autant plus intéressants qu’ils peuvent contenir des tokens GitHub, des clés SSH, des identifiants cloud, des certificats ou des accès aux environnements internes.

Un petit package qui semble anodin peut donc valoir beaucoup plus qu’un fichier Word envoyé au service comptabilité.

Un malware modulaire peut changer de visage

Kothamine n’est pas non plus conçu comme un implant totalement figé.

L’agent possède un mécanisme permettant de charger des modules supplémentaires sous forme de DLL . Les capacités observées dans un échantillon précis ne représentent donc pas nécessairement tout ce qu’une machine compromise pourra faire par la suite.

Un opérateur peut adapter les fonctions du malware en fonction de ses besoins. Une variante initialement utilisée pour exécuter des commandes pourrait recevoir ensuite des composants supplémentaires orientés espionnage ou vol de données.

Les différentes builds retrouvées par les chercheurs montrent d’ailleurs déjà des fonctionnalités variables selon les versions.

On a donc moins affaire à un couteau suisse totalement assemblé qu’à une poignée sur laquelle l’attaquant peut clipser les outils qui l’intéressent.

Pratique.

Enfin, pas pour la victime.

Pour le repérer, mieux vaut surveiller la machine que le tunnel

Cette campagne montre encore une fois pourquoi une stratégie basée uniquement sur les domaines et adresses IP commence à montrer ses limites.

Tailcat n’est évidemment pas le seul cas. Depuis des années, des attaquants détournent Discord, Telegram, GitHub, Google Drive, Dropbox, des services cloud, des tunnels légitimes et quantité d’outils d’administration pour transporter leurs commandes ou exfiltrer des données.

Bloquer toutes ces plateformes est techniquement possible.

C’est également une excellente manière de provoquer une petite révolution dans l’entreprise à 9 h 04 le lundi matin.

Dans le cas de Kothamine, les signaux les plus intéressants se trouvent donc aussi sur le poste : création inhabituelle d’exclusions Microsoft Defender, tâches planifiées suspectes, exécution depuis certains répertoires utilisateur, injection dans explorer.exe, apparition d’un binaire Tailcat ou Tailscale inattendu et communications régulières liées à ce processus.

Malwarebytes fournit également les indicateurs de compromission associés aux échantillons analysés , notamment différentes empreintes SHA-256.

Pour un particulier ou un développeur indépendant, la recommandation est beaucoup moins spectaculaire : méfiez-vous des packages inconnus, particulièrement lorsqu’ils sont récents, peu utilisés ou publiés par un compte sans historique identifiable.

Un npm install mérite parfois trente secondes de recherche supplémentaire.

Ce n’est pas très excitant.

Mais c’est toujours plus agréable que trois heures d’analyse forensique le dimanche soir.

Les outils légitimes deviennent d’excellentes briques pour les attaquants

L’histoire de Kothamine illustre surtout une évolution de fond.

Pendant longtemps, un malware devait construire ou louer une grande partie de son infrastructure clandestine. Il lui fallait des serveurs, des domaines, des proxies et des mécanismes permettant de conserver une infrastructure suffisamment longtemps avant qu’elle soit bloquée.

Aujourd’hui, Internet fournit déjà une quantité impressionnante de briques parfaitement utilisables.

  • WireGuard
  • Tailscale
  • Cloudflare Tunnels
  • GitHub
  • Discord
  • Services de stockage cloud
  • CDN
  • Messageries instantanées

Pour les développeurs légitimes, c’est formidable.

Pour les cybercriminels, aussi.

Kothamine pousse simplement cette logique un peu plus loin : pourquoi développer un protocole réseau clandestin lorsque Tailcat fournit déjà un transport chiffré, de la traversée NAT et des relais dans un projet open source éprouvé ?

L’attaquant peut alors concentrer ses efforts sur ce qui l’intéresse réellement : l’implant et ses capacités.

Le futur du C2 pourrait ressembler de plus en plus à du trafic normal

C’est probablement la vraie leçon de cette histoire.

Le trafic malveillant n’a pas nécessairement besoin d’avoir l’air malveillant.

Plus les attaquants réutilisent des services et des outils légitimes, moins les défenseurs peuvent se contenter de chercher « la mauvaise IP » ou « le domaine bizarre ». La frontière entre trafic normal et trafic hostile dépend de plus en plus du contexte.

Un développeur qui utilise Tailcat entre deux machines de son homelab ? Parfaitement normal.

Une application inconnue qui apparaît dans %AppData%, crée une tâche planifiée, modifie Defender puis lance Tailcat pour communiquer avec l’extérieur ?

Beaucoup moins innocent.

C’est aussi pour cela que la sécurité moderne s’intéresse autant à la corrélation des événements et au comportement des processus.

Un indicateur isolé peut être totalement légitime.

Cinq indicateurs légitimes alignés dans un ordre très particulier peuvent raconter une histoire complètement différente.

Tailcat avait été publié pour permettre aux développeurs de créer rapidement des connexions chiffrées sans devoir déployer toute l’infrastructure Tailscale.

Peu après, un malware avait déjà compris que cette simplicité pouvait également lui être utile.

On dit souvent qu’un bon outil Unix doit faire une chose et la faire correctement.

Tailcat transporte des octets entre deux machines.

Il le fait visiblement assez bien pour que les auteurs de malwares aient eux aussi lu la documentation.

Sources & références

Tags

Communauté

Commentaires

La discussion est ouverte

Aucun commentaire pour le moment. Soyez le premier à réagir.

Publication après modération