Silver Fox Enveloppe ValleyRAT dans ZPAQ et un Binaire ByteDance : Un Leurre MSI Pack de Langue Chinoise pour Telegram
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Un installateur MSI malveillant se faisant passer pour un pack de langue chinoise Telegram délivre une chaîne d’infection en couches impliquant ValleyRAT, un rootkit de noyau basé sur BYOVD, et un exécutable signé ByteDance utilisé pour le chargement de DLL. L’installateur utilise aussi abusivement la légitime utilitaire d’archivage zpaqfranz comme un binaire de survie et déploie le pilote vulnérable wnBios pour accéder à la mémoire physique. Les chercheurs ont lié l’infrastructure derrière l’opération à CTG Server Ltd à Hong Kong et ont attribué l’activité au groupe APT Silver Fox. La campagne semble viser les utilisateurs sinophones dans plusieurs pays de la région Asie-Pacifique.
Enquête
Les chercheurs ont reconstruit tout le flux d’attaque, en commençant par l’action personnalisée du MSI et en continuant par l’extraction des archives ZPAQ, l’utilisation sélective de l’exécutable ByteDance SodaMusicLauncher pour le chargement de DLL, et le déploiement du pilote de noyau wnBios. L’analyse des données de configuration intégrées a exposé des identifiants d’opérateurs et des détails de commande et de contrôle. L’infrastructure de soutien était liée à un hébergement à toute épreuve précédemment associé à Silver Fox. Les enquêteurs ont également découvert des techniques de persistance et une logique d’évasion consciente des antivirus utilisées tout au long de la chaîne d’intrusion.
Atténuation
Empêchez l’exécution du binaire zpaqfranz en dehors des environnements de sauvegarde ou de développement approuvés et surveillez de près les installations MSI qui dépendent des actions personnalisées VBScript. Limitez la création de l’AppShellElevationService et détectez les DLL non signées placées aux côtés de binaires signés de confiance. Bloquez la communication sortante vers la plage de réseau /21 identifiée opérée par CTG Server Ltd et refusez le trafic sur le port C2 personnalisé 5040. Renforcez les protections basées sur l’hôte contre les noms de fichiers malveillants et les noms de processus observés dans cette campagne.
Réponse
Déployez des détections pour les fichiers identifiés, les processus engendrés, et les événements de création de services suspects. Menez des recherches pour le pilote de noyau vulnérable et la logique de décryptage distinctive basée sur XOR du malware. Isolez les systèmes potentiellement affectés, collectez des images de mémoire pour une enquête plus approfondie sur le rootkit, et réinitialisez toutes les informations d’identification exposées pendant la compromission. Les équipes de renseignement sur les menaces devraient continuer à suivre l’infrastructure CTG Server pour des activités successeurs liées.
graph TB classDef technique fill:#ffcc99 classDef tool fill:#c2e0ff classDef malware fill:#ffd9b3 classDef process fill:#d9ffcc initial_access[« <b>Technique</b> – Exécution utilisateur malveillante »] class initial_access technique system_binary_proxy[« Exécution proxy msiexec »] class system_binary_proxy technique vbscript_interpreter[« Interpréteur Visual Basic »] class vbscript_interpreter technique obfuscation[« Fichiers obfusqués »] class obfuscation technique lolbin_zpaqfranz[« Outil : zpaqfranz.exe »] class lolbin_zpaqfranz tool powershell_xor[« PowerShell déchiffrement XOR »] class powershell_xor technique dll_sideloading[« DLL sideloading »] class dll_sideloading technique signed_launcher[« Processus : SodaMusicLauncher.exe »] class signed_launcher process windows_service[« Persistance service Windows »] class windows_service technique priv_esc_driver[« Escalade de privilèges BYOVD »] class priv_esc_driver technique rootkit_bootkit[« Rootkit / Bootkit »] class rootkit_bootkit technique scheduled_task[« Tâche planifiée »] class scheduled_task technique c2_valleyrat[« Malware : ValleyRAT »] class c2_valleyrat malware c2_nonstandard_port[« Port non standard »] class c2_nonstandard_port technique c2_dynamic_resolution[« Résolution dynamique C2 »] class c2_dynamic_resolution technique initial_access –> system_binary_proxy system_binary_proxy –> vbscript_interpreter vbscript_interpreter –> obfuscation obfuscation –> lolbin_zpaqfranz obfuscation –> powershell_xor powershell_xor –> dll_sideloading dll_sideloading –> signed_launcher signed_launcher –> windows_service windows_service –> priv_esc_driver priv_esc_driver –> rootkit_bootkit scheduled_task –> c2_valleyrat c2_valleyrat –> c2_nonstandard_port c2_valleyrat –> c2_dynamic_resolution
Flux d’Attaque
Détections
Indicateurs possibles d’obfuscation Powershell (via powershell)
Voir
Appeler des classes/méthodes .NET suspectes depuis la ligne de commande Powershell (via process_creation)
Voir
Commande et contrôle suspects par requête DNS de domaine de premier niveau (TLD) inhabituel (via dns)
Voir
Possible communication de recherche de domaine IP effectuée (via dns)
Voir
Appeler des méthodes .NET suspectes depuis Powershell (via powershell)
Voir
IOC (HashSha256) pour détecter : Silver Fox enroule ValleyRAT dans ZPAQ et un binaire ByteDance : Un leurre de MSI de pack de langue chinoise de Telegram
Voir
IOC (HashMd5) pour détecter : Silver Fox enroule ValleyRAT dans ZPAQ et un binaire ByteDance : Un leurre de MSI de pack de langue chinoise de Telegram
Voir
IOC (DestinationIP) pour détecter : Silver Fox enroule ValleyRAT dans ZPAQ et un binaire ByteDance : Un leurre de MSI de pack de langue chinoise de Telegram
Voir
IOC (SourceIP) pour détecter : Silver Fox enroule ValleyRAT dans ZPAQ et un binaire ByteDance : Un leurre de MSI de pack de langue chinoise de Telegram
Voir
Détecter les événements de chargement de pilote de noyau avec wnBios pour l’accès mémoire physique [Chargement d’image Windows]
Voir
Détecter l’exécution de binaires malveillants utilisés par Silver Fox APT [Création de processus Windows]
Voir
Communication C2 de ValleyRAT sur le port 5040 [Connexion réseau Windows]
Voir
Exécution de simulation
Prérequis : Le contrôle préalable de télémétrie et de base doit avoir réussi.
Raisonnement : 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 la télémétrie exacte attendue par la logique de détection.
-
Narrative & Commandes d’Attaque :
L’acteur malveillant reçoit un lien de spear-phishing (T1566.002) qui dépose
zpaqfranz.exesur la station de travail de la victime. Le binaire est un outil de compression ayant l’air légitime réutilisé comme LOLBin (T1036). L’attaquant le lance ensuite via PowerShell (T1059.001) avec une ligne de commande cachée qui ordonne à l’outil de décompresser une charge utile ValleyRAT emballée (T1027) et de l’exécuter. Le processus s’exécute sous le contexte utilisateur actuel, générant un événement de création de processus Windows qui correspond à la règleImage|se termine par 'zpaqfranz.exe'condition.Étape par étape :
- Préparez le binaire malveillant in
%TEMP%. - Exécutez le binaire avec PowerShell, en passant un argument fictif (
-extract) pour imiter la charge utile réelle. - Maintenir le processus pour une courte période, puis sortez.
- Préparez le binaire malveillant in
-
Script de test de régression :
# Simulation d'Exécution de LOLBin Silver Fox $tempPath = "$env:TEMPzpaqfranz.exe" # 1. Copier un exécutable bénin pour se faire passer pour le LOLBin malveillant # (Dans un véritable test, vous déposeriez le véritable binaire malveillant.) Copy-Item -Path "$env:SystemRootSystem32calc.exe" -Destination $tempPath -Force # 2. Exécuter le LOLBin via PowerShell (simulation T1059.001) $args = "-extract C:Temppayload.bin" Write-Host "Lancement de $tempPath $args" Start-Process -FilePath $tempPath -ArgumentList $args -NoNewWindow # 3. Attendez quelques secondes pour vous assurer que l'événement est enregistré Start-Sleep -Seconds 5 # 4. Optionnel : simuler le nettoyage (supprimer le binaire déposé) Remove-Item -Path $tempPath -Force -
Commandes de nettoyage :
# Supprimez tous les artefacts résiduels de la simulation $tempPath = "$env:TEMPzpaqfranz.exe" if (Test-Path $tempPath) { Remove-Item $tempPath -Force } # Terminez les processus calc.exe errants qui peuvent avoir été lancés par inadvertance Get-Process -Name "calc" -ErrorAction SilentlyContinue | Stop-Process -Force