SOC Prime Bias: Critique

30 Déc 2025 16:52

Renard Argenté cible l’Inde avec des pièges de phishing sur le thème des impôts

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Suivre
Renard Argenté cible l’Inde avec des pièges de phishing sur le thème des impôts
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Un groupe APT chinois appelé Silver Fox mène une campagne de phishing sur le thème de la fiscalité contre des entités indiennes. L’e-mail initial contient un PDF qui dirige les victimes vers un domaine malveillant et déclenche un téléchargement d’un fichier ZIP. Le ZIP contient un installateur NSIS qui dépose Thunder.exe et un libexpat.dll malveillant qui réalise un détournement de DLL, des vérifications anti-analyse et charge un shellcode chiffré. La charge utile finale est un Valley RAT qui reçoit sa configuration d’une infrastructure C2 multi-niveaux.

Enquête

Le rapport détaille quatre étapes : (1) livraison d’un ZIP via un leurre PDF, (2) exécution d’un installateur NSIS qui dépose Thunder.exe et libexpat.dll, (3) un chargeur de shellcode généré par Donut qui s’injecte dans explorer.exe, et (4) déploiement de Valley RAT avec persistance basée sur le registre et plugins modulaires. L’analyse inclut un examen statique et dynamique des binaires, une énumération des domaines C2, et une cartographie des techniques ATT&CK.

Atténuation

Les défenseurs doivent surveiller les binaires signés chargeant des DLL non signées depuis des emplacements temporaires, les écritures de registre sous HKCUConsole, et la création anormale de mémoire PAGE_EXECUTE_READWRITE dans explorer.exe. Bloquer les domaines et IPs C2 connus, et détecter le comportement de repli multi-niveaux réduira l’exposition. Implémentez un contrôle stricte des applications et la détection d’évasion de sandbox pour arrêter l’installateur NSIS initial.

Réponse

Lorsqu’un indicateur est observé, isolez l’hôte affecté, collectez la mémoire volatile pour l’analyse de l’injection de processus, et recherchez les clés de registre et plugins Valley RAT. Bloquez toute infrastructure C2 identifiée et réinitialisez les identifiants compromis. Réalisez une revue légale complète pour identifier d’éventuels plugins additionnels ou outils de déplacement latéral.

graph TB %% Définitions des classes classDef technique fill:#ddeeff classDef file fill:#ffddaa classDef process fill:#ffccbb classDef action fill:#cce5ff %% Nœuds – Techniques initial_phishing[« <b>Accès Initial – T1566.001</b><br/>Pièce Jointe de Spearphishing<br/>La victime ouvre un PDF fiscal malveillant qui redirige vers ggwk.cc et déclenche le téléchargement d’une archive ZIP »] class initial_phishing technique user_execution[« <b>Exécution par l’Utilisateur – T1204.002</b><br/>Fichier Malveillant<br/>L’utilisateur exécute l’archive ZIP téléchargée contenant un installateur NSIS »] class user_execution technique cmd_scripting[« <b>Exécution – T1059</b><br/>Interpréteur de Commandes et de Scripts<br/>Le script NSIS pilote le flux d’installation »] class cmd_scripting technique native_api_1[« <b>Exécution – T1106</b><br/>API Natives<br/>L’installateur appelle GetTempPathA, crée un répertoire temporaire et écrit les fichiers »] class native_api_1 technique shared_modules[« <b>Exécution – T1129</b><br/>Modules Partagés<br/>L’installateur dépose Thunder.exe (signé) et la DLL malveillante libexpat.dll »] class shared_modules technique dll_hijack[« <b>Évasion Défensive – T1574.001</b><br/>Détournement de l’Ordre de Recherche des DLL<br/>libexpat.dll est placée à côté de Thunder.exe afin d’être chargée en premier »] class dll_hijack technique proxy_execution[« <b>Évasion Défensive – T1218</b><br/>Exécution via Proxy de Binaire Système<br/>Thunder.exe est utilisé comme proxy pour exécuter la DLL malveillante »] class proxy_execution technique trusted_proxy[« <b>Évasion Défensive – T1127</b><br/>Exécution Proxy via Utilitaires de Développement de Confiance<br/>Thunder.exe signé masque l’activité malveillante »] class trusted_proxy technique dll_injection[« <b>Exécution – T1055.001</b><br/>Injection de DLL<br/>libexpat.dll exécute des contrôles anti‑analyse et désactive le service Windows Update »] class dll_injection technique service_execution[« <b>Exécution – T1569.002</b><br/>Exécution de Service<br/>Le service wuauserv est arrêté afin de réduire la visibilité »] class service_execution technique sandbox_evasion[« <b>Évasion Défensive – T1497</b><br/>Évasion de Virtualisation / Sandbox<br/>La logique anti‑debug et anti‑sandbox interrompt l’exécution dans les environnements d’analyse »] class sandbox_evasion technique native_api_2[« <b>Exécution – T1106</b><br/>API Natives<br/>Utilise VirtualAllocEx et WriteProcessMemory pour injecter du shellcode dans explorer.exe »] class native_api_2 technique process_hollowing[« <b>Évasion Défensive – T1055.012</b><br/>Process Hollowing<br/>Explorer.exe est lancé en état suspendu et le payload y est injecté »] class process_hollowing technique reflective_loading[« <b>Exécution – T1620</b><br/>Chargement de Code Réflexif<br/>Le loader généré par Donut exécute le payload entièrement en mémoire »] class reflective_loading technique registry_persistence[« <b>Persistance – T1547.001</b><br/>Clés Run du Registre / Dossier de Démarrage<br/>Valley RAT stocke les modules plugins dans HKCU\\Console\\* en tant que valeurs REG_BINARY »] class registry_persistence technique modify_registry[« <b>Persistance – T1112</b><br/>Modification du Registre<br/>Les paramètres de configuration (adresses C2, indicateurs fonctionnels) sont écrits dans le registre »] class modify_registry technique c2_web[« <b>Commande et Contrôle – T1071.001</b><br/>Protocoles Web<br/>Communication C2 principale via HTTP/HTTPS »] class c2_web technique c2_raw_tcp[« <b>Commande et Contrôle – T1095</b><br/>Protocole Hors Couche Applicative<br/>Prise en charge du TCP brut en secours lorsque HTTP échoue »] class c2_raw_tcp technique encrypted_channel[« <b>Commande et Contrôle – T1573</b><br/>Canal Chiffré<br/>Tout le trafic C2 et les payloads de configuration sont chiffrés »] class encrypted_channel technique fallback_channels[« <b>Commande et Contrôle – T1008</b><br/>Canaux de Repli<br/>Hiérarchie C2 à trois niveaux avec bascule automatique »] class fallback_channels technique keylogging[« <b>Collecte – T1056.001</b><br/>Capture de Saisie : Keylogging<br/>La capacité de keylogging est activée via un indicateur de configuration »] class keylogging technique obfuscation[« <b>Évasion Défensive – T1027</b><br/>Fichiers ou Informations Obfusqués<br/>Le payload est stocké chiffré dans box.ini et déchiffré à l’exécution »] class obfuscation technique code_signing[« <b>Évasion Défensive – T1553.002</b><br/>Subversion des Mécanismes de Confiance : Signature de Code<br/>Thunder.exe signé masque l’activité malveillante »] class code_signing technique appcert_dll[« <b>Évasion Défensive – T1546.009</b><br/>Exécution Déclenchée par Événement : DLL AppCert<br/>La DLL malveillante libexpat.dll exploite le détournement de DLL pour l’exécution »] class appcert_dll technique %% Nœuds – Fichiers / Processus file_zip[« <b>Fichier</b><br/>Archive ZIP malveillante contenant l’installateur NSIS »] class file_zip file nsis_installer[« <b>Fichier</b><br/>Installateur NSIS exécuté par l’utilisateur »] class nsis_installer file thunder_exe[« <b>Fichier</b><br/>Thunder.exe signé utilisé comme proxy »] class thunder_exe file libexpat_dll[« <b>Fichier</b><br/>DLL malveillante libexpat.dll »] class libexpat_dll file box_ini[« <b>Fichier</b><br/>Payload de configuration chiffré (box.ini) »] class box_ini file explorer_exe[« <b>Processus</b><br/>explorer.exe (cible de l’injection) »] class explorer_exe process donut_loader[« <b>Fichier</b><br/>Loader réflexif généré par Donut »] class donut_loader file %% Connexions – Chaîne d’Attaque initial_phishing –>|télécharge| file_zip file_zip –>|contient| nsis_installer nsis_installer –>|exécute| user_execution user_execution –>|déclenche| cmd_scripting cmd_scripting –>|utilise| native_api_1 native_api_1 –>|écrit| shared_modules shared_modules –>|dépose| thunder_exe shared_modules –>|dépose| libexpat_dll thunder_exe –>|active| dll_hijack dll_hijack –>|facilite| proxy_execution proxy_execution –>|exploite| trusted_proxy trusted_proxy –>|charge| dll_injection dll_injection –>|désactive| service_execution service_execution –>|réduit la visibilité| sandbox_evasion sandbox_evasion –>|poursuit| native_api_2 native_api_2 –>|injecte dans| explorer_exe explorer_exe –>|vidé par| process_hollowing process_hollowing –>|exécute| reflective_loading reflective_loading –>|utilise| donut_loader donut_loader –>|établit| registry_persistence registry_persistence –>|stocke| modify_registry modify_registry –>|configure| c2_web c2_web –>|bascule vers| c2_raw_tcp c2_raw_tcp –>|sécurisé par| encrypted_channel encrypted_channel –>|prend en charge| fallback_channels fallback_channels –>|fournit| keylogging keylogging –>|enregistre la saisie| obfuscation obfuscation –>|protège| code_signing code_signing –>|masque| appcert_dll appcert_dll –>|s’exécute via| dll_hijack %% Styles class initial_phishing,user_execution,cmd_scripting,native_api_1,shared_modules,dll_hijack,proxy_execution,trusted_proxy,dll_injection,service_execution,sandbox_evasion,native_api_2,process_hollowing,reflective_loading,registry_persistence,modify_registry,c2_web,c2_raw_tcp,encrypted_channel,fallback_channels,keylogging,obfuscation,code_signing,appcert_dll technique class file_zip,nsis_installer,thunder_exe,libexpat_dll,box_ini,donut_loader file class explorer_exe process

Flux d’attaque

Exécution de Simulation

Prérequis : Le Contrôle Préalable de Télémétrie & Base de Référence doit avoir été passé.

Justification : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer exactement la télémétrie attendue par la logique de détection. Les exemples abstraits ou non liés entraîneront des erreurs de diagnostic.

  • Narratif de l’Attaque & Commandes :
    Un adversaire livre un DLL malveillant aux côtés d’un “Thunder.exe” déposé sur %TEMP% répertoire de l’utilisateur. Pour éviter la suspicion de l’utilisateur, la charge utile est lancée via explorer.exe processus déjà en cours d’exécution à l’aide de l’API Windows ShellExecute , ce qui entraîne un événement de création de processusexplorer.exe apparaît comme le parent. Le Thunder.exe exécutable malveillant charge ensuite le DLL malveillant (détournement de DLL) et injecte du shellcode dans le explorer.exe processus (injection de processus), réalisant une exécution de code avec le jeton de l’utilisateur.

  • Script de Test de Régression :

    # -------------------------------------------------
    # Script de régression pour déclencher la détection Sigma
    # -------------------------------------------------
    # 1. Préparez un faux Thunder.exe (copie de notepad.exe)
    $tempDir   = "$env:TEMP"
    $thunderPath = Join-Path -Path $tempDir -ChildPath "Thunder.exe"
    Copy-Item -Path "$env:SystemRootsystem32notepad.exe" -Destination $thunderPath -Force
    
    # 2. (Optionnel) Déposez un DLL malveillant à côté pour imiter le détournement
    $malDll = Join-Path -Path $tempDir -ChildPath "malicious.dll"
    # Pour la démonstration, nous créons simplement un fichier vide; dans un vrai test, ce serait un DLL fabriqué.
    New-Item -Path $malDll -ItemType File -Force | Out-Null
    
    # 3. Lancez Thunder.exe via explorer.exe en utilisant ShellExecute (simulé avec Start-Process -Verb RunAs)
    $explorer = (Get-Process -Name explorer).Id
    # Utilisez PowerShell pour démarrer le processus avec explorer en tant que parent (nécessite une API de bas niveau ; ici, nous approchons)
    Start-Process -FilePath $thunderPath -ArgumentList "" -PassThru | Out-Null
    
    # 4. Attendez une courte période pour permettre aux journaux d'être générés
    Start-Sleep -Seconds 5
    
    # 5. Nettoyage (géré dans la section suivante)
  • Commandes de Nettoyage :

    # -------------------------------------------------
    # Nettoyage après la simulation
    # -------------------------------------------------
    # Supprimez le faux Thunder.exe et le DLL factice de %TEMP%
    Remove-Item -Path "$env:TEMPThunder.exe" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPmalicious.dll" -Force -ErrorAction SilentlyContinue
    
    # Arrêtez éventuellement tous les processus Thunder.exe toujours en cours
    Get-Process -Name "Thunder" -ErrorAction SilentlyContinue | Stop-Process -Force