SOC Prime Bias: Moyen

04 Déc 2025 17:37

Le Malware ValleyRAT Cible les Chercheurs d’Emploi, Exploite le Chargement Contraire des DLL de Foxit

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Le Malware ValleyRAT Cible les Chercheurs d’Emploi, Exploite le Chargement Contraire des DLL de Foxit
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Le cheval de Troie d’accès à distance ValleyRAT est distribué via des pièces jointes d’e-mail ciblant les chercheurs d’emploi et le personnel des ressources humaines. Les adversaires regroupent un exécutable Foxit PDF Reader altéré et s’appuient sur le chargement latéral de DLL pour déclencher un msimg32.dll malveillant. La charge utile décompresse un runtime Python caché, récupère un script encodé en Base64 depuis un serveur C2 et établit la persistance via une valeur de registre d’autorun tout en siphonnant les données du navigateur.

Enquête

Les chercheurs ont analysé l’archive malveillante et ont trouvé un FoxitPDFReader.exe renommé qui charge un msimg32.dll rogue via l’ordre de recherche DLL standard de Windows. Un script batch décompresse ensuite un interpréteur Python intégré (renommé zvchost.exe) et exécute un script de chargeur encodé en Base64 récupéré depuis une adresse IP malveillante. L’inspection du réseau a révélé un certificat auto-signé avec un CN aléatoire et une empreinte JA3 distincte utilisée pour le trafic C2. La persistance est maintenue en créant une clé de registre d’autorun.

Mitigation

Les défenses recommandées comprennent une analyse rigoureuse des pièces jointes d’e-mail et le blocage des exécutables se faisant passer pour des fichiers PDF. Appliquez une liste blanche d’applications pour empêcher le chargement latéral non autorisé de DLL et l’exécution de binaires non fiables. Surveillez la création d’entrées de registre d’autorun et bloquez les adresses IP C2 connues. Gardez les signatures de protection des terminaux à jour et offrez une formation spécifique à la sensibilisation à la sécurité axée sur le phishing thématique pour les chercheurs d’emploi.

Réponse

Générez des alertes lorsque FoxitPDFReader.exe ou msimg32.dll s’exécutent depuis des emplacements inhabituels, en particulier des chemins avec des motifs profonds de soulignement. Corrélez l’activité des processus de zvchost.exe en utilisant le paramètre -c et les charges utiles de commande Base64. Détectez les connexions sortantes vers 196.251.86.145 (et l’infrastructure associée) et examinez les sessions TLS pour le certificat auto-signé distinctif. Examinez les modifications du registre sous HKCUSoftwareMicrosoftWindowsCurrentVersionRun pour les entrées d’autorun non autorisées.

mermaid graph TB %% Définitions des classes de section classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 %% Définitions des nœuds action_phishing[« <b>Action</b> – <b>T1566.001 Phishing : Pièce jointe Spearphishing</b><br />La victime reçoit une archive zip malveillante contenant un FoxitPDFReader.exe déguisé. »] class action_phishing action file_archive[« <b>Outil</b> – Archive malveillante<br />Fichier compressé Overview_of_Work_Expectations.zip livrant la charge utile. »] class file_archive tool exe_foxit[« <b>Outil</b> – FoxitPDFReader.exe (renommé)<br />Exécuté après l’ouverture de l’archive par l’utilisateur. »] class exe_foxit tool dll_msimg32[« <b>Outil</b> – msimg32.dll (malveillant)<br />Placée dans le même répertoire pour réaliser le chargement latéral de DLL. »] class dll_msimg32 tool exec_hijack[« <b>Action</b> – T1574.008 Détournement du Flux d’Exécution<br />Le détournement de l’ordre de recherche charge la DLL malveillante. »] class exec_hijack action script_bat[« <b>Outil</b> – document.bat<br />Script batch lancé par l’exécutable détourné. »] class script_bat tool docx_7zip[« <b>Outil</b> – document.docx (archive 7-zip)<br />Contient un environnement Python intégré. » » » class docx_7zip tool exe_zvchost[« <b>Outil</b> – zvchost.exe (renommé python.exe)<br />Exécute un script de chargeur encodé en Base64. »] class exe_zvchost tool payload_base64[« <b>Outil</b> – Charge utile Base64<br />Décode et met en scène le composant malveillant final. »] class payload_base64 tool registry_run_key[« <b>Outil</b> – Clé de registre Run<br />Créée sous Active Setup pour atteindre la persistance. »] class registry_run_key tool persistence_active_setup[« <b>Action</b> – T1547.014 Exécution de démarrage ou de connexion : Active Setup<br />Assure l’exécution de la charge utile à chaque connexion. »] class persistence_active_setup action defense_obfuscation[« <b>Action</b> – T1027 Fichiers ou Informations Obfusquées<br />Fichiers cachés dans des répertoires avec de profonds soulignements et encodés en Base64. »] class defense_obfuscation action credential_browser[« <b>Action</b> – T1555.003 Crédentiels depuis les navigateurs Web<br />ValleyRAT extrait noms d’utilisateur, mots de passe et cookies enregistrés. »] class credential_browser action malware_valleyrat[« <b>Malware</b> – ValleyRAT<br />Outil d’accès à distance qui ouvre un canal C2 TLS. »] class malware_valleyrat malware c2_server[« <b>Outil</b> – Serveur C2 196.251.86.145<br />Reçoit le trafic chiffré du RAT. »] class c2_server tool malware_component[« <b>Malware</b> – Composant supplémentaire<br />Binaires récupérés exécutés sur l’hôte victime. »] class malware_component malware %% Connexions montrant le flux action_phishing u002du002d>|délivre| file_archive file_archive u002du002d>|contient| exe_foxit exe_foxit u002du002d>|charge| dll_msimg32 dll_msimg32 u002du002d>|permet| exec_hijack exec_hijack u002du002d>|déclenche| script_bat script_bat u002du002d>|extrait| docx_7zip docx_7zip u002du002d>|fournit| exe_zvchost exe_zvchost u002du002d>|exécute| payload_base64 payload_base64 u002du002d>|crée| registry_run_key registry_run_key u002du002d>|assure| persistence_active_setup payload_base64 u002du002d>|effectue| defense_obfuscation payload_base64 u002du002d>|vole| credential_browser credential_browser u002du002d>|alimente| malware_valleyrat malware_valleyrat u002du002d>|établit| c2_server malware_valleyrat u002du002d>|récupère| malware_component

Flux d’Attaque

Exécution de Simulation

Prérequis : La vérification préliminaire de Télémétrie & Baseline doit avoir passé.

Rationnel : 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 la narration doivent refléter directement les TTP identifiés et viser à générer exactement la télémétrie attendue par la logique de détection. Des exemples abstraits ou non liés entraîneront un mauvais diagnostic.

  • Narration & Commandes d’Attaque :

    1. Compromission Initiale : La victime ouvre un PDF à thème de recrutement malveillant livré par email. Le PDF contient un JavaScript (T1059.006) qui dépose une DLL malveillante (valley.dll) dans le même répertoire que l’exécutable du lecteur PDF.

    2. Chargement Latéral de DLL : L’attaquant exploite la capacité de Foxit Reader à charger des DLLs auxiliaires. En plaçant valley.dll à côté d’un exécutable Foxit renommé ( Foxit executable (zvchost.exe), Foxit chargera par inadvertance la DLL malveillante au lancement, exécutant ainsi ValleyRAT.

    3. Déclencheur de Création de Processus : L’exécutable renommé (zvchost.exe) est lancé, générant un événement de création de processus où le chemin de l’image se termine par zvchost.exe. Cela correspond à la condition Image|endswith de la règle Sigma, provoquant une alerte.

  • Script de Test de Régression : Le script PowerShell suivant reproduit les étapes ci-dessus dans un environnement de laboratoire contrôlé.

    # ------------------------------------------------------------
    # Script de régression pour le test de détection de chargement latéral de ValleyRAT
    # ------------------------------------------------------------
    
    # 1. Mise en place du répertoire de travail temporaire
    $workDir = "$env:TEMPValleyRAT_Test"
    New-Item -Path $workDir -ItemType Directory -Force | Out-Null
    
    # 2. Copier un exécutable légitime de Foxit Reader (simulation du lecteur PDF)
    $foxitSrc = "C:Program FilesFoxit SoftwareFoxit ReaderFoxitReader.exe"
    $foxitRenamed = Join-Path $workDir "zvchost.exe"
    Copy-Item -Path $foxitSrc -Destination $foxitRenamed -Force
    
    # 3. Créer une DLL malveillante factice (en réalité, cela serait la charge utile de ValleyRAT)
    $dllPath = Join-Path $workDir "valley.dll"
    Set-Content -Path $dllPath -Value ([byte[]](0x4D,0x5A)) -Encoding Byte  # En-tête MZ minimal
    
    # 4. Lancer l'exécutable Foxit renommé (cela déclenche le chargement latéral de DLL)
    Write-Host "[*] Lancement de l'exécutable Foxit renommé pour déclencher le chargement latéral..."
    $proc = Start-Process -FilePath $foxitRenamed -PassThru -WindowStyle Hidden
    
    # 5. Attendre brièvement pour s'assurer que la création de processus est journalisée
    Start-Sleep -Seconds 5
    
    # 6. Sortie des informations de processus pour vérification
    Write-Host "ID de processus : $($proc.Id)"
    Write-Host "Chemin de l'exécutable : $($proc.Path)"
    
    # 7. Nettoyage (optionnel – voir la section de nettoyage séparée)
    # Remove-Item -Recurse -Force $workDir
  • Commandes de Nettoyage : Exécutez après le test pour supprimer les artefacts et éviter les DLLs chargées latéralement persistantes.

    # Nettoyer le répertoire de test et terminer tout processus égaré
    $workDir = "$env:TEMPValleyRAT_Test"
    
    # Terminer le processus lancé s'il est toujours en cours d'exécution
    Get-Process -Name "zvchost" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Supprimer les artefacts de test
    Remove-Item -Path $workDir -Recurse -Force -ErrorAction SilentlyContinue
    
    Write-Host "[+] Nettoyage terminé."