{
	"id": "94db7269-cc59-4142-8cd2-0caed544f86f",
	"created_at": "2026-04-06T00:19:14.490759Z",
	"updated_at": "2026-04-10T13:13:05.07318Z",
	"deleted_at": null,
	"sha1_hash": "d8b996f3bbb9782114c666a9f4bd2d47b2a6b493",
	"title": "Elastic charms SPECTRALVIPER",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 2057817,
	"plain_text": "Elastic charms SPECTRALVIPER\r\nBy Cyril François, Daniel Stepanic, Seth Goodwin\r\nPublished: 2023-06-09 · Archived: 2026-04-05 15:34:19 UTC\r\nPrincipaux points abordés dans cet article\r\nLa série d'intrusions REF2754 exploite plusieurs chargeurs PE, des portes dérobées et des exécutions PowerShell.\r\nSPECTRALVIPER est une porte dérobée x64 lourdement obfusquée, non divulguée jusqu'à présent, qui offre des\r\ncapacités de chargement et d'injection de PE, de téléchargement de fichiers, de manipulation de fichiers et de\r\nrépertoires, et d'usurpation d'identité par jeton.\r\nNous attribuons REF2754 à un ensemble d'intrusions basé au Vietnam et l'alignons sur l'acteur de menace Canvas\r\nCyclone/APT32/OceanLotus.\r\nPréambule\r\nElastic Security Labs suit depuis plusieurs mois une série d'intrusions ciblant de grandes entreprises publiques\r\nvietnamiennes, REF2754. Au cours de cette période, notre équipe a découvert de nouveaux logiciels malveillants utilisés en\r\ncoordination par un acteur affilié à un État.\r\nCette recherche porte sur les points suivants :\r\nLe logiciel malveillant SPECTRALVIPER\r\nLe chargeur de logiciels malveillants P8LOADER\r\nLe logiciel malveillant POWERSEAL\r\nCampagne et analyse d'intrusion de REF2754\r\nFlux d'exécution\r\nLe premier événement enregistré est la création d'un fichier(C:\\Users\\Public\\Libraries\\dbg.config) par le service System\r\ndéposé via SMB à partir d'un point d'extrémité précédemment compromis. L'adversaire a renommé l'utilitaire ProcDump de\r\nSysInternals, utilisé pour collecter les métadonnées de la mémoire des processus en cours d'exécution, pour le faire passer\r\npour l'utilitaire de débogage de Windows ( windbg.exe ). En utilisant l'application ProcDump renommée avec l'option -md,\r\nl'adversaire a chargé dbg.config , une DLL non signée contenant du code malveillant.\r\nIl convient de noter que la technique LOLBAS de ProcDump nécessite un processus valide dans les arguments ; ainsi, si\r\nwinlogon.exe est inclus dans les arguments, il est utilisé parce qu'il s'agit d'un processus valide, et non parce qu'il est ciblé\r\npour être collecté par ProcDump.\r\nProcDump se fait passer pour WinDbg.exe\r\nLa DLL non signée(dbg.config) contenait un shellcode DONUTLOADER qu'il tentait d'injecter dans sessionmsg.exe , le\r\nserveur de messages de session à distance de Microsoft. DONUTLOADER a été configuré pour charger la porte dérobée\r\nSPECTRALVIPER, puis les familles de logiciels malveillants P8LOADER ou POWERSEAL, qui dépendent de la situation.\r\nVous trouverez ci-dessous le flux d'exécution de l'ensemble d'intrusion REF2754.\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 1 of 18\n\nFlux d'exécution REF2754\r\nNotre équipe a également observé un flux de travail similaire à celui décrit ci-dessus, mais avec des techniques différentes\r\nde proxy de leur exécution malveillante. Un exemple de cette technique consiste à utiliser le programme Internet Explorer (\r\nExtExport.exe ) pour charger une DLL, tandis qu'une autre technique consiste à charger latéralement une DLL malveillante\r\n( dnsapi.dll ) à l'aide d'une application légitime ( nslookup.exe ), ce qui permet à l'utilisateur d'accéder à la DLL. ).\r\nCes techniques et familles de logiciels malveillants constituent la série d'intrusions REF2754.\r\nAnalyse du code SPECTRALVIPER\r\nAperçu\r\nAu cours de notre enquête, nous avons observé une famille de logiciels malveillants à porte dérobée que nous avons baptisée\r\nSPECTRALVIPER. SPECTRALVIPER est une porte dérobée Windows 64 bits codée en C++ et fortement obscurcie. Il\r\nfonctionne avec deux modes de communication distincts, ce qui lui permet de recevoir des messages via HTTP ou via un\r\ntuyau nommé Windows.\r\nNotre analyse nous a permis d'identifier les capacités suivantes :\r\nChargement/Injection de PE : SPECTRALVIPER peut charger et injecter des fichiers exécutables, en prenant en\r\ncharge les architectures x86 et x64. Cette capacité lui permet d'exécuter des codes malveillants au sein de processus\r\nlégitimes.\r\nL'usurpation d'identité par jeton : Le logiciel malveillant a la capacité de se faire passer pour un jeton de sécurité,\r\nce qui lui confère des privilèges élevés et lui permet de contourner certaines mesures de sécurité. Cela permet un\r\naccès non autorisé et la manipulation de ressources sensibles.\r\nTéléchargement de fichiers : SPECTRALVIPER peut télécharger des fichiers vers et depuis le système compromis.\r\nCela permet à l'attaquant d'exfiltrer des données ou de livrer des charges utiles malveillantes supplémentaires à la\r\nmachine infectée.\r\nManipulation de fichiers/répertoires : La porte dérobée est capable de manipuler des fichiers et des répertoires sur\r\nle système compromis. Cela comprend la création, la suppression, la modification et le déplacement de fichiers ou de\r\nrépertoires, ce qui permet à l'attaquant d'exercer un contrôle étendu sur le système de fichiers de la victime.\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 2 of 18\n\nSPECTRALVIPER overview\r\nFlux d'exécution\r\nLancer\r\nSPECTRALVIPER peut être compilé en tant qu'exécutable PE ou fichier DLL. Pour lancer le logiciel malveillant en tant\r\nque PE, il suffit d'exécuter .\\spectralviper.exe.\r\nCependant, lorsque le logiciel malveillant est une DLL, il tente de se déguiser en bibliothèque légitime avec des exportations\r\nconnues telles que sqlite3 dans notre échantillon observé.\r\nExportations d'échantillons de la DLL SPECTRALVIPER\r\nLe point d'entrée SPECTRALVIPER est caché dans ces exportations. Afin de trouver le bon, nous pouvons les appeler par\r\nforce brute en utilisant PowerShell et rundll-ng. La commande PowerShell décrite ci-dessous appelle chaque exportation\r\nSPECTRALVIPER dans une boucle for jusqu'à ce que nous trouvions celle qui lance les capacités du logiciel malveillant.\r\nfor($i=0; $i -lt 20; $i++){.\\rundll-ng\\rundll64-ng.exe \".\\7e35ba39c2c77775b0394712f89679308d1a4577b6e5d0387835ac6c06e556c\r\nAppels à l'exportation de SPECTRALVIPER par la force des choses\r\nLors de l'exécution, le binaire fonctionne en mode HTTP ou en mode pipe, déterminé par sa configuration codée en dur.\r\nMode tuyau\r\nEn mode pipe, SPECTRALVIPER ouvre une pipe nommée avec un nom codé en dur et attend les commandes entrantes,\r\ndans cet exemple \\\\Npipe\\NSeCIR4gg.\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 3 of 18\n\nSPECTRALVIPER échantillon fonctionnant en mode tuyau\r\nCe tuyau nommé n'a pas d'attributs de sécurité, ce qui signifie qu'il est accessible à tous. Ceci est intéressant car un tuyau\r\nnommé non sécurisé peut être pris en charge par un acteur de menace co-résident (connu ou inconnu de l'opérateur du\r\nSPECTRALVIPER) ou par des équipes défensives comme moyen d'interrompre ce mode d'exécution.\r\nAttributs de sécurité des tuyaux du SPECTRALVIPER\r\nCependant, un protocole spécifique est nécessaire pour communiquer avec ce tuyau. SPECTRALVIPER met en œuvre le\r\nprotocole d'échange de clés Diffie-Helman pour échanger la clé nécessaire au cryptage et au décryptage des commandes\r\ntransmises via le tuyau nommé, qui est crypté en AES.\r\nMode HTTP\r\nEn mode HTTP, le logiciel malveillant envoie une balise à son C2 toutes les n secondes, la période d'intervalle étant générée\r\naléatoirement dans une fourchette comprise entre 10 et 99 secondes.\r\nL'autre échantillon de SPECTRALVIPER fonctionne en mode HTTP\r\nEn utilisant un débogueur, nous pouvons forcer le binaire à utiliser le canal HTTP au lieu du tuyau nommé si le binaire\r\ncontient un domaine codé en dur.\r\nDéboguer SPECTRALVIPER pour forcer le mode HTTP\r\nVous trouverez ci-dessous un exemple de requête HTTP.\r\nExemple de requête HTTP SPECTRALVIPER\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 4 of 18\n\nLa demande contient un en-tête de cookie, \" euconsent-v2 \", qui contient des informations recueillies auprès de l'hôte. Ces\r\ninformations sont cryptées à l'aide du cryptage asymétrique RSA1024 et codées en base64 à l'aide de Base64. Vous\r\ntrouverez ci-dessous un exemple du contenu du cookie avant le cryptage.\r\nCryptage des données de cookies avant RSA1024\r\nNous pensons que la première valeur, dans cet exemple \" H9mktfe2k0ukk64nZjw1ow== \", est la clé AES générée de\r\nmanière aléatoire qui est partagée avec le serveur pour crypter les données de communication.\r\nCommandes\r\nEn analysant des échantillons de SPECTRALVIPER, nous avons découvert que la table des gestionnaires de commandes\r\ncontenait entre 33 et 36 .\r\nSPECTRALVIPER : enregistrement des gestionnaires de commandes\r\nVous trouverez ci-dessous un tableau énumérant les commandes qui ont été identifiées.\r\nID Nom\r\n2 Fichier de téléchargement\r\n3 UploadFile\r\n5 SetBeaconIntervals\r\n8 CreateRundll32ProcessAndHollow\r\n11 InjectShellcodeInProcess\r\n12 CreateProcessAndInjectShellcode\r\n13 InjectPEInProcess\r\n14 CreateProcessAndHollow\r\n20 CreateRundll32ProcessWithArgumentAndInjectPE\r\n81 StealProcessToken\r\n82 ImpersonateUser (se faire passer pour un utilisateur)\r\n83 RevertToSelf\r\n84 AdjustPrivileges\r\n85 Obtenir le nom de l'utilisateur actuel\r\n103 Liste des fichiers\r\n106 Liste des processus en cours d'exécution\r\n108 CopyFile\r\n109 DeleteFile\r\n110 Créer un répertoire\r\n111 DéplacerFichier\r\n200 RunDLLInOwnProcess\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 5 of 18\n\nAfin d'accélérer le processus d'interaction avec SPECTRALVIPER, nous avons contourné les protocoles de communication\r\net injecté notre propre porte dérobée dans le binaire. Cette porte dérobée ouvrira un socket et appellera les gestionnaires à la\r\nréception de nos messages.\r\nInjection de notre porte dérobée pour appeler les gestionnaires SPECTRALVIPER\r\nLorsque la commande AdjustPrivileges est exécutée, et en fonction du niveau de privilège actuel du processus, le logiciel\r\nmalveillant tente de définir la liste de privilèges suivante.\r\nPrivilèges de réglage du SPECTRALVIPER\r\nÉvasion par la défense\r\nObfuscation du code\r\nLe code binaire est fortement obscurci en divisant chaque fonction en fonctions fictives à plusieurs niveaux qui encapsulent\r\nla logique initiale. En outre, le flux de contrôle de ces fonctions est également obscurci par l'aplatissement du flux de\r\ncontrôle. L'aplatissement du flux de contrôle est une technique d'obscurcissement qui supprime les structures de programme\r\npropres et place les blocs les uns à côté des autres à l'intérieur d'une boucle avec une instruction de commutation pour\r\ncontrôler le flux du programme.\r\nVous trouverez ci-dessous un exemple de fonction d'identité de deuxième niveau dans lequel le paramètre p_a1 mis en\r\névidence est simplement renvoyé malgré la complexité de la fonction.\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 6 of 18\n\nExemple de fonction obfusquée SPECTRALVIPER\r\nObfuscation des chaînes de caractères\r\nLes chaînes de SPECTRALVIPER sont obscurcies à l'aide d'une structure personnalisée et d'un décryptage AES. La clé est\r\ncodée en dur ( \"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f \" ) et l'IV est contenu dans la\r\nstructure de la chaîne cryptée.\r\nStructure de chaîne cryptée 1/2\r\nStructure de la chaîne cryptée 2/2\r\nNous pouvons décrypter les chaînes en instrumentant le logiciel malveillant et en appelant ses fonctions de décryptage AES.\r\nDécryptage de chaînes de caractères en instrumentant le binaire 1/2\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 7 of 18\n\nDécryptage de chaînes de caractères en instrumentant le binaire 2/2\r\nRésumé\r\nSPECTRALVIPER est un backdoor x64 découvert lors d'une analyse d'intrusion par Elastic Security Labs. Il peut être\r\ncompilé sous la forme d'un exécutable ou d'une DLL qui imite généralement les exportations binaires connues.\r\nIl permet le chargement/injection de processus, l'usurpation d'identité et la manipulation de fichiers. Il utilise des canaux de\r\ncommunication cryptés (HTTP et named pipe) avec un cryptage AES et un échange de clés Diffie-Hellman ou RSA1024.\r\nTous les échantillons sont fortement obscurcis à l'aide du même obscurcisseur avec différents niveaux de durcissement.\r\nEn utilisant les informations recueillies par l'analyse statique et dynamique, nous avons pu identifier plusieurs autres\r\néchantillons dans VirusTotal. En utilisant le processus de débogage décrit ci-dessus, nous avons également pu collecter\r\nl'infrastructure C2 pour ces échantillons.\r\nP8LOADER\r\nAperçu\r\nL'exécutable portable (PE) décrit ci-dessous est un chargeur PE Windows x64, écrit en C++, que nous appelons P8LOADER\r\nd'après l'une de ses exportations, P8exit.\r\nP8exit nom d'exportation\r\nDécouverte\r\nP8LOADER a été initialement découvert lorsqu'une alerte de shellcode non sauvegardée a été générée par l'exécution d'un\r\nprocessus Windows valide, RuntimeBroker.exe. Les sections exécutables non sauvegardées, ou code flottant, sont le\r\nrésultat de types de sections de code définis sur \"Private\" au lieu de \"Image\", comme c'est le cas lorsque le code est mappé\r\nsur un fichier sur le disque. Les fils qui démarrent à partir de ce type de régions de la mémoire sont anormaux et constituent\r\nun bon indicateur d'une activité malveillante.\r\nP8LOADER observation sans support\r\nSi vous souhaitez en savoir plus sur les événements exécutables non sauvegardés, consultez la publication de\r\nrecherche Hunting in Memory de Joe Desimone.\r\nFlux d'exécution\r\nLe chargeur exporte deux fonctions qui ont la capacité de charger des binaires PE dans sa propre mémoire de processus, soit\r\nà partir d'un fichier, soit à partir de la mémoire.\r\nFonctions du P8LOADER\r\nLe PE à exécuter est chargé en mémoire à l'aide de la méthode VirtualAlloc avec un algorithme classique de chargement du\r\nPE (chargement des sections, résolution des importations et application des relocalisations).\r\nP8LOADER chargement de l'EP à exécuter\r\nEnsuite, un nouveau thread est alloué avec le point d'entrée de l'EP comme adresse de départ.\r\nP8LOADER : définition de l'adresse de départ de l'EP\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 8 of 18\n\nEnfin, la poignée STDOUT du PE chargé est remplacée par un tuyau et un fil de lecture est créé pour rediriger la sortie du\r\nbinaire vers le système de journalisation du chargeur.\r\nP8LOADER redirection vers le système d'enregistrement des chargeurs\r\nEn plus de rediriger la sortie de l'EP chargé, le chargeur utilise un mécanisme d'interception d'API pour accrocher certaines\r\nAPI du processus chargé, enregistrer les appels qui lui sont adressés et envoyer les données par l'intermédiaire d'un tuyau\r\nnommé (dont le nom est une chaîne UUID générée de manière aléatoire).\r\nL'accrochage de la table d'importation du PE est effectué au moment de la résolution de l'importation en remplaçant les\r\nadresses des fonctions importées à l'origine par leur propre stub.\r\nÉvasion par la défense\r\nObfuscation des chaînes de caractères\r\nP8LOADER utilise une technique d'obscurcissement basée sur un modèle C++ pour masquer les erreurs et déboguer les\r\nchaînes avec un ensemble d'algorithmes différents choisis de manière aléatoire au moment de la compilation.\r\nCes chaînes sont obscurcies pour empêcher l'analyse, car elles fournissent des informations précieuses sur les fonctions et\r\nles capacités du chargeur.\r\nExemple d'algorithme de décryptage de chaîne 1/3\r\nExemple d'algorithme de décryptage de chaîne 2/3\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 9 of 18\n\nExemple d'algorithme de décryptage de chaîne 3/3\r\nRésumé\r\nP8LOADER est un chargeur Windows x64 récemment découvert qui est utilisé pour exécuter un programme d'exécution à\r\npartir d'un fichier ou de la mémoire. Ce logiciel malveillant est capable de rediriger la sortie du PE chargé vers son système\r\nde journalisation et d'accrocher les importations du PE aux appels d'importation de journaux.\r\nAnalyse du code POWERSEAL\r\nAperçu\r\nAu cours de cette intrusion, nous avons observé un programme d'exécution PowerShell .NET léger que nous appelons\r\nPOWERSEAL et qui est basé sur des chaînes intégrées. Une fois que SPECTRALVIPER a été déployé avec succès,\r\nl'utilitaire POWERSEAL est utilisé pour lancer les scripts ou commandes PowerShell fournis. Le logiciel malveillant\r\nexploite les appels de système ( NtWriteVirtualMemory ) pour échapper aux solutions défensives (AMSI/ETW).\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 10 of 18\n\nClasses/fonctions POWERSEAL\r\nÉvasion par la défense\r\nEvent Tracing for Windows (ETW) fournit un mécanisme de traçage et d'enregistrement des événements générés par les\r\napplications en mode utilisateur et les pilotes en mode noyau. L'interface AMSI (Anti Malware Scan Interface) offre une\r\nprotection renforcée contre les logiciels malveillants pour les données, les applications et les charges de travail.\r\nPOWERSEAL adopte des solutions de contournement bien connues et accessibles au public afin de corriger ces\r\ntechnologies en mémoire. Cela augmente leurs chances de réussite tout en réduisant leur empreinte détectable.\r\nPar exemple, POWERSEAL utilise des approches courantes pour décrocher et contourner AMSI afin de contourner la\r\nsignature de Microsoft Defender.\r\nPOWERSEAL contourne l'AMSI\r\nLancer PowerShell\r\nLa fonction principale de POWERSEAL est d'exécuter PowerShell. Dans la représentation suivante du code source de\r\nPOWERSEAL, nous pouvons voir que POWERSEAL utilise PowerShell pour exécuter un script et des arguments (\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 11 of 18\n\ncommande ). Le script et les arguments sont fournis par l'auteur de la menace et n'ont pas été observés dans\r\nl'environnement.\r\nPOWERSEAL exécuter un shellcode avec PowerShell\r\nRésumé\r\nPOWERSEAL est un nouveau programme PowerShell spécialement conçu qui emprunte librement à une variété d'outils de\r\nsécurité offensifs open source, offrant des capacités offensives dans un ensemble rationalisé avec une évasion de défense\r\nintégrée.\r\nModélisation des campagnes et des adversaires\r\nAperçu\r\nREF2754 est une campagne en cours contre les grandes entreprises publiques d'importance nationale au Vietnam. La chaîne\r\nd'exécution des logiciels malveillants de cette campagne est initiée par DONUTLOADER, mais utilise ensuite des outils non\r\nsignalés auparavant.\r\n1. SPECTRALVIPER, une porte dérobée x64 obfusquée qui permet le chargement et l'injection de PE, le chargement et\r\nle téléchargement de fichiers, la manipulation de fichiers et de répertoires, l'usurpation d'identité par jeton et la\r\ncommande et le contrôle par pipe nommée et HTTP.\r\n2. P8LOADER, un chargeur PE Windows obscurci permettant à l'attaquant de minimiser et d'obscurcir certains\r\nenregistrements sur les points de terminaison de la victime, et\r\n3. POWERSEAL, un programme d'exécution PowerShell avec ETW et AMSI intégrés pour une meilleure évasion\r\ndéfensive lors de l'utilisation d'outils PowerShell.\r\nElastic Security Labs conclut avec une confiance modérée que cette campagne est exécutée par une menace affiliée à l'État\r\nvietnamien.\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 12 of 18\n\nIntersections des campagnes REF2754 et REF4322\r\nVictimologie\r\nEn utilisant notre signature SPECTRALVIPER YARA, nous avons identifié deux points d'extrémité dans un deuxième\r\nenvironnement infecté par des implants SPECTRALVIPER. Cet environnement a été examiné dans la recherche d'Elastic\r\nSecurity Labs à l'adresse 2022 qui décrit REF4322.\r\nLa victime de REF4322 est une société de services financiers basée au Vietnam. Elastic Security Labs a parlé pour la\r\npremière fois de cette victime et de ce groupe d'activité en 2022.\r\nLa victime de REF2754 a été identifiée comme étant une grande entreprise agroalimentaire basée au Vietnam.\r\nD'autres informations provenant de VirusTotal, basées sur l'analyse rétrospective des règles YARA disponibles à la fin de\r\ncette étude, indiquent d'autres victimes basées au Viêt Nam. Il y a eu au total huit succès au Retrohunt :\r\nTous ont été confirmés manuellement comme étant des SPECTRALVIPER\r\nTous les échantillons avaient une taille comprise entre 1,59 et 1,77 Mo.\r\nTous les échantillons de VirusTotal ont été initialement soumis par le Vietnam.\r\nCertains échantillons avaient déjà été identifiés dans notre première collection, d'autres étaient nouveaux pour nous.\r\nGardez à l'esprit les limites analytiques d'une trop grande dépendance à l'égard de l'\"auteur du VT\". Ce\r\nmécanisme de déclaration par un tiers peut être sujet à des problèmes de déclaration circulaire ou d'utilisation de\r\nVPN qui modifie les GEO utilisés, et de renforcement involontaire d'une hypothèse. Dans ce cas, il a été utilisé\r\npour tenter de trouver des échantillons dont l'origine n'était apparemment pas VN, sans succès.\r\nAu moment de la publication, toutes les victimes connues sont de grandes entreprises publiques situées physiquement au\r\nViêt Nam et exerçant leurs activités principalement dans ce pays.\r\nAnalyse de la campagne\r\nLe chevauchement avec l'environnement REF4322 s'est produit assez récemment, en avril 20, 2023. L'un de ces points\r\nd'aboutissement était précédemment infecté par l'implant PHOREAL, tandis que l'autre point d'aboutissement était\r\ncompromis par l'implant PIPEDANCE.\r\nCes infections par SPECTRALVIPER ont été configurées en mode \"pipe\", contrairement aux domaines codés en dur\r\nconfigurés pour attendre une connexion entrante via un \"pipe\" nommé ( \\ .\\pipe\\ydZb0bIrT ).\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 13 of 18\n\nSPECTRALVIPER coresident sur un hôte infecté par PIPEDANCE\r\nCette activité semble être un transfert d'accès ou le remplacement d'un outil par un autre.\r\nSi vous souhaitez obtenir une analyse détaillée du logiciel malveillant PIPEDANCE, consultez nos recherches\r\nprécédentes et restez à l'écoute, d'autres informations sont à venir.\r\nLa collecte post-exploitation des effets escomptés a été limitée. Toutefois, bien que spéculative par nature, une évaluation de\r\nla motivation basée sur les logiciels malveillants, les implants et les capacités techniques indique qu'il est possible d'obtenir\r\nun accès initial, de maintenir la persistance et de fonctionner comme une porte dérobée à des fins de collecte de\r\nrenseignements.\r\nLes domaines REF4322, REF2754 et les échantillons collectés sur VirusTotal utilisés pour C2 ont tous été enregistrés au\r\ncours de l'année dernière, le plus récent datant de fin avril 2023.\r\nDomaine : Créé :\r\nstablewindowsapp[.]com 2022-02-10\r\nwebmanufacturers[.]com 2022-06-10\r\ntoppaperservices[.]com 2022-12-15\r\nhosting-wordpress-services[.]com 2023-03-15\r\nappointmentmedia[.]com 2023-04-26\r\nLes GEO pour les IP associées à ces domaines sont distribués à l'échelle mondiale et utilisent les certificats Sectigo, Rapid\r\nSSL et Let's Encrypt. Une analyse plus poussée de l'infrastructure n'a rien révélé de particulier au-delà de la date\r\nd'enregistrement, ce qui nous donne une idée de la durée de la campagne. Compte tenu de l'enregistrement récent de\r\nappointmentmedia[.]com, cette campagne pourrait se poursuivre avec l'enregistrement de nouveaux domaines en vue de\r\nfutures intrusions.\r\nAssociations de campagne\r\nElastic Security Labs conclut avec une confiance modérée que les groupes d'activité REF4322 et REF2754 représentent des\r\ncampagnes planifiées et exécutées par une menace affiliée à l'État vietnamien. D'après notre analyse, ce groupe d'activité\r\nrecoupe les groupes de menaces Canvas Cyclone, APT32 et OCEANLOTUS.\r\nComme indiqué ci-dessus et dans les rapports précédents, la victime REF4322 est une institution financière qui gère des\r\ncapitaux pour des acquisitions d'entreprises et d'anciennes entreprises publiques.\r\nLa victime du REF2754 est une grande entreprise agroalimentaire qui joue un rôle important dans les chaînes\r\nd'approvisionnement de la production et de la distribution alimentaires au Viêt Nam. L'urbanisation continue, la pollution, la\r\npandémie de COVID-19 et le changement climatique sont autant de défis pour la sécurité alimentaire du Viêt Nam. À titre\r\nd'exemple, en mars 2023, le Premier ministre vietnamien a approuvé le plan d'action national sur la transformation des\r\nsystèmes alimentaires vers la transparence, la responsabilité et la durabilité au Viêt Nam d'ici à 2030. Son objectif global est\r\nde transformer les systèmes alimentaires, y compris la production, la transformation, la distribution et la consommation,\r\ndans le sens de la transparence, de la responsabilité et de la durabilité, en s'appuyant sur les avantages locaux ; d'assurer la\r\nsécurité alimentaire et nutritionnelle nationale ; d'améliorer les revenus et le niveau de vie des populations ; de prévenir et de\r\ncontrôler les catastrophes naturelles et les épidémies ; de protéger l'environnement et de répondre au changement climatique\r\n; et enfin de contribuer à la mise en œuvre des objectifs de développement durable du Viêt Nam et du monde d'ici à 2030.\r\nTout cela montre que la sécurité alimentaire est une priorité de la politique nationale, ce qui fait également des victimes de\r\nREF2754 une cible attrayante pour les acteurs de la menace en raison de leur intersection avec les objectifs stratégiques du\r\nViêt Nam.\r\nOutre les intérêts stratégiques nationaux des victimes de REF4322 et REF2754, les deux victimes ont été infectées par les\r\nfamilles de logiciels malveillants DONUTLOADER, P8LOADER, POWERSEAL et SPECTRALVIPER qui utilisent des\r\ntechniques de déploiement, une gestion des implants et des conventions de dénomination similaires dans les deux intrusions.\r\nUn groupe de menace ayant accès aux relevés de transactions financières disponibles dans REF4322, combinés à la politique\r\nstratégique nationale de sécurité alimentaire de REF2754, fournirait des informations sur la compétence de la direction, la\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 14 of 18\n\ncorruption, l'influence étrangère ou les manipulations de prix qui ne sont pas disponibles dans le cadre des rapports\r\nréglementaires.\r\nModèle diamant\r\nElastic Security utilise le modèle Diamond pour décrire les relations de haut niveau entre les adversaires, les capacités,\r\nl'infrastructure et les victimes des intrusions. Bien que le modèle en diamant soit le plus souvent utilisé pour des intrusions\r\nuniques et qu'il tire parti de l'enchaînement des activités (section 8) pour créer des relations entre les incidents, un modèle\r\ncentré sur l'adversaire (section 7.1.4) peut également être utilisé pour créer des liens entre les incidents et les intrusions.\r\npermet d'obtenir un seul diamant (encombré).\r\nModèle en diamant de REF2754\r\nObservation des tactiques et techniques de l'adversaire\r\nElastic utilise le cadre MITRE ATT\u0026CK pour documenter les tactiques, techniques et procédures communes que les\r\nmenaces persistantes avancées utilisent contre les réseaux d'entreprise.\r\nTactiques\r\nLes tactiques représentent le pourquoi d'une technique ou d'une sous-technique. Il s'agit de l'objectif tactique de l'adversaire :\r\nla raison pour laquelle il effectue une action.\r\nAccès initial\r\nExécution\r\nÉvasion par la défense\r\nDécouverte\r\nMouvement latéral\r\nCollecte\r\nCommande et contrôle\r\nTechniques/sous-techniques\r\nLes techniques et les sous techniques représentent la manière dont un adversaire atteint un objectif tactique en effectuant une\r\naction.\r\nRecueillir des informations sur l'hôte\r\nRecueillir des informations sur le réseau de la victime\r\nDécouverte de partages en réseau\r\nDécouverte du système à distance\r\nDécouverte de fichiers et de répertoires\r\nDécouverte des processus\r\nDécouverte des services du système\r\nDécouverte du propriétaire/de l'utilisateur du système\r\nInjection de processus\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 15 of 18\n\nMascarade\r\nProtocole de la couche application : Protocoles Web\r\nManipulation de jetons d'accès : Fabrication et usurpation d'identité d'un jeton\r\nLogique de détection\r\nPréventions\r\nTous les logiciels malveillants abordés dans cette publication de recherche ont des protections incluses dans Elastic Defend.\r\nWindows.Trojan.SpectralViper\r\nWindows.Trojan.PowerSeal\r\nWindows.Trojan.P8Loader\r\nYARA\r\nElastic Security a créé des règles YARA pour identifier cette activité. Vous trouverez ci-dessous les règles de YARA\r\npermettant d'identifier SPECTRALVIPER, POWERSEAL et P8LOADER.\r\nrule Windows_Trojan_SpectralViper_1 {\r\n meta:\r\n author = \"Elastic Security\"\r\n creation_date = \"2023-04-13\"\r\n last_modified = \"2023-05-26\"\r\n os = \"Windows\"\r\n arch = \"x86\"\r\n category_type = \"Trojan\"\r\n family = \"SpectralViper\"\r\n threat_name = \"Windows.Trojan.SpectralViper\"\r\n reference_sample = \"7e35ba39c2c77775b0394712f89679308d1a4577b6e5d0387835ac6c06e556cb\"\r\n license = \"Elastic License v2\"\r\n strings:\r\n $a1 = { 13 00 8D 58 FF 0F AF D8 F6 C3 01 0F 94 44 24 26 83 FD 0A 0F 9C 44 24 27 4D 89 CE 4C 89 C7 48 89 D3 48 89 C\r\n $a2 = { 15 00 8D 58 FF 0F AF D8 F6 C3 01 0F 94 44 24 2E 83 FD 0A 0F 9C 44 24 2F 4D 89 CE 4C 89 C7 48 89 D3 48 89 C\r\n $a3 = { 00 8D 68 FF 0F AF E8 40 F6 C5 01 0F 94 44 24 2E 83 FA 0A 0F 9C 44 24 2F 4C 89 CE 4C 89 C7 48 89 CB B8 }\r\n $a4 = { 00 48 89 C6 0F 29 30 0F 29 70 10 0F 29 70 20 0F 29 70 30 0F 29 70 40 0F 29 70 50 48 C7 40 60 00 00 00 00 4\r\n $a5 = { 41 0F 45 C0 45 84 C9 41 0F 45 C0 EB BA 48 89 4C 24 08 89 D0 EB B1 48 8B 44 24 08 48 83 C4 10 C3 56 57 53 4\r\n $a6 = { 00 8D 70 FF 0F AF F0 40 F6 C6 01 0F 94 44 24 25 83 FF 0A 0F 9C 44 24 26 89 D3 48 89 CF 48 }\r\n $a7 = { 48 89 CE 48 89 11 4C 89 41 08 41 0F 10 01 41 0F 10 49 10 41 0F 10 51 20 0F 11 41 10 0F 11 49 20 0F 11 51 3\r\n $a8 = { 00 8D 58 FF 0F AF D8 F6 C3 01 0F 94 44 24 22 83 FD 0A 0F 9C 44 24 23 48 89 D6 48 89 CF 4C 8D }\r\n condition:\r\n 5 of them\r\n}\r\nrule Windows_Trojan_SpectralViper_2 {\r\n meta:\r\n author = \"Elastic Security\"\r\n creation_date = \"2023-05-10\"\r\n last_modified = \"2023-05-10\"\r\n os = \"Windows\"\r\n arch = \"x86\"\r\n category_type = \"Trojan\"\r\n family = \"SpectralViper\"\r\n threat_name = \"Windows.Trojan.SpectralViper\"\r\n reference_sample = \"d1c32176b46ce171dbce46493eb3c5312db134b0a3cfa266071555c704e6cff8\"\r\n license = \"Elastic License v2\"\r\n strings:\r\n $a1 = { 18 48 89 4F D8 0F 10 40 20 0F 11 47 E0 0F 10 40 30 0F 11 47 F0 48 8D }\r\n $a2 = { 24 27 48 83 C4 28 5B 5D 5F 5E C3 56 57 53 48 83 EC 20 48 89 CE 48 }\r\n $a3 = { C7 84 C9 0F 45 C7 EB 86 48 8B 44 24 28 48 83 C4 30 5B 5F 5E C3 48 83 }\r\n $s1 = { 40 53 48 83 EC 20 48 8B 01 48 8B D9 48 8B 51 10 48 8B 49 08 FF D0 48 89 43 18 B8 04 00 00 }\r\n $s2 = { 40 53 48 83 EC 20 48 8B 01 48 8B D9 48 8B 49 08 FF D0 48 89 43 10 B8 04 00 00 00 48 83 C4 20 5B }\r\n $s3 = { 48 83 EC 28 4C 8B 41 18 4C 8B C9 48 B8 AB AA AA AA AA AA AA AA 48 F7 61 10 48 8B 49 08 48 C1 EA }\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 16 of 18\n\ncondition:\r\n 2 of ($a*) or any of ($s*)\r\n}\r\nrule Windows_Trojan_PowerSeal_1 {\r\n meta:\r\n author = \"Elastic Security\"\r\n creation_date = \"2023-03-16\"\r\n last_modified = \"2023-05-26\"\r\n os = \"Windows\"\r\n arch = \"x86\"\r\n category_type = \"Trojan\"\r\n family = \"PowerSeal\"\r\n threat_name = \"Windows.Trojan.PowerSeal\"\r\n license = \"Elastic License v2\"\r\n strings:\r\n $a1 = \"PowerSeal.dll\" wide fullword\r\n $a2 = \"InvokePs\" ascii fullword\r\n $a3 = \"amsiInitFailed\" wide fullword\r\n $a4 = \"is64BitOperatingSystem\" ascii fullword\r\n condition:\r\n all of them\r\n}\r\nrule Windows_Trojan_PowerSeal_2 {\r\n meta:\r\n author = \"Elastic Security\"\r\n creation_date = \"2023-05-10\"\r\n last_modified = \"2023-05-10\"\r\n os = \"Windows\"\r\n arch = \"x86\"\r\n category_type = \"Trojan\"\r\n family = \"PowerSeal\"\r\n threat_name = \"Windows.Trojan.PowerSeal\"\r\n license = \"Elastic License v2\"\r\n strings:\r\n $a1 = \"[+] Loading PowerSeal\"\r\n $a2 = \"[!] Failed to exec PowerSeal\"\r\n $a3 = \"AppDomain: unable to get the name!\"\r\n condition:\r\n 2 of them\r\n}\r\nrule Windows_Trojan_P8Loader {\r\n meta:\r\n author = \"Elastic Security\"\r\n creation_date = \"2023-04-13\"\r\n last_modified = \"2023-05-26\"\r\n os = \"Windows\"\r\n arch = \"x86\"\r\n category_type = \"Trojan\"\r\n family = \"P8Loader\"\r\n threat_name = \"Windows.Trojan.P8Loader\"\r\n license = \"Elastic License v2\"\r\n strings:\r\n $a1 = \"\\t[+] Create pipe direct std success\\n\" fullword\r\n $a2 = \"\\tPEAddress: %p\\n\" fullword\r\n $a3 = \"\\tPESize: %ld\\n\" fullword\r\n $a4 = \"DynamicLoad(%s, %s) %d\\n\" fullword\r\n $a5 = \"LoadLibraryA(%s) FAILED in %s function, line %d\" fullword\r\n $a6 = \"\\t[+] No PE loaded on memory\\n\" wide fullword\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 17 of 18\n\n$a7 = \"\\t[+] PE argument: %ws\\n\" wide fullword\r\n $a8 = \"LoadLibraryA(%s) FAILED in %s function, line %d\" fullword\r\n condition:\r\n 5 of them\r\n}\r\nRéférences\r\nLes éléments suivants ont été référencés tout au long de la recherche ci-dessus :\r\nhttps://www.elastic.co/fr/security-labs/hunting-memory\r\nhttps://www.elastic.co/fr/security-labs/phoreal-malware-targets-the-southeast-asian-financial-sector\r\nhttps://www.elastic.co/fr/security-labs/twice-around-the-dance-floor-with-pipedance\r\nhttps://www.microsoft.com/en-us/security/blog/2020/11/30/threat-actor-leverages-coin-miner-techniques-to-stay-under-the-radar-heres-how-to-spot-them/\r\nhttps://learn.microsoft.com/en-us/microsoft-365/security/intelligence/microsoft-threat-actor-naming\r\nObservations\r\nToutes les observables sont également disponibles au téléchargement en format ECS et STIX dans un paquet zip combiné.\r\nLes observables suivants ont été examinés dans le cadre de cette recherche.\r\nObservable Type Nom R\r\n56d2d05988b6c23232b013b38c49b7a9143c6649d81321e542d19ae46f4a4204\r\nSHA-256\r\n-\r\nS\r\nL\r\nd\r\nd1c32176b46ce171dbce46493eb3c5312db134b0a3cfa266071555c704e6cff8\r\nSHA-256\r\n1.dll S\r\n7e35ba39c2c77775b0394712f89679308d1a4577b6e5d0387835ac6c06e556cb\r\nSHA-256\r\nasdgb.exe S\r\n4e3a88cf00e0b4718e7317a37297a185ff35003192e5832f5cf3020c4fc45966\r\nSHA-256\r\nSettings.db S\r\n7b5e56443812eed76a94077763c46949d1e49cd7de79cde029f1984e0d970644\r\nSHA-256 Microsoft.MicrosoftEdge_8wekyb3d8bbwe.pkg S\r\n5191fe222010ba7eb589e2ff8771c3a75ea7c7ffc00f0ba3f7d716f12010dd96\r\nSHA-256\r\nUpdateConfig.json S\r\n4775fc861bc2685ff5ca43535ec346495549a69891f2bf45b1fcd85a0c1f57f7\r\nSHA-256 Microsoft.OneDriveUpdatePackage.mca S\r\n2482c7ececb23225e090af08feabc8dec8d23fe993306cb1a1f84142b051b621\r\nSHA-256\r\nms-certificats.sst S\r\nstablewindowsapp[.]com Domain n/a C\r\nwebmanufacturers[.]com Domain n/a C\r\ntoppaperservices[.]com Domain n/a C\r\nhosting-wordpress-services[.]com Domain n/a C\r\nappointmentmedia[.]com Domain n/a C\r\nSource: https://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nhttps://www.elastic.co/fr/security-labs/elastic-charms-spectralviper\r\nPage 18 of 18",
	"extraction_quality": 1,
	"language": "FR",
	"sources": [
		"Malpedia"
	],
	"origins": [
		"web"
	],
	"references": [
		"https://www.elastic.co/fr/security-labs/elastic-charms-spectralviper"
	],
	"report_names": [
		"elastic-charms-spectralviper"
	],
	"threat_actors": [
		{
			"id": "af509bbb-8d18-4903-a9bd-9e94099c6b30",
			"created_at": "2023-01-06T13:46:38.585525Z",
			"updated_at": "2026-04-10T02:00:03.030833Z",
			"deleted_at": null,
			"main_name": "APT32",
			"aliases": [
				"OceanLotus",
				"ATK17",
				"G0050",
				"APT-C-00",
				"APT-32",
				"Canvas Cyclone",
				"SeaLotus",
				"Ocean Buffalo",
				"OceanLotus Group",
				"Cobalt Kitty",
				"Sea Lotus",
				"APT 32",
				"POND LOACH",
				"TIN WOODLAWN",
				"Ocean Lotus"
			],
			"source_name": "MISPGALAXY:APT32",
			"tools": [],
			"source_id": "MISPGALAXY",
			"reports": null
		},
		{
			"id": "3f86085e-95c5-4007-8bd7-86ad330ce4eb",
			"created_at": "2022-10-25T16:07:24.457008Z",
			"updated_at": "2026-04-10T02:00:04.998531Z",
			"deleted_at": null,
			"main_name": "Bismuth",
			"aliases": [
				"Canvas Cyclone"
			],
			"source_name": "ETDA:Bismuth",
			"tools": [],
			"source_id": "ETDA",
			"reports": null
		},
		{
			"id": "870f6f62-84f5-48ca-a18e-cf2902cd6924",
			"created_at": "2022-10-25T15:50:23.303818Z",
			"updated_at": "2026-04-10T02:00:05.301184Z",
			"deleted_at": null,
			"main_name": "APT32",
			"aliases": [
				"APT32",
				"SeaLotus",
				"OceanLotus",
				"APT-C-00",
				"Canvas Cyclone"
			],
			"source_name": "MITRE:APT32",
			"tools": [
				"Mimikatz",
				"ipconfig",
				"Kerrdown",
				"Cobalt Strike",
				"SOUNDBITE",
				"OSX_OCEANLOTUS.D",
				"KOMPROGO",
				"netsh",
				"RotaJakiro",
				"PHOREAL",
				"Arp",
				"Denis",
				"Goopy"
			],
			"source_id": "MITRE",
			"reports": null
		},
		{
			"id": "5da6b5fd-1955-412a-81aa-069fb50b6e31",
			"created_at": "2025-08-07T02:03:25.116085Z",
			"updated_at": "2026-04-10T02:00:03.668978Z",
			"deleted_at": null,
			"main_name": "TIN WOODLAWN",
			"aliases": [
				"APT32 ",
				"Cobalt Kitty",
				"OceanLotus",
				"WOODLAWN "
			],
			"source_name": "Secureworks:TIN WOODLAWN",
			"tools": [
				"Cobalt Strike",
				"Denis",
				"Goopy",
				"JEShell",
				"KerrDown",
				"Mimikatz",
				"Ratsnif",
				"Remy",
				"Rizzo",
				"RolandRAT"
			],
			"source_id": "Secureworks",
			"reports": null
		},
		{
			"id": "2439ad53-39cc-4fff-8fdf-4028d65803c0",
			"created_at": "2022-10-25T16:07:23.353204Z",
			"updated_at": "2026-04-10T02:00:04.55407Z",
			"deleted_at": null,
			"main_name": "APT 32",
			"aliases": [
				"APT 32",
				"APT-C-00",
				"APT-LY-100",
				"ATK 17",
				"G0050",
				"Lotus Bane",
				"Ocean Buffalo",
				"OceanLotus",
				"Operation Cobalt Kitty",
				"Operation PhantomLance",
				"Pond Loach",
				"SeaLotus",
				"SectorF01",
				"Tin Woodlawn"
			],
			"source_name": "ETDA:APT 32",
			"tools": [
				"Agentemis",
				"Android.Backdoor.736.origin",
				"AtNow",
				"Backdoor.MacOS.OCEANLOTUS.F",
				"BadCake",
				"CACTUSTORCH",
				"CamCapture Plugin",
				"CinaRAT",
				"Cobalt Strike",
				"CobaltStrike",
				"Cuegoe",
				"DKMC",
				"Denis",
				"Goopy",
				"HiddenLotus",
				"KOMPROGO",
				"KerrDown",
				"METALJACK",
				"MSFvenom",
				"Mimikatz",
				"Nishang",
				"OSX_OCEANLOTUS.D",
				"OceanLotus",
				"PHOREAL",
				"PWNDROID1",
				"PhantomLance",
				"PowerSploit",
				"Quasar RAT",
				"QuasarRAT",
				"RatSnif",
				"Remy",
				"Remy RAT",
				"Rizzo",
				"Roland",
				"Roland RAT",
				"SOUNDBITE",
				"Salgorea",
				"Splinter RAT",
				"Terracotta VPN",
				"Yggdrasil",
				"cobeacon",
				"denesRAT",
				"fingerprintjs2"
			],
			"source_id": "ETDA",
			"reports": null
		}
	],
	"ts_created_at": 1775434754,
	"ts_updated_at": 1775826785,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/d8b996f3bbb9782114c666a9f4bd2d47b2a6b493.pdf",
		"text": "https://archive.orkl.eu/d8b996f3bbb9782114c666a9f4bd2d47b2a6b493.txt",
		"img": "https://archive.orkl.eu/d8b996f3bbb9782114c666a9f4bd2d47b2a6b493.jpg"
	}
}