Avant-propos
Les chercheurs d’Unit 42 ont suivi des campagnes d’hameçonnage qui utilisent PhantomVAI Loader pour diffuser des malwares infostealers par le biais d’une chaîne d’infection furtive multi-étape. Les acteurs de la menace mènent ces campagnes pour diffuser des scripts et des chargeurs obfusqués qui utilisent la stéganographie pour dissimuler les payloads.
Le chargeur initialement utilisé dans ces campagnes a été baptisé Katz Stealer Loader, en raison du malware Katz Stealer qu’il diffuse. Les pirates informatiques vendent ce nouvel infostealer sur des forums clandestins sous la forme de Malwares as a Service (MaaS). Récemment, nous avons observé que le chargeur fournit désormais d’autres infostealers, tels que AsyncRAT, XWorm, FormBook et DCRat. Compte tenu de ce comportement unique, nous suivons désormais le chargeur sous un nouveau nom : PhantomVAI Loader. Nous avons choisi ce nom en raison de la discrétion du chargeur et de la méthode VAI qu’il exécute.
Les acteurs de la menace déploient PhantomVAI Loader dans le cadre d’attaques menées dans le monde entier, ciblant des organisations opérant dans un large éventail de secteurs :
- Industrie
- Enseignement
- Fournisseurs d’énergie
- Technologies
- Santé
- Information
- Pouvoirs publics
Nous explorons chaque étape de la chaîne d’infection à plusieurs niveaux, depuis le premier e-mail d’hameçonnage jusqu’au déploiement final du payload de l’infostealer. Nous décrivons également la fonctionnalité du Katz Stealer en particulier.
Les clients de Palo Alto Networks sont mieux protégés contre cette menace grâce aux produits et services suivants :
Si vous pensez que votre entreprise a pu être compromise ou si vous faites face à une urgence, contactez l’équipe Unit 42 de réponse à incident.
| Unit 42 – Thématiques connexes | Infostealers |
Contexte
Le 13 avril 2025, un utilisateur appelé katzadmin a publié un message sur un nouvel infostealer nommé Katz Stealer. L’utilisateur a publié ces messages sur le forum clandestin BreachForums, puis sur les forums exploit[.]in et xss[.]is. Katz Stealer est un type de MaaS qui collecte des données sensibles à partir de diverses applications hébergées sur des machines infectées.
Nous avons observé que les acteurs de la menace diffusaient Katz Stealer par le biais d’e-mails d’hameçonnage contenant du code JavaScript ou VBS obfusqué, des scripts PowerShell et un chargeur .NET. Initialement appelé Katz Stealer Loader (et également connu sous le nom de VMDetectLoader), ce chargeur délivre désormais des infostealers tels que AsyncRAT, XWorm, FormBook et DCRat. Nous suivons ce chargeur sous un nouveau nom : PhantomVAI Loader.
Analyse de la chaîne d’attaque
Le cycle d’attaque de PhantomVAI Loader commence par une opération d’hameçonnage et se termine par le déploiement de payloads. La figure 1 résume les étapes de ce processus.

E-mails d’hameçonnage
La chaîne d’infection commence par un e-mail d’hameçonnage contenant une pièce jointe malveillante. La figure 2 montre un exemple d’un des e-mails d’hameçonnage.

Les e-mails évoquent des thèmes tels que les ventes, les paiements et les actions en justice afin d’inciter les utilisateurs ciblés à ouvrir la pièce jointe malveillante. Certains de ces e-mails intègrent des attaques par homographe,qui consistent à remplacer les caractères de l’alphabet latin de l’e-mail par d’autres caractères Unicode ou mathématiques. Les attaquants utilisent cette technique pour contourner les défenses des messageries électroniques en déguisant des termes que les mécanismes de sécurité signalent habituellement comme suspects.
Étape 1 : Scripts JavaScript et VBS
Les pièces jointes des e-mails d’hameçonnage sont des fichiers JavaScript ou VBS archivés. Les acteurs de la menace obfusquent ces scripts pour tenter de contourner les détections. La figure 3 montre un exemple de JavaScript obfusqué provenant de l’un de ces fichiers.

Le script intègre un script PowerShell encodé en Base64 et l’exécute pour télécharger et passer à l’étape suivante de l’infection.
Étape 2 : script PowerShell
Le script PowerShell décodé télécharge et charge l’étape suivante de l’infection. La figure 4 montre un exemple de script PowerShell décodé.

Le script PowerShell télécharge un fichier GIF ou un autre fichier image qui dissimule le payload du chargeur. Cette technique est connue sous le nom de stéganographie. Dans les infections que nous avons observées, les acteurs de la menace ont utilisé cette technique pour intégrer du texte dans l’image. Le texte est un fichier DLL encodé en Base64.
Ensuite, le script extrait les données Base64 en recherchant des chaînes spécifiques représentant le début et la fin du texte encodé. Dans ce cas, le script PowerShell recherche tout le texte compris entre <<sudo_png>> et <<sudo_odt>>. Ce texte est un DLL encodé. Dans d’autres cas, les acteurs de la menace ont inséré le texte encodé entre différents en-têtes. La figure 5 montre un exemple de texte encodé incorporé dans un fichier GIF à l’aide de la stéganographie.

Après avoir extrait le texte encodé de l’image ou du fichier GIF, le script PowerShell décode le texte et charge le DLL. Le fichier DLL chargé est le payload du chargeur .NET que nous appelons PhantomVAI Loader.
Le script PowerShell invoque une méthode appelée VAI dans PhantomVAI Loader et lui fournit plusieurs paramètres. Le premier paramètre est l’URL du serveur de commande et de contrôle (C2) qui héberge le payload final.
Étape 3 : Exécution de PhantomVAI Loader
PhantomVAI Loader est écrit en C#, et la méthode VAI compte trois fonctionnalités principales :
- Exécution des contrôles des machines virtuelles
- Établissement de la persistance
- Récupération du payload final
Détection des machines virtuelles
Lorsque PhantomVAI Loader est exécuté, il effectue des contrôles pour déterminer s’il s’exécute sur une machine virtuelle, comme le montre le code ci-dessous. La partie du code relative à la détection des machines virtuelles semble être basée sur un projet GitHub nommé VMDetector. Si l’une des vérifications renvoie une réponse vraie, PhantomVAI Loader quitte le système et cesse de s’exécuter.
|
1 2 3 4 5 6 7 8 9 |
Detected as a virtual machine given key computer information. Detected as a virtual machine given bios information. Detected as a virtual machine given hard disk information. Detected as a virtual machine given PnP devices information. Detected as a virtual machine given Windows services information. |
Établir la persistance
PhantomVAI Loader utilise une ou toutes les méthodes suivantes pour créer la persistance :
- Une tâche planifiée exécute des commandes PowerShell pour télécharger un fichier à partir d’une URL contrôlée par l’attaquant. La tâche enregistre le fichier sous un nom et une extension spécifiques, puis l’exécute.
- Une tâche planifiée exécute un script à l’aide de wscript.exe. Le chemin d’accès à ce script est fourni en tant que paramètre de la ligne de commande.
- Une clé de registre permet d’exécuter un fichier spécifique. Le chemin d’accès au fichier est également fourni en tant qu’argument de ligne de commande.
Récupération du payload et de l’injection
PhantomVAI Loader télécharge le payload à partir de l’URL spécifiée comme paramètre de ligne de commande dans le script PowerShell de l’étape 2. Il injecte ensuite ce payload dans un processus cible également défini par un paramètre de ligne de commande, à l’aide de la technique de procédé d’évidement. Le chargeur injecte le payload dans un processus situé dans l’un de ces quatre chemins, en fonction de l’argument de la ligne de commande et de l’architecture du payload :
- C:\Windows\Microsoft.NET\Framework\v4.0.30319\
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
- C:\Windows\System32\
- C:\Windows\SysWOW64\
Dans la plupart des cas observés au moment de la rédaction de cet article, PhantomVAI Loader a injecté le payload dans l’exécutable Microsoft Build Engine, MSBuild.exe. La figure 6 montre un exemple d’une telle injection, dans le contexte de la chaîne d’infection.

Katz Stealer : Un nouveau stealer Malware-as-a-Service
PhantomVAI Loader a évolué pour fournir un certain nombre d’infostealers. Katz Stealer étant le moins connu et le moins documenté, nous le détaillons ici.
Les acteurs de la menace utilisent Katz Stealer pour voler des données à partir de machines infectées, telles que les éléments suivants :
- Identifiants du navigateur
- Données du navigateur (telles que les cookies, l’historique, les données de connexion)
- Portefeuilles de crypto-monnaies
- Données Telegram
- Données Discord
- Informations sur le système d’exploitation
- Données de flux et de jeux
- Données VPN
- Données des clients FTP
- Données des applications de communication et de messagerie
- Données des clients de messagerie
- Captures d’écran
- Données du presse-papiers
Katz Stealer vérifie également la langue de la machine et la compare à une liste de codes pays codés en dur en utilisant les API suivantes :
- GetKeyboardLayout
- GetLocaleInfoA
- GetSystemDefaultLangID
Les codes pays que Katz Stealer vérifie font tous partie de la Communauté des États indépendants (CEI) comme le montre la figure 7. S’il trouve une correspondance, Katz Stealer arrête l’exécution. Cette vérification de la langue et le comportement qui s’ensuit pourraient fournir un indice sur l’origine de l’auteur du malware.

Conclusion
Cet article présente des campagnes d’hameçonnage qui diffusent PhantomVAI Loader, également connu sous le nom de Katz Stealer Loader. Combinant l’ingénierie sociale via des e-mails d’hameçonnage, des scripts obfusqués, la stéganographie et un chargeur .NET, cette chaîne d’infection multi-étapes met en évidence les efforts déployés par les attaquants pour éviter d’être détectés et contourner les défenses.
Nos recherches mettent en évidence l’évolution de ce chargeur dans l’écosystème de la cybercriminalité. Alors qu’au départ les acteurs de la menace utilisaient le chargeur uniquement pour diffuser Katz Stealer, des observations récentes montrent que le chargeur distribue désormais d’autres souches de malwares, notamment AsyncRAT, XWorm, FormBook et DCRat.
Les offres MaaS telles que Katz Stealer constituent une menace omniprésente qui peut avoir un impact significatif sur la sécurité et la vie privée en exposant des données sensibles telles que des mots de passe, des données de réseau, des e-mails et des fichiers. Il est essentiel de comprendre les cycles d’attaque et les techniques utilisées par les acteurs de la menace pour diffuser ces payloads malveillants afin de garantir la sécurité de l’organisation.
Protection et atténuation des risques par Palo Alto Networks
Les clients de Palo Alto Networks sont mieux protégés contre les menaces mentionnées ci-dessus grâce aux produits et services suivants :
- Les modèles de Machine Learning d’Advanced WildFire ont été mis à jour sur la base des indicateurs de compromission (IoC) identifiés dans cette recherche.
- Cortex XDR et XSIAM aident à prévenir toutes les menaces décrites ci-dessus à l’aide du moteur de prévention des malwares. Cette approche combine plusieurs couches de protection, dont Advanced WildFire, la protection comportementale contre les menaces et le module Local Analysis afin de bloquer les malwares – connus ou non – avant qu’ils ne puissent impacter les terminaux.
La figure 8 montre deux exemples d’alertes de détection que les e-mails de cette campagne déclenchent dans Cortex XDR.

Si vous pensez que votre entreprise a pu être compromise ou si vous faites face à une urgence, contactez l’équipe Unit 42 de réponse à incident ou composez l’un des numéros suivants :
- Amérique du Nord : Gratuit : +1 (866) 486-4842 (866.4.UNIT42)
- Royaume-Uni : +44 20 3743 3660
- Europe et Moyen-Orient : +31.20.299.3130
- Asie : +65.6983.8730
- Japon : +81 50 1790 0200
- Australie : +61.2.4062.7950
- Inde : 00080005045107
Palo Alto Networks a partagé ces conclusions avec les autres membres de la Cyber Threat Alliance (CTA). Les membres de la CTA s’appuient sur ces renseignements pour déployer rapidement des mesures de protection auprès de leurs clients et perturber de manière coordonnée les activités des cybercriminels. Cliquez ici pour en savoir plus sur la Cyber Threat Alliance.
Indicateurs de compromission
Exemple de hachage SHA256 pour l’archive
- 02aa167e4bb41e3e40a75954f5a0bd5915f9a16fd6c21b544a557f2a7df3c89b
Exemples de hachages SHA256 pour JavaScript
- e663916cc91b4285a1ee762716ff7ce4537153c7893e2d88c13c7e57bbb646a9
- 45fddf55acb50df5b027701073dee604b4135f750c585b29d6dcac824f26ae00
- 9f28f82d21fe99d0efdcab403f73870d68fd94e6d0f762e658d923ccd1e7424c
- 05d66568017f2c2e417fa6680f9b4fa4a8a9bc1b7256fe46fbf3e71956b99773
- 4346c3c08df612b8bcd23a3b57845755bafb0efc57ff77203f8da3b46628a008
- 0c0dae4d7da069c928f06addb1c5c824e820e4556a1244142f56227954bf9c7d
- 3a039ce210a0b5ff65f57d304519b885bae91d1bec345c54e59e07bc39fca97e
Hachages SHA256 pour PhantomVAI Loader
- 4ab4a37db01eba53ee47b31cba60c7a3771b759633717e2c7b9c75310f57f429
- 9ae50e74303cb3392a5f5221815cd210af6f4ebf9632ed8c4007a12defdfa50d
- 893ee952fa11f4bdc71aee3d828332f939f93722f2ec4ae6c1edc47bed598345
- b60ee1cd3a2c0ffadaad24a992c1699bcc29e2d2c73107f605264dbf5a10d9b6
- 0df13fd42fb4a4374981474ea87895a3830eddcc7f3bd494e76acd604c4004f7
- 6051384898e7c2e48a2ffb170d71dbf87e6410206614989a037dac7c11b8d346
- 01222c6c2dbb021275688b0965e72183876b7adb5363342d7ac49df6c3e36ebe
- 6f7c5bad09698592411560a236e87acae3195031646ff06a24f1cfada6774ba6
- 6aa2989ebb38e77a247318b5a3410b5d4f72b283c7833a0b800ea7d1de84ccc6
- 4c5d7e437f59b41f9f321be8c17ae1f128c04628107a36f83df21b33d12ff8db
- 639eb0d2c2da5487412e7891638b334927232ff270781fad81dc5371f44f7c8e
- 553d76d0c449377be550570e65e2bcae4371964fc3b539a1e1022d80699da5db
- a7993775f4518c6c68db08e226c11e51f9bc53314e4ff9385269baac582e2528
- 7ddce5be3642b66c7559821e26877c9f0242c748da64b2e68a81844bb1a6b148
- 84e0a543df302b18f1188139160fc5a8bd669da071e492453d5d6756064ee568
- 97b76d61941b790deff9f025dec55484e32ebff32b1b6e173d6fbf42cd8996ef
- bf6a5e37097330d7d68b6ac3deb6a10a1d3269be575fd51315774d1e7e1eca34
- a62a81785714844a099a918c66df9367b5eb14df06e589d59bc81f392358c5cc
- 920309f3822f993afeaa8ec70b4ef6b43dd2562be85cc2985efedc6cda2e7578
- 421c4b4b53d291da2b53c068a491b3913d92fe0eb6f330861e7b60f3d9f8eee7
- 87fae395c0e9ce3631dece94971befa578623ff0540d06539f583df921568814
- 4b8bde867c06b617d731ea9e965bf64800330701942324e475b8119352122e7c
- 3c6a8132df3351e2b7d186d0b3f41847e6920ebcb940548e3c9ed274901104c2
- 76cbb0abd9511aab2cc9dda993e3b9ab77afb09d2959f143647065ca47e725cc
- ed1b4a03595c59e5a90dd4f02f1993a2c5a43ca46a33aab0d15a1bbb1f8b3d30
- c44bac8b66ad11756b4c5ff3b1cd7e1187c634088f9e7aa2250067033df24e8d
- 63dfdb4927c0bca64f8952904f463330360eb052f2a2a749bf91a851a2be89b4
- 373c820cc395ea5b9c6f38b9470913e6684e8afea59e9dfeb3da490014074bf1
- b263df6b58c9259000e45a238327de8c07e79f2e7462c2b687c1c5771bac1dd5
- f05bc36211301087e403df09daa014ea8f04f5bdae5cef75eb866b56b82af2d6
- c45d3b6d2237fc500688a73d3ba18335d0002917f1a1f09df6934c87deaa097f
- fcad234dc2ad5e2d8215bcf6caac29aef62666c34564e723fa6d2eee8b6468ed
- e05b7f44ef8d0b58cfc2f407b84dcff1cb24e0ec392f792a49ad71e7eab39143
- 87c9bede1feac2e3810f3d269b4492fe0902e6303020171e561face400e9bdb4
- c3de728850dc1e777ad50a211a4be212ca6c4ac9d94bf7bb6d5f7fe5f4574021
- e5daa86418ac444d590a2c693cd7749d87134c47d8e0dbac30c69f23a8e8131f
Hachages SHA256 pour Katz Stealer
- a6b736988246610da83ce17c2c15af189d3a3a4f82233e4fedfabdcbbde0cff0
- 74052cf53b45399b31743a6c4d3a1643e125a277e4ddcfcad4f2903b32bc7dc4
- 20bde6276d6355d33396d5ebfc523b4f4587f706b599573de78246811aabd33c
- e345d793477abbecc2c455c8c76a925c0dfe99ec4c65b7c353e8a8c8b14da2b6
- 96ada593d54949707437fa39628960b1c5d142a5b1cb371339acc8f86dbc7678
- 925e6375deaa38d978e00a73f9353a9d0df81f023ab85cf9a1dc046e403830a8
- b249814a74dff9316dc29b670e1d8ed80eb941b507e206ca0dfdc4ff033b1c1f
- 9b6fb4c4dd2c0fa86bffb4c64387e5a1a90adb04cb7b5f7e39352f9eae4b93fa
- d5ead682c9bed748fd13e3f9d0b7d7bacaf4af38839f2e4a35dc899ef1e261e2
- ece74382ec6f319890e24abbf8e0a022d0a4bd7e0aeaf13c20bab3a37035dcd1
- 2dba8e38ac557374ae8cbf28f5be0541338afba8977fbff9b732dee7cee7b43e
- 11e90765640cbb12b13afa1bcec31f96f50578a5e65e2aa7be24465001b92e41
- b2245ca7672310681caa52dc72e448983d921463c94cdab0ba9c40ad6b2a58fe
- c929ee54bdd45df0fa26d0e357ba554ef01159533501ec40f003a374e1e36974
- c0e3c93c59b45e47dda93438311f50ddb95808fd615a467285c9c359bce02cf0
- 309da3c8422422089b7f9af3b1b3f89e2d5c36e48e4d9d9faa07affb7d9a7b17
- fdc86a5b3d7df37a72c3272836f743747c47bfbc538f05af9ecf78547fa2e789
- 25b1ec4d62c67bd51b43de181e0f7d1bda389345b8c290e35f93ccb444a2cf7a
- 964ec70fc2fdf23f928f78c8af63ce50aff058b05787e43c034e04ea6cbe30ef
- d92bb6e47cb0a0bdbb51403528ccfe643a9329476af53b5a729f04a4d2139647
- 5dd629b610aee4ed7777e81fc5135d20f59e43b5d9cc55cdad291fcf4b9d20eb
- b912f06cf65233b9767953ccf4e60a1a7c262ae54506b311c65f411db6f70128
- 2852770f459c0c6a0ecfc450b29201bd348a55fb3a7a5ecdcc9986127fdb786b
Pour aller plus loin
- La présence de DCRat se développe en Amérique latine – IBM
- Outil d’accès à distance AsyncRAT – Malpedia
- Malware XWorm – Malpedia
- Malware FormBook – Malpedia
- Outil d’accès à distance DCRat – Malpedia
- Microsoft Build Engine – Microsoft Learn
- Obfuscation de fichiers ou d’informations : stéganographie – MITRE
- Injection de processus : procédé d’évidement – MITRE
- Exécution d’un proxy de développeurs de confiance : MSBuild – MITRE
- VMDetector – robsonfelix sur GitHub
- L’illusion de l’hоmоgraphe : Tout n’est pas comme on le croit – Unit 42, Palo Alto Networks