Mustang Panda rafforza CoolClient con un rootkit kernel difficile da rilevare
APT

Image d’illustration générée par IA

Mustang Panda renforce CoolClient avec un rootkit kernel difficile à détecter

Analyse du nouveau variant de CoolClient par Mustang Panda, équipé d'un rootkit kernel indétectable, observé au Pakistan, Mongolie et Myanmar.

Texte généré par intelligence artificielle, publié sans relecture humaine. Transparence IA

Nouvelle variante observée au Pakistan, en Mongolie et au Myanmar

Le 16 août 2026, Kaspersky a publié une analyse d’une nouvelle variante de CoolClient, une backdoor associée à HoneyMyte, également connu sous le nom de Mustang Panda.

La principale nouveauté est msagent.sys, un pilote Windows signé fonctionnant en mode kernel. Installé comme service, il communique avec la backdoor en mode utilisateur au moyen de requêtes IOCTL. CoolClient peut ainsi dissimuler des processus, des fichiers, des clés et valeurs de registre, des modules kernel ainsi que des informations sur les connexions réseau.

Les intrusions analysées ont touché le Pakistan, la Mongolie et le Myanmar. L’ensemble plus large des victimes comprend également la Russie et des entités gouvernementales confirmées.

CoolClient est connu du public depuis 2022, année où il a été analysé par Sophos. Trend Micro a publié une analyse complémentaire en 2023, tandis que Kaspersky a documenté en 2025 l’ajout du vol du contenu du presse-papiers et de l’interception du trafic HTTP afin de dérober des identifiants.

La variante la plus récente conserve ces fonctions et ajoute des capacités de contrôle au niveau du kernel. Dans le cas observé au Myanmar, les opérateurs ont utilisé PlugX comme implant post-compromission initial avant d’installer CoolClient.

Une chaîne d’infection conçue pour paraître légitime

Avant l’exécution, les opérateurs ont ajouté des exclusions à Microsoft Defender pour un répertoire contrefait et pour l’exécutable utilisé afin de charger la DLL malveillante.

Le répertoire créé imite le chemin de Windows Defender :

Microsoft\Windows Defender

Il contient un exécutable légitime de Sangfor, habituellement nommé Sang.exe, renommé defender.exe. Le programme charge la DLL malveillante libngs.dll par DLL sideloading, une technique qui exploite le comportement attendu d’une application de confiance pour exécuter du code non autorisé.

La chaîne en mode utilisateur comprend plusieurs éléments :

  • libngs.dll, le loader initial ;
  • loadcert.ini, le deuxième étage chiffré ;
  • cert.ini, la backdoor finale ;
  • time.ini, le fichier de configuration.

La DLL contrefaite expose des fonctions qui imitent celles du composant d’origine. Ces fonctions fictives appellent OutputDebugStringA puis s’arrêtent, tandis que le code malveillant est lancé depuis DllMain. Le loader déchiffre ensuite loadcert.ini et le charge directement en mémoire.

Pour assurer sa persistance, le malware peut créer une tâche planifiée qui lance defender.exe avec les privilèges SYSTEM. Il peut également ajouter une entrée AutoRun ou installer la backdoor comme service Windows. Avant de choisir cette dernière méthode, il vérifie la présence de produits de sécurité, notamment de plusieurs processus de 360 Total Security.

CoolClient prépare également l’élévation de privilèges et l’injection du payload dans synchost.exe. La procédure combine RPC et parent-process spoofing, faisant passer le processus malveillant pour l’enfant d’un processus légitime et réduisant la probabilité que l’utilisateur voie une demande d’autorisation administrative.

Après l’élévation de privilèges, la backdoor extrait le pilote compressé msagent.sys, l’installe comme service et le charge dans le kernel.

Comment msagent.sys modifie la visibilité de Windows

CoolClient utilise des requêtes IOCTL pour configurer le pilote. Ces commandes permettent d’enregistrer son propre processus comme fiable, de transmettre l’adresse IPv4 du serveur de commande et contrôle et de définir les processus, fichiers et clés à dissimuler ou à protéger.

Le pilote lit une partie de sa configuration dans :

\REGISTRY\MACHINE\SYSTEM\RNG

Pour dissimuler les modules kernel, msagent.sys localise dynamiquement PsLoadedModuleList au moyen de MmGetSystemRoutineAddress. Cette structure contient la liste des pilotes chargés ; en supprimant les entrées correspondantes, le rootkit empêche les outils standard d’afficher certains modules.

Pour masquer les processus, le pilote localise le champ ActiveProcessLinks dans la structure Windows EPROCESS. Il peut détacher un processus de la liste des processus actifs, puis le restaurer ultérieurement. La recherche dynamique du champ évite de dépendre d’un offset fixe, susceptible de varier selon les versions de Windows.

Le pilote enregistre également des callbacks liés aux objets, aux processus et au chargement des images. Il peut ainsi limiter l’accès aux processus protégés, notamment au code exécuté dans synchost.exe. Un programme qui tente d’ouvrir ce processus ou l’un de ses threads peut recevoir des droits réduits, ce qui complique l’arrêt du processus et l’injection de code.

La protection des fichiers repose sur un filesystem minifilter. Les opérations sur le système de fichiers sont comparées à une liste de chemins protégés et, en cas de correspondance, l’accès peut être refusé. Un mécanisme similaire protège le registre : certaines clés et valeurs n’apparaissent pas lors de l’énumération, tandis que les tentatives d’ouverture, de modification ou de suppression peuvent renvoyer STATUS_ACCESS_DENIED.

Un toolkit kernel plus vaste que nécessaire

L’échantillon contient 33 gestionnaires IOCTL, alors que seuls trois ont été observés lors de l’utilisation courante. Les autres révèlent des fonctions potentiellement disponibles pour les opérateurs :

  • injection de shellcode ;
  • terminaison de processus ;
  • suppression de la protection PPL ;
  • modification de valeurs de registre ;
  • désactivation des callbacks de notification du kernel ;
  • chargement d’autres pilotes ;
  • écriture à des adresses arbitraires du kernel ;
  • dissimulation de processus et de modules.

Kaspersky n’a pas observé l’activation de toutes ces capacités. Leur présence indique toutefois que msagent.sys n’est pas un simple composant destiné à masquer des fichiers ou des processus : il s’agit d’un toolkit kernel capable d’étendre le contrôle exercé sur l’hôte selon les besoins de l’opérateur.

Le pilote agit également sur la visibilité des connexions. Il filtre les informations renvoyées par Nsiproxy, le composant Windows qui expose aux processus en mode utilisateur une partie des données réseau. CoolClient transmet au pilote l’adresse IPv4 de son serveur C2 ; msagent.sys peut ensuite supprimer cette correspondance avant qu’elle ne soit renvoyée aux outils de diagnostic.

La connexion avec l’infrastructure de commande et contrôle peut ainsi rester active tandis que les programmes qui interrogent le réseau depuis le mode utilisateur n’affichent pas l’adresse correspondante.

Ce que les équipes de sécurité doivent vérifier

La simple recherche de Sang.exe, defender.exe ou libngs.dll ne suffit pas. Une investigation devrait couvrir les services Windows, les pilotes chargés, les tâches planifiées, les clés AutoRun et les exclusions configurées dans Microsoft Defender.

Les éléments suivants doivent notamment être examinés :

  • defender.exe, Sang.exe, libngs.dll, loadcert.ini, cert.ini, time.ini et msagent.sys ;
  • les modifications apportées à \REGISTRY\MACHINE\SYSTEM\RNG ;
  • les anomalies touchant les processus et les modules associés à synchost.exe ;
  • les tentatives de contournement de l’UAC, l’utilisation de RPC et le parent-process spoofing ;
  • les chargements par DLL sideloading ;
  • les pilotes signés avec le certificat associé à Nanjing Ranyi Technology Co., Ltd. ;
  • les indicateurs liés à PlugX et à CoolClient.

Le certificat utilisé par le pilote était valide de 2013 à 2014. D’autres pilotes malveillants l’utilisant ont été identifiés, sans qu’un lien direct avec CoolClient ait été établi. De même, les références présentes dans les chaînes PDB, telles que « Nanjing Laboratory » et « Zhang Xuejie Yunnan m », ne permettent pas à elles seules d’identifier le développeur ni de confirmer l’implication d’un pays donné.

Le confinement devrait s’appuyer sur des sources indépendantes du seul mode utilisateur. Il est recommandé de comparer les énumérations de processus, de modules, de fichiers, du registre et du réseau à l’aide d’outils hors ligne ou de collectes réalisées depuis un environnement fiable. La suppression apparente de la backdoor ne permet pas de considérer le système comme sain si le pilote ou d’autres mécanismes de persistance sont toujours présents.

Aucun correctif spécifique à CoolClient n’est indiqué. On ignore également si cette menace ou cette variante a été ajoutée au catalogue Known Exploited Vulnerabilities de la CISA, ou si une échéance lui est associée.

L’utilisation du kernel modifie le profil opérationnel de la menace : CoolClient ne se contente plus d’espionner et de gérer des fichiers, mais peut modifier ce que Windows rend visible aux outils de sécurité.

À lire aussi

Sources

Cet article est une réécriture originale fondée sur les sources ci-dessous.

Sujets liésMustang PandaCoolClientrootkit kernelmsagent.sysDLL sideloadingPakistanMongolieMyanmar
Retour à l'accueil