Un voleur d'informations KeyCat démasqué : au cœur d'un système de vol d'informations multiplateforme à 40 $ utilisant Telegram C2 et une infrastructure de test active

Le 03 juin 2026

Par Sukant Kumar, chercheur en cybersécurité

Pour 40 $ et un tutoriel vidéo, n'importe qui peut déployer un outil de vol d'informations entièrement fonctionnel, capable de récupérer des identifiants, de capturer des écrans, d'extraire des mots de passe Wi-Fi, de collecter des fichiers, d'installer des logiciels malveillants de manière persistante et d'offrir un accès à distance, le tout contrôlé par un bot Telegram. KeyCat est un outil multiplateforme de vol d'informations et d'accès à distance, basé sur Python et compatible avec les environnements Windows et Linux.

Il a fait surface en février 2026 sous la forme d'un Gist Github accessible au public contenant le code source complet du voleur, le classificateur automatisé de Flare signalant la découverte comme un voleur d'informations malveillant basé sur Python de gravité « élevée » (KeyCat Ultimate Stealer) conçu pour fonctionner sur les systèmes Windows et Linux.

Le code source de KeyCat a circulé publiquement dès fin février 2026 et a ensuite été réutilisé dans au moins quatre annonces Telegram distinctes entre mars et mai 2026, notamment des variantes ciblées sur la Tunisie et des offres génériques de type « malware-as-a-service » (MaaS) à 40 $. Les données télémétriques disponibles ne permettent pas de déterminer s’il s’agit d’un opérateur unique faisant évoluer le produit ou de plusieurs acteurs utilisant des forks du code source public. La combinaison d’un prix bas, d’une documentation opérationnelle fournie et d’une infrastructure C2 facilement reconfigurable fait que chaque déploiement indépendant produit une instance distincte sans lien avec l’opérateur d’origine, rendant la détection par jeton inefficace et faisant des signatures comportementales la seule défense durable.

Points clés concernant KeyCat Stealer

  • KeyCat est un voleur d'informations multiplateforme entièrement opérationnel, doté d'une infrastructure de test active confirmée et d'un canal C2 Telegram en direct. L'analyse statique du code source, la télémétrie C2 extraite via l'interception de messages de bot Matkap et la récupération contrôlée de la charge utile à partir d'un site WordPress compromis confirment collectivement que les modules de vol, de bot de contrôle et de RAT forment une suite malveillante cohérente fonctionnant sous un jeton de bot Telegram partagé.
  • Le logiciel de vol de données est entré en distribution commerciale en avril 2026, d'abord sous la forme d'une offre MaaS à 40 $ avec une vidéo tutorielle, puis sous la forme d'une plateforme Stealer-as-a-Service (StaaS). Le relancement de StaaS sous un compte d'administrateur dédié (@keycatadmin) supprime tous les obstacles opérationnels pour les acheteurs : les clients paient pour le résultat (identifiants volés) plutôt que de gérer eux-mêmes l'infrastructure, éliminant ainsi totalement la barrière technique à l'entrée.
  • Chaque déploiement indépendant est facilement reconfigurable. Il suffit aux acheteurs de modifier deux constantes (TOKEN et ADMIN_ID) dans le code source pour créer un canal C2 distinct, sans lien avec l'infrastructure de l'opérateur d'origine. De ce fait, la détection par jeton devient immédiatement inefficace face aux versions dérivées.
  • Le voleur met en œuvre une chaîne d'exécution en neuf étapes. Il couvre les contrôles anti-analyse, la configuration C2, le profilage de l'hôte, la capture d'écran, l'extraction d'identifiants Wi-Fi, le vidage d'identifiants via LaZagne, la collecte de fichiers sensibles, l'empaquetage et l'exfiltration de données, et l'installation persistante, le tout automatisé en une seule exécution et exfiltré via l'API sendDocument de Telegram.
  • Plusieurs canaux de transition ont été observés. Ces éléments comprennent un site WordPress compromis d'une entreprise agricole italienne (pantaleoagricoltura[.]it), Pastebin, Ubuntu Paste et Limewire, ce qui suggère un opérateur qui fait tourner son infrastructure d'hébergement entre les différentes versions et utilise des services légitimes pour éviter d'être bloqué. La campagne de mars utilisait également keycat.x10[.]mx/Tunisie, indiquant une infrastructure supplémentaire au-delà des canaux de test déjà documentés.
Cyber ​​Threat Intelligence

Détectez les voleurs d'informations et les identifiants volés avant que les attaquants ne les exploitent.

Les systèmes de classification automatisés de Flare ont détecté KeyCat dès la publication de son code source, puis ont suivi sa commercialisation sur les chaînes Telegram en temps réel. Bénéficiez de la même visibilité continue sur les logiciels malveillants émergents, les identifiants volés et les offres MaaS ciblant votre organisation.

Détection automatisée des logiciels malveillants et du code source des voleurs de données en conditions réelles
Surveillance continue des chaînes Telegram, des marchés du dark web et des sites de partage de contenu.

Découverte initiale sur GitHub Gist

Le voleur de données KeyCat a fait surface le 28 février 2026 sous la forme d'un Gist GitHub accessible au public contenant l'intégralité du code source du voleur. Flare a identifié cette découverte comme un voleur d'informations malveillant de haute gravité basé sur Python et conçu pour fonctionner sur les systèmes Windows et Linux, bien que l'utilisation de Python puisse introduire des limitations pratiques en matière de déploiement et de fiabilité opérationnelle par rapport à des frameworks de logiciels malveillants natifs plus matures.

L'émergence d'un canal de distribution commercial distinct et d'un administrateur StaaS dédié (@keycatadmin) augmente considérablement la portée de la menace et le risque opérationnel.

Événement de haute gravité signalé sur Flare (Flare lien vers la publication, inscrivez-vous à essai gratuit (pour y accéder si vous n'êtes pas déjà client)

Résumé de l'assistance IA sur Flare décrivant le voleur

Suite à la découverte initiale, une recherche par mots-clés pour « KeyCat » Flare a identifié deux publications supplémentaires (abordé dans une section ultérieure) En avril 2026, la découverte que le logiciel malveillant avait pénétré les circuits de distribution commerciaux a considérablement aggravé le niveau de risque et l'ampleur de la menace.

Analyse technique

D'un point de vue technique, KeyCat présente des méthodes et des schémas d'implémentation comparativement plus simples que les voleurs d'informations Python plus complexes. L'échantillon SANS ISC superposait l'exfiltration chiffrée Fernet, l'exécution multithread, un enregistreur de frappe et un serveur de phishing Flash intégré à un canal C2 basé sur Telegram. PXA Stealer, analysé lors de la campagne Ghost in the Zip, utilisait le chargement latéral de DLL en plusieurs étapes via des applications signées et un relais Cloudflare Worker. À l'inverse, KeyCat est un voleur d'informations monoscript, de sophistication faible à modérée, qui s'appuie sur LaZagne et des primitives système de base pour la collecte, avec un jeton Telegram codé en dur et un flux d'exécution linéaire et tolérant aux erreurs. 

Il met néanmoins en œuvre l'ensemble du processus de vol d'informations : identifiants, clés Wi-Fi, données SSH, captures d'écran, compression ZIP, persistance et commande et contrôle via Telegram. Par conséquent, le risque opérationnel provient de l'étendue de ses capacités et de sa commercialisation, et non d'une technique novatrice.

Démonstration des fonctionnalités de Stealer sur la chaîne Telegram C2

Analyse des capacités

Le voleur exécute une chaîne en neuf étapes, de l'anti-analyse à la persistance, au cours d'une seule exécution automatisée.

Stage 1: Anti-analyse et initialisation furtive

logique anti-débogage

La première action du programme malveillant est l'appel à `anti_debug()`, qui se termine silencieusement via `sys.exit(0)` si un débogueur Python est détecté par `sys.gettrace()`. Sous Linux, il vérifie également le fichier `/proc/cpuinfo` à la recherche de chaînes de caractères relatives à l'hyperviseur ou à QEMU, ciblant ainsi directement les environnements d'analyse virtualisés. Ces deux sorties ne produisent aucune sortie, rendant leur exécution indiscernable d'une exécution normale dans les journaux de surveillance.

Fonctionnalité furtive sous Windows

Sur Windows, Les mesures furtives s'activent lors de l'importation, avant toute exécution du processus de collecte. La fenêtre de la console est masquée à l'aide de AfficherFenêtre(ObtenirFenêtreConsole(), 0), et le titre de la fenêtre est défini sur svchost.exe pour se fondre avec les processus de service Windows légitimes. Toutes les commandes exécutées ultérieurement par le logiciel malveillant (netsh, powershell, lazagne.exe, pip) s'exécutent sans ouvrir de fenêtres visibles, à l'aide d'un processus caché. INFORMATIONS DE DÉMARRAGE objet appliqué de manière cohérente à chaque processus enfant.

Fonctionnalité furtive sous Linux

Sur Linux, Le programme malveillant s'exécute en arrière-plan via une routine de démonisation à double fork, se détache du terminal de contrôle via setsid() et redirige toutes les E/S standard vers /dev/null. Il renomme ensuite son propre processus en [kworker/0:0] grâce à prctl(PR_SET_NAME) via libc.so.6, en se faisant passer pour un thread de travail du noyau dans les listes de processus et /proc/ /statut.

Stage 2: Configuration du canal C2

Configuration Telegram C2

Le jeton du bot Telegram et l'identifiant de chat sont codés en dur sous forme de configuration constante en texte clair. 

Mécanismes et méthodes de communication du serveur de commandement et de contrôle Telegram

Toutes les communications transitent par l'API de Telegram. La fonction `send_telegram()` envoie du texte au format HTML via la méthode `sendMessage` ; la fonction `send_flle()` transmet des fichiers via la méthode `sendDocument`. Aucun serveur contrôlé par un acteur malveillant n'est impliqué, car Telegram sert à la fois de canal de commande et de contrôle et de point d'exfiltration, exploitant ainsi une plateforme légitime et largement fiable, rarement bloquée au niveau du réseau.

Stage 3: Profilage de l'hôte et balise initiale

Extraction des informations système

Une fois l'opération lancée, le pirate envoie immédiatement une notification à l'opérateur, suivie d'un profil détaillé de l'hôte. L'identifiant matériel (HWID) est un identifiant de 12 caractères dérivé de MD5 (nom d'hôte + nom d'utilisateur). 

Balise C2 contenant des informations système

Les journaux de messages (extraits via Matkap) ont confirmé cette balise. Le profil (nom d'hôte, nom d'utilisateur, HWID, adresse IP locale, système d'exploitation et processeur) est envoyé sous forme de message Telegram formaté.

Stage 4: Capture d'écran

Logique de capture d'écran pour Windows

Le voleur capture l'écran principal et l'enregistre sous le nom de « screenshot_ ». Le fichier .png est enregistré dans le répertoire temporaire du système. Sous Windows, il utilise la fonction ImageGrab.grab(). En cas d'échec, il exécute un script PowerShell qui capture l'écran via System.Windows.Forms et System.Drawing, avec l'option -ExecutionPolicy Bypass dans les paramètres Windows cachés.

Logique de capture d'écran pour Linux

Balise C2 contenant un fichier de capture d'écran

Sous Linux, le malware tente successivement d'utiliser plusieurs utilitaires de capture d'écran (gnome-screenshot, ImageMagick import et scrot), en sélectionnant le premier binaire disponible sur l'hôte. L'image capturée est exfiltrée via Telegram sendDocument puis supprimée du disque.

Stage 5: Extraction des identifiants Wi-Fi

Logique de capture des mots de passe Wi-Fi pour Windows

Sous Windows, le voleur énumère les profils Wi-Fi enregistrés à l'aide de la commande netsh wlan show profiles et récupère le mot de passe en clair de chacun via la commande netsh wlan show profile name=" La commande « key=clear » s'exécute en mode silencieux. Sous Linux, elle lit directement les fichiers de connexion NetworkManager depuis /etc/NetworkManager/system-connections et extrait les clés pré-partagées (PSK) via l'expression régulière psk=(.+) — un chemin réservé à l'utilisateur root ou aux membres du groupe network-admin sur les configurations système standard.

Étape 6 : Transfert d’identifiants via LaZagne

Logique de vidage des identifiants

Le pirate utilise LaZagne, un outil open source de récupération d'identifiants, pour extraire les informations d'identification stockées dans les navigateurs et les applications. Si LaZagne n'est pas déjà installé sur le système, il est téléchargé depuis son dépôt GitHub officiel lors de l'exécution, puis exécuté sur les bases de données d'identifiants compatibles, avec un délai d'expiration de 120 secondes et des paramètres d'exécution masqués.

Stage 7: Collecte de fichiers sensibles

Logique de recherche récursive de fichiers sensibles

Le voleur recherche des répertoires accessibles à l'utilisateur, collectant des fichiers correspondant à la liste d'extensions cibles (.txt, .pdf, .doc/x, .xls/x, .kdbx, .ovpn, .key, .odt, .ods) et des noms de fichiers pouvant indiquer des mots clés révélateurs d'identifiants. 

Stage 8: Conditionnement et exfiltration des données

Logique d'exfiltration et de traitement des données

Toutes les données collectées (profil système, identifiants Wi-Fi, sortie LaZagne et fichiers récupérés) sont compressées dans un seul fichier keycat_data_ L'archive .zip est envoyée à l'opérateur via Telegram (commande sendDocument). Le fichier ZIP local et tous les fichiers intermédiaires sont supprimés après la transmission afin de réduire les traces numériques sur le disque. 

Balise C2 pour la confirmation de la collecte de données

Matkap capture les messages de documents résultants suite aux notifications « Collecte terminée » pour chaque session hôte.

Stage 9: Installation persistante

Logique de persistance pour Windows

balise d'installation persistante

Une fois l'exfiltration terminée, le logiciel malveillant installe un système de persistance, transformant une exécution unique en une capacité de collecte récurrente. Sous Windows, une entrée de registre (clé « Run ») lance silencieusement le logiciel malveillant à l'ouverture de session de l'utilisateur via pythonw.exe. Sous Linux, une double persistance est établie grâce à une entrée cron @reboot et à un lancement en arrière-plan ajouté au fichier ~/.bashrc. Ces deux mécanismes suppriment les sorties et fonctionnent indépendamment, garantissant ainsi que le logiciel puisse être relancé après un redémarrage ou une réouverture du shell, sans que l'un dépende de l'autre.

Module de contrôle du robot

Menu Commandes et fonctionnalités KeyCat

Le bot de contrôle basé sur Telegram fonctionne avec le même jeton, fournissant à l'opérateur la mise en place des voleurs, la génération des artefacts de livraison et la gestion de l'infrastructure.

Des échecs répétés de /upload, une erreur d'analyse JSON sur config.json et un échec de connexion HTTPS à pastebin.ubuntu[.]com indiquent un pipeline de déploiement instable et itéré activement plutôt qu'une opération de niveau production.

Module RAT

Présence du module RAT dans le répertoire local

Menu des commandes RAT

Un module RAT associé (1.py) a été observé, fonctionnant via le même jeton de bot Telegram. Ce module permet un accès interactif aux hôtes compromis ou contrôlés, indépendamment du flux d'exécution automatisé du voleur de données. Son interface de commande inclut des opérations sur le système de fichiers (telles que ls, cd, download, upload) et l'interrogation du système (info, ps, location, shell). ), la gestion de la persistance et les capacités de surveillance (capture d'écran, webcam, démarrage/arrêt de l'enregistreur de frappe). 

À noter: Le code source du RAT n'était pas présent dans le code source du voleur de données ; sa surface de capacités est uniquement dérivée des interactions de messages (extraites via Matkap).

Infrastructure et livraison

Infrastructure de mise en scène confirmée

L'hôte de mise en scène principal confirmé qui a été observé lors de l'analyse de la télémétrie C2 est pantaleoagricoltura[.]it, un site web WordPress d'entreprise agricole italienne. 

Score total du virus pantaleoagricoltura[.]it

Commande de chargement de la charge utile capturée via Matkap

Le fichier malveillant est servi depuis le répertoire des plugins WordPress, un chemin compatible avec l'utilisation d'un web shell ou le dépôt de fichiers via un plugin sur une installation WordPress compromise : pantaleoagricoltura[.]it/wp-content/plugins/stealer.py

Requête Curl pour récupérer la charge utile

Charge utile récupérée via curl contenant le même code source de voleur

Une requête curl pour récupérer le voleur mis en scène a confirmé que la charge utile est identique au code source du voleur que nous avons initialement identifié sur Github Gist via Flare, y compris le même jeton de bot intégré, l'identifiant d'administrateur et les commentaires arabes intégrés.

Modèle de mise en scène multicanal

Instructions pour utiliser les commandes du bot

La commande /upload du bot de contrôle est conçue pour envoyer le voleur vers un service d'hébergement distant et enregistrer l'URL résultante dans config/config.json pour une utilisation ultérieure par /build.

L'analyse des données télémétriques du serveur C2 de Telegram a révélé trois autres URL de transit distinctes (autres que le domaine pantaleoagricoltura[.]it), reflétant l'utilisation par l'opérateur de plusieurs services de partage de fichiers et de copier-coller :

Pastebin[.]com/uiWhrkRn

Confirmation d'hébergement du voleur sur Pastebin

Le code source du voleur KeyCat était hébergé en clair, permettant ainsi un accès public à la logique de sa charge utile. Cela témoigne d'une dépendance à l'égard de services de partage de fichiers ouverts pour la préparation des tests.

Publication Pastebin contenant le code source du voleur de KeyCat

Pastebin[.]ubuntu[.]com/pzn6Gh6XKb/H/plain

Confirmation d'hébergement de Stealer sur Pastebin Ubuntu

Le contenu correspond à l'échantillon analysé, ce qui suggère l'utilisation d'Ubuntu Paste comme canal de développement ou de préproduction.

Publication Ubuntu Pastebin contenant le code source du voleur KeyCat

Limewire[.]com/dE4Kfzx3bKk2Eefa

Confirmation d'hébergement Stealer sur Limewire

Erreur d'hébergement expiré sur Limewire

Limewire est un lien de partage de fichiers utilisé pour la distribution de données. Nous avons tenté de récupérer ces données, mais l'erreur « contenu introuvable » s'est affichée au moment de l'analyse. Ce comportement est typique d'une infrastructure de transit éphémère utilisée pour la livraison ou la distribution initiale des données.

/build instructions de commande

La commande /build génère trois artefacts de livraison à partir de l'URL préparée : downloader.py (Python), install.bat (batch Windows) et KeyCatLoader.exe (exécutable compilé), offrant ainsi à l'opérateur une option de livraison flexible pour le déploiement sur la plateforme cible.

État de la configuration du proxy

L'opérateur a également configuré le routage proxy SOCKS5/Tor (127.0.0.1:9050) via l'option /proxy du bot de contrôle, a confirmé activé en statut proxy.

Systèmes observés et environnement de l'opérateur

Informations de profil système

Tous les hôtes observés partagent l'adresse IP locale 10.0.2.15, ce qui est cohérent avec un environnement NAT virtualisé, les HWID 39fce4e68050 et 6bab49be7c01 partageant l'adresse IP publique 105.99.61.221, confirmant ainsi leur colocalisation sur le même hôte physique.

Attribution de la langue : Les commentaires en ligne en arabe natif présents à la fois dans l'échantillon Gist analysé et dans la charge utile récupérée en direct de pantaleoagricoltura[.] relient directement les deux artefacts à un seul auteur arabophone.

Commercialisation des menaces, positionnement régional et activités MaaS/StaaS

Commercialisation axée sur la Tunisie et positionnement des capacités (27 mars 2026)

Article spécifique à la Tunisie sur les composants antivol KeyCat (Flare) lien Pour publier, inscrivez-vous à essai gratuit (pour y accéder si vous n'êtes pas déjà client)

Nous avons observé une publication Telegram de « 001 Tun 🇹🇳 » faisant la publicité d'un composant de vol lié à KeyCat spécifique à la Tunisie, et déclarant qu'il était conçu pour « les utilisateurs tunisiens uniquement », affirmant explicitement une prise en charge du vol pour les portefeuilles D17, E-DINAAR et les comptes bancaires, avec une couverture s'étendant sur plus de 12 banques tunisiennes et trois portefeuilles de la Poste tunisienne.

Statut du domaine expiré

Le message prétendait également contourner l'antivirus et distribuait le composant via keycat.x10[.]mx/Tunisie. Lors de la vérification ultérieure, l'URL mentionnée n'était plus active, ce qui indiquait que l'infrastructure du voleur avait été supprimée ou remplacée.

Pivot sur le domaine KeyCat (Flare) lien Pour publier, inscrivez-vous à essai gratuit (pour y accéder si vous n'êtes pas déjà client)

Un pivot Flare ultérieur sur le domaine keycat.x10[.]mx a été repéré dans une publication Telegram datée du 25 mars. Cette publication, publiée par le groupe de cybercriminels, est une publicité et un guide d'utilisation de la plateforme KeyCat Stealer. Masques noirs.

L'auteur de la diffusion a fourni des instructions détaillées permettant aux clients potentiels d'accéder à la plateforme à l'adresse https://keycat.x10[.]mx, où les utilisateurs doivent s'inscrire pour recevoir un code d'accès privé. Pour créer et déployer le logiciel malveillant de vol de données, les clients doivent souscrire un abonnement en contactant l'administrateur (@anaconda_admin) par message privé.

Interface du portail client/constructeur de voleurs KeyCat

La plateforme exige que les utilisateurs saisissent leur jeton de bot Telegram et leur identifiant utilisateur, qui servent de système de commande et de contrôle pour l'exfiltration des données volées. Une fois la configuration terminée, les clients reçoivent le code source compilé du bot à déployer sur les cibles choisies.

Publicité KeyCat Tunisien Ultimate Stealer (Flare) lien poster, inscrivez-vous au essai gratuit (pour y accéder si vous n'êtes pas déjà client)

Un deuxième message Telegram de « KC_Stealer_Bot » présentait une offre plus aboutie et commercialisée sous le nom de « KEYCAT TUNISIAN ULTIMATE STEALER ». Ce message vantait des commandes telles que /build, /victims et /clean, et listait une couverture contre le vol pour toutes les banques tunisiennes, notamment BNA, STB, BT, Attijari, BIAT et UIB.

L'ensemble de commandes de construction/état/nettoyage est cohérent avec le flux de travail du module de bot de contrôle que nous avons précédemment observé dans la télémétrie C2 de Telegram, où le même écosystème exposait des fonctions de construction, d'état et de nettoyage pour l'emballage du voleur et la gestion de l'opérateur.

Le code original que nous avons analysé ne prend en charge qu'une partie des fonctionnalités annoncées par l'attaquant le 10 mai. Dans l'échantillon examiné, ce code ne présente ni routines dédiées au vol de jetons Discord, ni ciblage de banques tunisiennes spécifiques, ni logique explicite de module de portefeuille crypto. C'est pourquoi les affirmations formulées dans la publication Telegram sont importantes : elles constituent des preuves de modifications ultérieures, soit par l'intégration de ces éléments, soit en aval du code source initial du voleur de cryptomonnaie que nous avons découvert.

Le message du 27 mars sur le thème de la Tunisie a marqué le premier changement observé, passant d'une fonctionnalité générique de vol de données à un ciblage financier géographiquement précis ; l'activité ultérieure sur Telegram début avril montre que le même ensemble d'outils s'étend à une distribution commerciale plus large.

Distribution MaaS (7 avril 2026)

La recherche du mot-clé « KeyCat » sur Flare a permis d'identifier deux publications supplémentaires, révélant que le logiciel malveillant avait pénétré les canaux de distribution commerciaux.

Publicité KeyCat (Flare) lien Pour publier, inscrivez-vous à essai gratuit (pour y accéder si vous n'êtes pas déjà client)

Le groupe de cybercriminels « CatCloud » a été repéré sur Telegram faisant la promotion d'une suite complète d'outils et de services de cybercriminalité, se positionnant comme fournisseur de logiciels malveillants en tant que service (MaaS). Parmi ses offres figure le code source de KeyCat Stealer, proposé à 40 $ (avec un tutoriel vidéo). À ce prix, l'annonce cible les utilisateurs peu expérimentés ayant besoin d'un accompagnement.

La chronologie observée, avec l'apparition du code source du voleur sur l'infrastructure des sites de partage de fichiers publics à la mi-février 2026 et l'activité de commercialisation ultérieure basée sur Telegram début avril, combinée à l'évolution de version de « KeyCat Control Bot » à « KeyCat Professional v3.0.0 » (observée dans la télémétrie C2 extraite via Matkap), suggère une évolution possible de l'ensemble d'outils. 

Les acheteurs peuvent déployer indépendamment une instance KeyCat fonctionnelle en modifiant seulement deux constantes (TOKEN et ADMIN_ID) dans le code source. Chaque instance modifiée génère un canal C2 distinct, sans connexion à l'infrastructure de l'opérateur d'origine.

Relancement du service Stealer-as-a-Service (StaaS) (11 avril 2026)

KeyCat se repositionne en tant que StaaS (Flare) lien publier, inscrivez-vous pour le essai gratuit (pour y accéder si vous n'êtes pas déjà client)

Un message Telegram observé le 11 avril 2026 annonçait le retour de KeyCat sous un compte d'administrateur dédié, @keycatadmin, le repositionnant comme une plateforme Stealer-as-a-Service (StaaS) avec des offres criminelles élargies incluant :

  • Accès par voleur : capacité de gestion du vol d'identifiants fournie en tant que service
  • Services premium pour les campagnes de SPAM : opérations d’envoi de messages en masse
  • Opérations CRACK : services de piratage d’identifiants
  • Tous annoncés à des « prix bas compétitifs »

Contrairement au modèle MaaS, où les opérateurs déploient et gèrent eux-mêmes le logiciel malveillant, le modèle StaaS supprime tous les obstacles opérationnels. Les clients paient pour le résultat obtenu plutôt que pour l'infrastructure, ce qui élimine totalement la barrière technique à l'entrée pour les acheteurs potentiels.

Cartographie MITRE ATT&CK

Tactique Technique Sous-technique Preuve à l'appui
Développement des ressources T1587 Développer les capacités T1587.001 Malware Un logiciel de vol d'identité, un RAT et un bot de contrôle conçus par un opérateur ont été confirmés par l'analyse du code source et des données de télémétrie Telegram C2.
Développement des ressources T1583 Acquérir des infrastructures T1583.006 Services Web GitHub Gist signalé par Flare le 23 mars 2026 ; les URL de préparation ont été confirmées dans les messages de télémétrie C2 extraits via Matkap.
Développement des ressources T1584 Infrastructures compromises T1584.004 Server pantaleoagricoltura[.]it WordPress compromis confirmé ; voleur servi depuis /wp-content/plugins/stealer[.]py.
De bout en bout T1059 Interpréteur de commandes et de scripts T1059.006 Python KeyCat stealer est un script Python ; Windows : pythonw.exe "{script_path}" dans le code de persistance ; Linux : /usr/bin/python3 {script_path} dans l'entrée cron.
De bout en bout T1105 Transfert d'outil d'entrée - LaZagne a été récupérée depuis le dépôt Github lors de l'exécution.
Persistence T1547 Exécution de démarrage automatique au démarrage ou à la connexion T1547.001 Clés d'exécution du registre / dossier de démarrage winreg.SetValueEx(regkey, "WindowsUpdateService", 0, REG_SZ, 'pythonw.exe "{script_path}"') sous HKCU\Software\Microsoft\Windows\CurrentVersion\Run; Les messages « Persistance installée » ont été confirmés par la télémétrie C2 extraite via Matkap.
Persistence T1053 Tâche/Travail planifié T1053.003 Cron @reboot /usr/bin/python3 {script_path} >/dev/null 2>&1 écrit via crontab -l tuyau dans install_persistence().
Persistence T1546 Exécution déclenchée par un événement T1546.004 Modification de la configuration du shell Unix (python3 {script_path} &>/dev/null &) annexé à ~/.bashrc in install_persistence().
Évasion défensive T1622 Évasion du débogueur - if sys.gettrace() is not None: sys.exit(0) in anti_debug(), exécuté avant toute logique de collecte.
Évasion défensive T1497 Évasion de virtualisation/sandbox T1497.001 Vérifications du système linux: /proc/cpuinfo lire dans anti_debug() une fonction; sys.exit(0) si des chaînes hyperviseur ou qemu sont présentes.
Évasion défensive T1036 Mascarade T1036.005 Correspondance avec le nom ou l'emplacement d'une ressource légitime Windows: SetConsoleTitleW("svchost.exe") au moment de l'importation. Linux : prctl(15, b"[kworker/0:0]", 0, 0, 0) in hide_process() appelé de become_daemon().
Évasion défensive T1564 Masquer les artefacts T1564.003 fenêtre cachée ShowWindow(GetConsoleWindow(), 0); STARTUPINFO au SW_HIDE appliqué à tous les processus enfants (netsh, powershell, lazagne.exe, pip).
Découverte T1082 Découverte des informations système - Nom d'hôte, système d'exploitation, processeur collectés via platform module ; confirmé dans les messages de télémétrie C2 extraits.
Découverte T1016 Découverte de la configuration réseau du système - Adresse IP locale via socket UDP non transmissif ; adresse IP publique via api.ipify.org; confirmé par les balises C2.
Découverte T1033 Propriétaire du système/Découverte des utilisateurs - getpass.getuser() et socket.gethostname() Collectées et transmises lors de la première balise. Confirmées dans tous les messages de profil de télémétrie de l'hôte C2.
Collection T1119 Collecte automatisée - Parcours récursif de répertoires avec filtre par mot-clé et extension.
Collection T1005 Données provenant des systèmes locaux - Clés SSH, .kdbx, .ovpn, documents nommés d'après les informations d'identification, collectés à partir du système de fichiers local.
Collection T1560 Archiver les données collectées T1560.001 Archives via la bibliothèque keycat_data_<HWID>.zip construit via Python zipfile module.
Accès aux informations d'identification T1552 Identifiants non sécurisés T1552.001 Informations d'identification dans les fichiers Clés pré-partagées Wi-Fi via le champ « Contenu de la clé » de netsh et NetworkManager /etc/NetworkManager/system-connections regex ; fichiers nommés d'identifiants collectés à l'étape 7.
Commander et contrôler T1071 Protocole de la couche application T1071.001 Protocole Web Tout le trafic C2 transite par HTTPS vers api.telegram[.]org.
Commander et contrôler T1102 Service Web T1102.002 Communication bidirectionnelle L'API Telegram Bot est utilisée à la fois pour les commandes entrantes de l'opérateur et pour l'exfiltration sortante sur le même jeton.
exfiltration T1041 Exfiltration sur le canal C2 - Toutes les données collectées ont été exfiltrées via Telegram. sendDocument méthode.

Indicateurs de compromis

Réseau et infrastructure

Type Valeur
URL de préparation des voleurs pantaleoagricoltura[.]it/wp-content/plugins/stealer.py limewire[.]com/dE4Kfzx3bKk2Eefa Pastebin[.]com/uiWhrkRn Pastebin[.]ubuntu[.]com/pzn6Gh6XKb/H/plain
Constructeur de voleurs / Portail client keycat.x10[.]mx/Tunisie
Points d'extrémité C2 api.telegram[.]org/bot{TokenValue}/sendMessage api.telegram[.]org/bot{TokenValue}/sendDocument
LaZagne – Credential Dumper Github[.]com/AlessandroZ/LaZagne/releases/download/2.4.3/lazagne.exe Github[.]com/AlessandroZ/LaZagne.git

Infrastructure Telegram

Type Valeur
Jeton de robot 8580574873:AAEpwGPFMGWBDnNfGxwd9XGtl44y0nnDdwk
ID de chat administrateur 6704703899
Gestionnaire d'administrateur StaaS @keycatadmin

Stratégies de détection et de défense

Le voleur KeyCat ne se base pas sur un seul indicateur bruyant. La plupart des événements individuels qu'il génère (exécution de Python, utilisation de PowerShell, trafic HTTPS) peuvent paraître anodins pris isolément. Le signal apparaît lorsque ces événements se produisent en séquence, notamment lorsqu'ils sont liés à un même processus. La détection est donc plus fiable lorsqu'elle se concentre sur l'enchaînement des comportements plutôt que sur des alertes isolées.

Indicateurs comportementaux des points de terminaison

Fenêtres

  • Un pythonw.exe ou python.exe lançant netsh wlan show profiles suivi de netsh wlan show profile name= L'utilisation de la clé « clear » avec CREATENOWINDOW est anormale en dehors des outils de gestion de réseau. La chaîne de sous-processus est visible dans les événements de création de processus Sysmon/EDR, même en cas de suppression de la fenêtre.
  • Le même processus récupère ensuite LaZagne directement depuis GitHub (/AlessandroZ/LaZagne/releases/download/) et exécute lazagne.exe depuis %APPDATA%. Cette séquence, téléchargement en cours d'exécution suivi d'une extraction d'identifiants, est un indicateur fort d'activité malveillante, notamment sur les terminaux où l'utilisation d'outils basés sur Python est inattendue.
  • La persistance via une clé Exécuter (WindowsUpdateService) ne correspond pas au comportement légitime des mises à jour Windows et doit être signalée. 
  • L'exécution de PowerShell avec l'option -ExecutionPolicy Bypass pour capturer des captures d'écran à l'aide de System.Windows.Forms est remarquable lorsqu'elle apparaît comme un processus enfant d'un processus Python effectuant d'autres tâches de collecte.

Linux

  • KeyCat se déclenche via une double duplication standard (fork → setsid → fork), puis renomme le processus grâce à une routine distincte (prctl(PR_SET_NAME, "kworker/0:0")) après un court délai. La détection repose sur des incohérences dans /proc : les threads de travail du noyau légitimes ont une ligne de commande vide, tandis que ce processus expose le chemin du script Python.
  • LaZagne est cloné dans ~/.config/LaZagne/ et y reste après son exécution. Ce comportement est inhabituel sur les systèmes où les outils de développement ne sont pas attendus. Le répertoire persiste après l'exécution et constitue un artefact fiable du système de fichiers pour une recherche a posteriori.
  • La persistance est établie par des entrées @reboot répétées dans la crontab de l'utilisateur (par exemple, python3). Chaque exécution peut ajouter une entrée supplémentaire ; par conséquent, l’examen de la seule ligne la plus récente peut s’avérer insuffisant. Une comparaison complète du crontab avec une configuration de référence fonctionnelle est nécessaire pour identifier toute persistance résiduelle.

Multiplateforme

  • L'élément comportemental principal est la séquence d'exécution suivante : requête GET vers api.ipify[.]org → requête POST vers api.telegram[.]org → requête POST vers api.telegram[.]org/sendDocument, le tout provenant d'un seul processus Python en quelques secondes. Aucun appel individuel n'est malveillant en soi, mais c'est la séquence ordonnée, issue d'un processus Python autre qu'un navigateur, qui déclenche la détection.
  • Dans la télémétrie du système de fichiers, surveillez keycat_data_<12-hex>.zip, capture d'écran .png et mots de passe L'apparition et la disparition d'un fichier .txt dans le répertoire temporaire du système au cours de la même fenêtre d'exécution, ainsi que la création confirmée d'une archive ZIP suivie de sa suppression immédiate et d'un appel sortant à sendDocument, constituent une méthode d'exfiltration très fiable, quel que soit le nom de l'archive.

Contrôles au niveau du réseau

  • Toute requête HTTPS POST adressée à api.telegram[.]org et contenant le jeton du bot 8580574873:AAEpwGPFMGWBDnNfGxwd9XGtl44y0nnDdwk dans son URL doit déclencher un blocage et une alerte immédiats. L'inspection TLS est indispensable ; sans elle, le trafic Telegram n'est pas identifiable au niveau du réseau et ne peut être distingué d'une utilisation légitime.
  • Soumettez le jeton à [email protected] en cas de révocation, la révocation du jeton met fin simultanément aux capacités de C2 et d'exfiltration pour tous les déploiements KeyCat actifs sur cette version.
  • Bloquez et surveillez tout le trafic DNS et vers pantaleoagricoltura[.]it, serveur de transit compromis confirmé hébergeant activement la charge utile du voleur. 
  • Sur les points de terminaison non destinés aux développeurs, signalez les processus Python (tels que python.exe, pythonw.exe, python3) initiant des requêtes HTTP sortantes vers github[.]com ciblant le chemin de publication de LaZagne, ainsi que tout processus autre qu'un navigateur appelant api.telegram[.]org/sendDocument. La méthode API /sendDocument ne présente aucun schéma d'appel standard côté utilisateur depuis un point de terminaison. 
  • Les URL connues pour le partage de fichiers et le copier-coller doivent être bloquées pour un faible risque opérationnel. Il convient de surveiller les nouvelles infrastructures de test, notamment les services de copier-coller et les liens distribués via Telegram, car les opérateurs sont susceptibles de faire tourner l'hébergement entre les différentes phases de développement.

Renseignements sur les cybermenaces via Flare

Le Gist GitHub contenant le code source du voleur de KeyCat a été signalé comme "Haute" gravité par FlareLa recherche par mot-clé « keycat » effectuée via Flare a ensuite révélé des publications sur des chaînes Telegram distinctes, notamment des activités centrées sur la Tunisie, indiquant une escalade significative de la menace (vols ciblés à l'échelle régionale, commercialisation par les voleurs et activités MaaS/StaaS). La surveillance active du compte @keycatadmin demeure la priorité absolue en matière de collecte de données, et toute nouvelle tokenisation, mise à jour de la charge utile ou modification de l'infrastructure sera probablement détectée. Flare.

Rotation des identifiants et réponse aux incidents

Considérez comme exfiltrées toutes les informations d'identification accessibles depuis le compte utilisateur compromis. Le voleur KeyCat collecte les clés pré-partagées Wi-Fi, les identifiants de navigation enregistrés via LaZagne, les clés privées SSH (id_rsa, id_rsa.pub) et les documents contenant des mots-clés spécifiques, notamment les fichiers .kdbx et .ovpn. Ces documents sont compressés dans une archive ZIP et transmis via Telegram.

En cas d'exécution confirmée ou suspectée, vous pouvez prioriser les éléments suivants :

  • Rotation systématique de toutes les informations d'identification stockées dans le navigateur, des clés pré-partagées Wi-Fi enregistrées et de toutes les clés SSH présentes dans /.ssh/ – celles-ci sont collectées sans condition, indépendamment du nom de fichier ou de la correspondance des mots clés.
  • Audit %TEMP% / /temp pour les données keycat_résiduelles_ .zip, mots de passe_ .txt ou capture d'écran_ .png – tous ces fichiers sont supprimés après l'exfiltration.
  • Supprimez les répertoires de préparation de LaZagne (%APPDATA%\LaZagne\ sous Windows ; ~/.config/LaZagne/ sous Linux).
  • Sous Linux, examinez le fichier crontab complet et comparez le fichier /.bashrc à une configuration de référence. Sous Windows, vérifiez que la clé HKCU\Software\Microsoft\Windows\CurrentVersion\Run ne pointe pas vers pythonw.exe.

Ce que les équipes de sécurité peuvent retenir

KeyCat est un outil de vol d'informations multiplateforme pleinement opérationnel, doté d'une infrastructure de test active et d'un canal C2 Telegram opérationnel. Cet ensemble d'outils permet le vol d'identifiants, une implémentation persistante et des fonctionnalités interactives post-exploitation grâce à un jeton de bot partagé unique, simplifiant ainsi son déploiement.

La vente du code source de KeyCat pour 40 dollars et sa relance sous le nom de StaaS, accompagnée de nouvelles offres malveillantes, étendent considérablement la portée opérationnelle de cette menace. À ce prix, et avec un tutoriel inclus, les déploiements indépendants avec jetons reconfigurables et identifiant de chat d'administration sont opérationnellement et financièrement réalisables à grande échelle. La détection spécifique aux jetons devient immédiatement inefficace face aux versions dérivées ; seules les signatures comportementales et structurelles constituent un niveau de détection durable.


Surveillance continue des mots clés pour les variantes de KeyCat via FlareLe suivi actif de @keycatadmin pour les mises à jour des charges utiles et de l'infrastructure, ainsi que la détection comportementale adaptée au mode d'exécution du voleur, y compris la mise en scène de LaZagne, les requêtes API Telegram provenant des processus non liés à la messagerie, les écritures persistantes Linux doubles, restent les actions défensives hautement prioritaires. 

Cyber ​​Threat Intelligence

Détectez les voleurs d'informations et les identifiants volés avant que les attaquants ne les exploitent.

Les systèmes de classification automatisés de Flare ont détecté KeyCat dès la publication de son code source, puis ont suivi sa commercialisation sur les chaînes Telegram en temps réel. Bénéficiez de la même visibilité continue sur les logiciels malveillants émergents, les identifiants volés et les offres MaaS ciblant votre organisation.

Détection automatisée des logiciels malveillants et du code source des voleurs de données en conditions réelles
Surveillance continue des chaînes Telegram, des marchés du dark web et des sites de partage de contenu.

Références et sources

  1. Responsable initial du renseignement : Flare Global Search – Flare.io
  2. Source Code on Gist: gist.github.com/bvm7x7/5fdcbf6fbe126b28fd30a0048dc3fcb7
  3. Données de télémétrie Telegram C2 (extraites via Matkap) – matkap.cti.monster
  4. Exemple SANS ISC : InfoStealer Python avec serveur Web de phishing intégré – isc.sans.edu/diary/31924
  5. Voleur PXA – beazley.security/insights/ghost-in-the-zip-new-pxa-stealer-and-its-telegram-powered-ecosystem

Partager l'article

Publications connexes

Tout voir
07.13.2026

Disparités en matière d'arrestation et de condamnation des auteurs de menaces russophones

07.09.2026

La succession Tudou : comment trois plateformes se sont partagé un marché des garanties de 12 milliards de dollars

07.08.2026

Surveillance des cyberattaques directement liées au conflit militaire américano-israélo-iranien