Selon ThreatLabz, un acteur APT présumé lié à l’Iran, nommé Dust Specter, cible des officiels gouvernementaux en Irak avec une campagne utilisant de nouveaux malwares nommés SPLITDROP, TWINTASK, TWINTALK et GHOSTFORM. L’analyse détaille deux chaînes d’attaque observées en conditions réelles, l’une basée sur une architecture scindée (worker + orchestrateur C2) et l’autre consolidée dans un binaire unique.

🧪 Chaîne d’attaque 1 (SPLITDROP → TWINTASK → TWINTALK). Un RAR protégé par mot de passe (« mofa-Network-code.rar ») livre un dropper .NET déguisé en WinRAR (SPLITDROP). Après saisie du mot de passe, SPLITDROP déchiffre une ressource chiffrée en AES‑256‑CBC avec PBKDF2 (HMAC‑SHA1, 10 000 itérations, clé 256 bits), écrit un ZIP puis extrait dans C:\ProgramData\PolGuid\, et exécute un VLC.exe légitime pour déclencher un sideloading de DLL. Le DLL malveillant libvlc.dll (TWINTASK) agit comme module worker : il boucle toutes les 15 s, lit in.txt, décale le premier caractère, décode en Base64, et exécute le script via PowerShell (timeout 600 s), en journalisant vers out.txt. La persistance est ajoutée via HKCU...\Run (clés VLC et WingetUI). Le binaire légitime WingetUI.exe est lancé et sideloade hostfxr.dll (TWINTALK), l’orchestrateur C2.

🧩 C2 et commandes (TWINTALK). Le beaconing emploie un délai de base 120 s avec gigue −10 % à +50 %. Chaque requête construit un chemin URI aléatoire (10 hex + checksum personnalisé semé à 0xABCDEF) et envoie un JWT Beareriat contient l’ID bot (10 chiffres) et version (observée à 0.0.0.0), signé HS256 avec un secret faible (_). L’User‑Agent imite Edge/Chrome. Le serveur renvoie du JSON en clair aux clés randomisées ; le bot parse par position. Trois types de commandes existent : (0) exécution : écrit la charge dans in.txt, attend qu’elle soit traitée par TWINTASK, puis exfiltre out.txt ; (1) téléchargement de fichier : construit l’URL avec le transaction_id et écrit la charge à la destination ; (2) exfiltration : lit un fichier local, Base64 + caractère aléatoire préfixé, puis POST vers l’URL.

🪲 Chaîne d’attaque 2 (GHOSTFORM). Un binaire unique regroupe les fonctionnalités et exécute les commandes PowerShell en mémoire (empreinte disque réduite). Un leurre Google Forms en arabe s’ouvre au lancement, se faisant passer pour un sondage officiel du Ministère des Affaires étrangères d’Irak. La temporisation utilise un formulaire Windows invisible (opacité ~0,001, 10×15, hors barre des tâches) avec une base de 121 s et gigue ±35 %. Un mutex Global\_ empêche les multiples instances. L’ID bot provient de l’horodatage de création de l’assembly .NET (converti en epoch). Des versions observées incluent 5.62.147.912_1 et 3.3.28.962_1.

📁 IOCs (extraits)

  • Archives/ressources : mofa-Network-code.rar (mot de passe : 92,110-135_118-128), ressource CheckFopil.PolGuid.zip.
  • Chemins/fichiers : C:\ProgramData\PolGuid.zip, C:\ProgramData\PolGuid\, C:\ProgramData\PolGuid\VLC\VLC.exe, C:\ProgramData\PolGuid\in.txt, C:\ProgramData\PolGuid\out.txt, C:\ProgramData\PolGuid\WingetUI\WingetUI.exe.
  • DLLs sideloadées : libvlc.dll (TWINTASK), hostfxr.dll (TWINTALK).
  • Persistance registre : HKCU:\Software\Microsoft\Windows\CurrentVersion\Run (valeurs VLC...\VLC\vlc.exe, WingetUI...\WingetUI\WingetUI.exe).
  • Synchronisation/artefacts : programTemp.log (stocke l’ID bot), mutex Global\_.
  • Réseau/empreintes : UA Mozilla/5.0 ... Chrome/135.0.0.0 ... Edg/135.0.0.0, JWT HS256 avec secret _, URI aléatoire (10 hex + checksum semé 0xABCDEF).
  • Timings : TWINTASK (15 s poll, 600 s timeout), TWINTALK (108–180 s avec gigue), check in.txt toutes 20 s ; GHOSTFORM (121 s ±35 %).

🔎 TTPs

  • Ingénierie sociale : archive RAR protégée par mot de passe ; leurre Google Forms (sondage du MAE irakien).
  • Exécution : PowerShell (sur disque et en mémoire pour GHOSTFORM).
  • Persistance : Run keys utilisateur (HKCU).
  • Détournement de binaire signé / DLL sideloading : via VLC.exe et WingetUI.exe.
  • C2 furtif : UA navigateur, JWT non standard (ID dans iat, secret faible), URIs aléatoires avec checksum, JSON aux clés randomisées.
  • Staging local et exfiltration : files d’attente in.txt / out.txt, Base64 avec caractère aléatoire préfixé, transferts pilotés par transaction_id.

Type d’article : analyse technique/menace visant à documenter l’outillage, la chaîne d’infection et les mécanismes C2 employés par Dust Specter.

🧠 TTPs et IOCs détectés

TTP

[‘Ingénierie sociale : archive RAR protégée par mot de passe ; leurre Google Forms (sondage du MAE irakien)’, ‘Exécution : PowerShell (sur disque et en mémoire pour GHOSTFORM)’, ‘Persistance : Run keys utilisateur (HKCU)’, ‘Détournement de binaire signé / DLL sideloading : via VLC.exe et WingetUI.exe’, ‘C2 furtif : UA navigateur, JWT non standard (ID dans iat, secret faible), URIs aléatoires avec checksum, JSON aux clés randomisées’, ‘Staging local et exfiltration : files d’attente in.txt / out.txt, Base64 avec caractère aléatoire préfixé, transferts pilotés par transaction_id’]

IOC

{‘archives_ressources’: [‘mofa-Network-code.rar (mot de passe : 92,110-135_118-128)’, ‘CheckFopil.PolGuid.zip’], ‘chemins_fichiers’: [‘C:\ProgramData\PolGuid.zip’, ‘C:\ProgramData\PolGuid\’, ‘C:\ProgramData\PolGuid\VLC\VLC.exe’, ‘C:\ProgramData\PolGuid\in.txt’, ‘C:\ProgramData\PolGuid\out.txt’, ‘C:\ProgramData\PolGuid\WingetUI\WingetUI.exe’], ‘dlls_sideloadées’: [’libvlc.dll (TWINTASK)’, ‘hostfxr.dll (TWINTALK)’], ‘persistance_registre’: [‘HKCU:\Software\Microsoft\Windows\CurrentVersion\Run (valeurs VLC → …\VLC\vlc.exe, WingetUI → …\WingetUI\WingetUI.exe)’], ‘synchronisation_artefacts’: [‘programTemp.log (stocke l’ID bot)’, ‘mutex Global\_’], ‘réseau_empreintes’: [‘UA Mozilla/5.0 … Chrome/135.0.0.0 … Edg/135.0.0.0’, ‘JWT HS256 avec secret _’, ‘URI aléatoire (10 hex + checksum semé 0xABCDEF)’]}


🔗 Source originale : https://www.zscaler.com/blogs/security-research/dust-specter-apt-targets-government-officials-iraq