Table des Matières
- Introduction
- Objectifs clés.
- Industries touchées.
- Concentration géographique.
- Chaîne d'infection.
- Résultats initiaux
- Regard sur le document leurre
- Analyse technique
- Étape 1 – Script LNK malveillant
- Étape 2 – Astuce pseudo-polyglotte : Tout en un.
- Étape 3 – Charge utile finale : LOTUSHARVEST
- Infrastructure et attribution.
- Conclusion
- Seqrite Protection.
- COI
- MITRE ATT&CK.
- Auteurs
Introduction
Le SEQRITE L'équipe APT-Team de Labs surveille les menaces à l'échelle mondiale et a récemment découvert une campagne ciblant les services informatiques et les recruteurs RH vietnamiens à l'aide de faux CV pseudo-polyglottes. D'autres chercheurs Nous avons également constaté la même activité. Nous avons nommé la campagne « Opération voleur de Hanoi » En raison de la charge utile finale, de ses capacités de vol de données et de la localisation géographique indiquée dans le résumé, aux alentours d'Hanoï, la capitale du Vietnam, l'acteur malveillant utilise principalement un type de fichier que nous qualifions de charge utile pseudo-polyglotte pour dissimuler ses intentions malveillantes.
Dans ce blog, nous allons expliquer l'intégralité de la chaîne d'infection, depuis le comportement de la campagne jusqu'à l'analyse technique de cette campagne en plusieurs étapes. La première étape consiste en un fichier ZIP joint à un e-mail malveillant de spear-phishing. Ce fichier ZIP contient deux éléments : un document servant à la fois d'appât et de charge utile pour la seconde étape, et un fichier LNK déclenchant la première réaction. Nous examinerons ensuite la charge utile de la dernière étape : un implant DLL C++, que nous appellerons LOTUSHARVEST, exécuté par chargement latéral de DLL sur la machine cible. Enfin, nous nous concentrerons sur l'infrastructure et d'autres détails relatifs à cette campagne.
Cibles clés
Secteurs touchés
- Technologies de l'information
- Cabinets de recrutement et de ressources humaines
Concentration géographique
- Vietnam
Chaîne d'infection

Résultats initiaux
Le 3 novembre 2025, notre équipe a découvert un fichier ZIP malveillant de spear-phishing nommé Le-Xuan-Son_CV.zip, qui est apparu à la fois dans nos données télémétriques privées et dans la base de données publique de logiciels malveillants VirusTotal . L'archive ZIP contient deux fichiers.

Le premier fichier est un fichier LNK nommé CV.pdf.lnk. Le second est ce que nous appelons une charge utile pseudo-polyglotte nommée offsec-certified-professional.png, qui sert à la fois d'appât et de conteneur pour le script .bat (traitement par lots). Examinons d'abord l'appât.
Regard sur le document leurre
En exécutant le PDF via un analyseur PDF générique ou une visionneuse de documents, nous constatons qu'il contient le CV d'une personne nommée « Le Xuan Son ».

En examinant le contenu du message, qui, selon nos recherches, semble avoir été conçu à des fins de campagne, nous avons constaté que la personne postule apparemment à un poste de développeur logiciel. Or, le nom du fichier, que nous avons déjà vu, « offsec-certified-professional », relevant du domaine de la sécurité informatique, soulève des interrogations quant à la victimisation, car le CV contenu dans le fichier ZIP correspond à celui d'un ingénieur logiciel.
Eh bien, comme mentionné précédemment, pour gagner la confiance de la victime, établir sa crédibilité auprès d'elle et renforcer ses motivations d'ingénierie sociale, l'auteur de la menace a également joint une URL GitHub d'un compte créé en 2021. Le CV indique que le candidat réside à Hanoï, au Vietnam.

En examinant le profil GitHub mentionné dans le CV, nous avons constaté que le compte ne comportait aucune mise à jour ni activité, ce qui indique de fortes chances qu'il ait été spécifiquement créé pour cette campagne d'hameçonnage.
Dans la section suivante, nous examinerons comment le fichier LNK exécute une charge utile polyglotte et comment fonctionne le fichier DLL malveillant qui en résulte.
Analyse technique
Notre analyse sera divisée en trois sections. Premièrement, nous examinerons le fichier de raccourci malveillant (.LNK). Deuxièmement, nous analyserons la seconde étape, également appelée pseudo-polyglotte, et comment la ligne de commande malveillante présente dans le fichier de raccourci (.LNK) exploite une méthode unique pour exécuter ce pseudo-polyglotte. Troisièmement et enfin, nous nous concentrerons sur l'implant DLL nommé LOTUSHARVEST. La dernière section sera consacrée aux détails de la campagne, tels que l'infrastructure et bien plus encore.
Étape 1 – Script LNK malveillant
Lors de l'extraction du fichier ZIP, le premier document exécuté est le fichier LNK, qui est responsable de l'exécution de la charge utile pseudo-polyglotte du deuxième étage.

En examinant les détails du fichier LNK, nous avons trouvé un paramètre intéressant dans les arguments de la ligne de commande : l’utilisation de ftp.exe pour exécuter le fichier pseudo-polyglotte, avec un indicateur appelé -s. Lors de l’exécution du fichier LNK, le résumé s’affiche à l’écran tandis que, de l’autre côté, le script batch, que nous rencontrerons dans la partie suivante, est exécuté à l’aide de LOLbin ftp.exe.
Qualifier cela d'abus de LOLBIN ne serait pas un comportement typique des TTP, et nous l'expliquerons dans la section suivante.
Étape 2 – Astuce pseudo-polyglotte : Tout en un.

Dans un premier temps, l'analyse du type de fichier, initialement identifié comme un fichier texte brut, a révélé qu'il avait été traité et identifié comme tel par plusieurs analyseurs syntaxiques. Cependant, les analyseurs de fichiers PDF l'ont étiqueté comme tel, avant de le traiter et de l'ouvrir. Par conséquent, afin d'éviter toute confusion, nous avons généralement utilisé un éditeur hexadécimal pour le déduire.

En examinant le code hexadécimal, nous avons constaté qu'il contenait des scripts malveillants exécutés avant même l'affichage des en-têtes PDF Magic. Nous avons donc supprimé ces scripts.


Voici un point intéressant, bien que simple, découvert il y a quelques années par des chercheurs en sécurité et exploité en conditions réelles : bien que ftp.exe serve à se connecter à un serveur FTP et à exécuter des commandes comme le téléchargement ou l’exfiltration de données, cette campagne a révélé que le binaire FTP invoquait des commandes sur une machine locale, commandes qui commençaient par un point d’exclamation (!). Ainsi, ftp.exe exécutait les commandes ou scripts mentionnés ci-dessus sur la machine cible.
En examinant le script, on constate qu'il exploite initialement un LOLBIN nommé DeviceCredentialDeployment.exe, utilisé pour masquer l'exécutable cmd.exe. Ensuite, l'analyse des commandes du script révèle qu'il recherche l'exécutable certutil.exe, puis le renomme en lala.exe. Le script batch renomme ensuite le fichier offsec-certified-professional.png en CV-Nguyen-Van-A.pdf, puis ouvre l'Explorateur de fichiers pour afficher le faux PDF à la victime.

Ensuite, le script recherche un bloc de données encodé en base64 dans le fichier pseudo-polyglotte contenant la charge utile. Il extrait ensuite ces données, les décode et crée un fichier DLL nommé MsCtfMonitor.dll qu'il place dans le répertoire C:\ProgramData , que nous identifions comme l'implant LOTUSHARVEST.

Le script copie également le fichier ctfmon.exe original du dossier System32 vers le même emplacement que le fichier DLL, puis l'exécute. Comme nous l'avons vu, la DLL décodée se nomme MsCtfMonitor.dll ; il s'agit d'un fichier de bibliothèque importé par ctfmon.exe binaireConformément à l'ordre de recherche des DLL, Windows vérifie d'abord le même dossier que l'exécutable et charge cette DLL à partir de là, ce qui constitue donc un cas de chargement latéral de DLL.
Dans la section suivante, nous examinerons le fonctionnement de l'implant DLL malveillant connu sous le nom de LOTUSHARVEST, qui constitue la charge utile finale de la campagne.
Étape 3 – Charge utile finale : LOTUSHARVEST

Nous avons d'abord vérifié avec des outils d'analyse de fichiers et, comme prévu, il s'agit d'un binaire PE 64 bits. L'analyse de la DLL a révélé que sa charge utile sert à voler des informations. Nous explorerons ses fonctionnalités en détail dans la section suivante de ce blog.
![]()
Avant d'aborder les fonctionnalités principales de cet implant, nous avons également découvert un chemin PDB intéressant, où l'autorité de réglementation l'identifie comme DEV-LOADER. Cependant, nous le suivons sous le nom de LOTUSHARVESTER.
Contrôles anti-analyse

L'implant utilisait certaines méthodes anti-analyse que nous avons découvertes, comme la vérification de l'exécution du programme dans un environnement virtuel ; le cas échéant, il provoque un plantage. Il utilisait également d'autres méthodes, décrites ci-après.
IsProcessorFeaturePresent : Cette fonction vérifie la présence d'une fonctionnalité spécifique du processeur et, si elle est trouvée, déclenche immédiatement une interruption rapide en tant que mesure anti-analyse pour éviter l'exécution sur les processeurs modernes, les machines virtuelles ou les environnements protégés.
IsDebuggerPresent : Technique très courante qui vérifie si un débogueur en mode utilisateur est attaché. Si un débogueur est détecté, le programme plante.
Exceptions simulées : Le programme provoque un plantage en créant une exception et un état du processeur fictifs, modifie l’emplacement où le code est censé s’exécuter (RIP/RSP) puis le transmet à UnhandledExceptionFilter(). Cette technique trompe les débogueurs, perturbe la pile d’appels et masque le véritable fonctionnement du programme.
Passons maintenant à la partie où l'implant se concentre sur la collecte des identifiants de connexion au navigateur.
Collecte de l'historique de navigation et des identifiants enregistrés

Nous avons maintenant constaté que l'autre exportation, connue sous le nom de DoMsCtfMonitor, contient le code malveillant, qui exécute certaines fonctions.

Lors de l'analyse de la fonction malveillante, nous avons identifié deux routines clés : l'une dédiée à la collecte d'identifiants et l'autre à l'exfiltration des données collectées. Ce dispositif DLL fonctionnant principalement comme un voleur d'informations, son objectif principal est l'extraction de données sensibles relatives au navigateur, comme nous le démontrerons dans cette section.



Comme nous pouvons le constater, l'implant cible des navigateurs tels que Google Chrome et Microsoft Edge. Il commence par ouvrir et lire le contenu des fichiers, puis, une fois ceux-ci collectés, il y associe le nom de l'ordinateur et le nom d'utilisateur de la victime, renvoyés par des fonctions telles que GetComputerNameA et GetUserNameA, avant de commencer l'exfiltration des données, créant ainsi une entrée unique du côté de l'acteur malveillant.

Dans les fragments de code ci-dessus, nous pouvons voir que le logiciel malveillant ouvre les bases de données d'historique SQLite des navigateurs , exécute une requête pour extraire les 20 URL les plus récemment visitées et formate les résultats sous forme de tableau JSON contenant l'URL, le titre de la page, le nombre de visites et l'heure de la dernière visite.

Il ouvre ensuite la base de données Login Data , lit jusqu'à cinq identifiants de connexion enregistrés et tente de déchiffrer chaque mot de passe à l'aide de l'API classique CryptUnprotectData.
Exfiltration de données

Dans la fonction suivante, nous avons observé que l'implant exfiltre des données via l'API Windows WinINet. Il ouvre une session HTTP et se connecte au serveur contrôlé par l'attaquant, eol4hkm8mfoeevs.m.pipedream.net, sur le port 443. Une fois la connexion établie, il envoie une requête POST au point de terminaison /service et transmet les informations du navigateur volées sous forme de charge utile JSON.
Dans la prochaine partie, nous examinerons les détails infrastructurels liés à la campagne.
Infrastructure et attribution
Lors de l'analyse, nous avons observé que la charge utile communique avec plusieurs points de terminaison hébergés en externe. Parmi les domaines identifiés, uuhlswlx[.]requestrepo[.]com est un sous-domaine généré aléatoirement, tandis que eol4hkm8mfoeevs[.]m[.]pipedream[.]net, également un sous-domaine généré aléatoirement, a été principalement utilisé pour l'exfiltration des identifiants volés. Voilà qui résume brièvement les détails d'infrastructure liés à cet implant.

En utilisant une recherche OSINT très basique, nous avons également découvert que le numéro de contact utilisé par le TA sur le faux CV, à savoir le +84912345678, appartient à un bon magasin de la ville de Hanoi, bien que cela ne puisse être certain car il arrive souvent que des numéros de contact erronés ou falsifiés soient utilisés à divers endroits.

Pour se concentrer sur les détails liés à l'attribution, il est nécessaire de disposer de preuves concrètes concernant de multiples paramètres, tels que la réutilisation des tactiques, techniques et procédures (TTP), la réutilisation des infrastructures et la victimologie. Comme nous l'avons constaté précédemment, aux alentours de mars 2025, un groupe de menace probablement parrainé par l'État chinois a ciblé le Vietnam avec un leurre basé sur un faux CV, dont le nom était CV-Nguyen-Lam-San-Xuat-Noi-Dung-Compress.pdf. Au cours de cette même campagne, un autre leurre a été nommé « CV-Nguyen-Van-A », une nomenclature similaire. Cette similitude ne permet guère d'affirmer avec certitude que ces deux campagnes relèvent d'une même entité de menace.
Un autre point commun, très courant mais simple, entre les deux campagnes est l'utilisation de domaines aléatoires orientés DGA pour la distribution des implants, ainsi que l'utilisation de serveurs de commande et de contrôle (C2) dans les deux campagnes, ce qui ne permet que très peu d'attribuer les deux campagnes. Enfin, et ce n'est pas le moindre, les deux campagnes partagent une même victimologie, c'est-à-dire le ciblage de logiciels et le secteur du recrutement.
En tant que chercheurs, nous estimons que notre biais doit être pertinent non seulement pour les recoupements, mais aussi pour les artefacts uniques et non similaires. Dans ce cas précis, nous constatons que l'acteur malveillant a déployé l'implant LOTUSHARVEST, qui fonctionne comme un voleur d'informations, ce qui soulève des inquiétudes. Bien que des acteurs parrainés par l'État chinois abusent du chargement latéral de DLL, ils déploient également des implants bien connus tels que PlugX et bien d'autres. Par conséquent, considérer le voleur d'informations serait une mesure contradictoire et unique.
Par conséquent, avec un niveau de confiance moyen, en nous basant sur les similitudes et les différences entre les précédentes campagnes de menaces que nous avons observées, leurs tactiques, techniques et procédures (TTP) et bien plus encore, nous avons décidé d'attribuer cette entité menaçante à une origine chinoise, même si la qualifier de parrainée par un État nécessite encore d'autres indicateurs importants à l'heure actuelle.
Conclusion
SEQRITE L'équipe APT identifie l'opération Hanoi Thief comme une campagne de spear-phishing ciblant les professionnels de l'informatique et du recrutement au Vietnam. Elle utilise de faux CV et des raccourcis pour tromper ses victimes, puis exploite des outils Windows de confiance pour exécuter des scripts cachés. La charge utile finale, nommée LOTUSHARVEST, est un implant DLL qui vole les identifiants et l'historique de navigation avant de les envoyer aux serveurs de l'attaquant. Les tactiques employées et les similitudes avec des activités antérieures suggèrent l'implication d'un acteur malveillant d'origine chinoise, bien que le soutien d'un État ne soit pas confirmé.
Seqrite Protection
- Trojan.50086.SL
- Cheval de Troie.A18678918
- Application
COI
| Hachage (SHA-256) | Type de logiciel malveillant |
| 1beb8fb1b6283dc7fffedcc2f058836d895d92b2fb2c37d982714af648994fed | Fichier zip |
| 77373ee9869b492de0db2462efd5d3eff910b227e53d238fae16ad011826388a | Fichier LNK |
| 693ea9f0837c9e0c0413da6198b6316a6ca6dfd9f4d3db71664d2270a65bcf38 | Charge utile pseudo-polyglotte (PDF, lot) |
| 48e18db10bf9fa0033affaed849f053bd20c59b32b71855d1cc72f613d0cac4b | Fichier DLL |
MITRE ATT & CK
| Tactique | Identification de la technique | Nom de la technique |
| Accès initial | T1566.001 | Attachement de spearphishing |
| Développement des ressources | T1587.001 | Développement de charges utiles : logiciels malveillants |
| De bout en bout | T1204.002 | Exécution utilisateur : fichier malveillant |
| T1218 | Exécution du proxy binaire signé | |
| Évasion défensive | T1036.007 | Masquage : extension de fichier trompeuse |
| T1140 | Désobfusquer le fichier | |
| Elévation de Privilèges | T1574.002 | Chargement latéral de DLL |
| Découverte | T1082 | Découverte des informations système |
| T1012 | Découverte du système de fichiers pour les données du navigateur | |
| Accès aux informations d'identification | T1555.003 | Informations d'identification des magasins de mots de passe |
| Collection | T1005 | Données du système local |
| exfiltration | T1041 | Exfiltration sur le canal C2 |
| Commander et contrôler | T1071.001 | Protocole Web : HTTPS |
Auteurs
- Subhajeet Singha
- Priya Patel



