SOC Prime Bias: Medio

04 Feb 2026 17:07

Strumento Swarmer: evasione EDR con una modifica furtiva al registro di Windows per la persistenza

Author Photo
Ruslan Mikhalov Capo della Ricerca sulle Minacce presso SOC Prime linkedin icon Segui
Strumento Swarmer: evasione EDR con una modifica furtiva al registro di Windows per la persistenza
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riepilogo

Swarmer è un’utilità di persistenza di Windows a basso privilegio che crea un hive del profilo utente obbligatorio (NTUSER.MAN) e lo modifica tramite l’API del Registro di Sistema Offline. Poiché non si basa su API Windows Reg* convenzionali, può inserire la persistenza di una chiave Run riducendo la visibilità alla telemetria EDR che è sintonizzata sul comportamento standard di scrittura del registro. Il metodo abusa della gestione dei profili obbligatori per trasferire le voci di avvio a prescindere dai diritti amministrativi. Swarmer è disponibile sia come eseguibile standalone sia come modulo PowerShell e può essere utilizzato in modi che riducono al minimo gli artefatti su disco.

Investigazione

Il rapporto descrive il flusso end-to-end di Swarmer: esporta l’hive HKCU attuale, modifica i dati esportati per includere la persistenza all’avvio e ricostruisce l’hive usando le routine di Offreg.dll come ORCreateHive e ORSetValue. L’hive ricostruito viene quindi posizionato come NTUSER.MAN all’interno del percorso del profilo utente in modo che venga applicato durante il login. L’esecuzione è controllata tramite opzioni da riga di comando che definiscono il valore di avvio target e la posizione del payload da eseguire. Gli autori hanno validato la tecnica su Windows 10 e Windows 11.

Mitigazione

Monitorare la creazione di NTUSER.MAN in contesti utente dove i profili obbligatori non sono previsti, e segnalare quando Offreg.dll viene caricato da processi insoliti. Proteggere e controllare l’integrità delle directory usate per i profili obbligatori e stabilire un baseline delle operazioni legittime del registro offline in modo che le deviazioni siano ben visibili. Aggiungere rilevazioni per modifiche sospette agli hive che hanno effetto al login piuttosto che in esecuzione. Dove possibile, limitare la capacità di un utente di creare o manipolare artefatti del profilo obbligatori.

Risposta

Se identificata, isolare l’endpoint, acquisire l’hive NTUSER.MAN per l’analisi, e enumerare tutte le voci di chiave Run iniettate. Rimuovere i valori di avvio non autorizzati e ripristinare un hive utente noto e corretto per eliminare la persistenza. Eseguire una revisione forense più ampia per confermare che non siano stati stabiliti payload secondari o percorsi di persistenza alternativi, e cercare nella flotta lo stesso schema di scrittura degli hive. Rafforzare i controlli di privilegio minimo per impedire agli utenti a basso privilegio di creare profili obbligatori.

Flusso dell’Attacco

Stiamo ancora aggiornando questa parte. Iscriviti per essere notificato

Notificami

Esecuzione della Simulazione

Prerequisito: Il Controllo Pre‑flight della Telemetria e del Baseline deve essere passato.

Razionale: Questa sezione descrive l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirare a generare esattamente la telemetria prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.

  • Narrazione e Comandi dell’Attacco:
    L’attaccante ha ottenuto un punto d’appoggio su un host compromesso e desidera stabilire la persistenza che sopravvive al login utente senza toccare gli hive del Registro standard (per evitare gli hook EDR). Usando lo strumento Swarmer l’attaccante:

    1. Determina la directory del profilo utente target (C:Usersvictim).
    2. Crea un file hive malevolo (NTUSER.MAN) contenente una chiave Run che avvia un payload back‑door al login.
    3. Scrive il file direttamente nel profilo della vittima usando I/O di file a livello basso (bypassando le chiamate di alto livello WinAPI).
    4. Chiama l’ API del Registro Offline ORCreateHive per caricare l’hive appena creato in memoria, registra la chiave Run, e infine chiama ORSaveHive per salvare le modifiche.

    Entrambe le azioni generano:

    • Sysmon EventID 11 – creazione file che termina con NTUSER.MAN.
    • Security EventID 4688 – un processo (swarmer.exe) la cui riga di comando contiene ORCreateHive (o un altro flag OR*).
  • Script di Test di Regressione:

    #--------------------------------------------------------------
    # Simulazione di Persistenza nel Registro in stile Swarmer (PowerShell)
    #--------------------------------------------------------------
    # 1. Definire il percorso del profilo della vittima
    $victimProfile = "$env:SystemDriveUsersvictim"
    $ntUserManPath = Join-Path $victimProfile "NTUSER.MAN"
    
    # 2. Creare un file hive minimo (segnaposto binario)
    #    In un attacco reale questo sarebbe un hive del registro creato.
    $hiveBytes = [byte[]] (0..255)               # dati fittizi
    [IO.File]::WriteAllBytes($ntUserManPath, $hiveBytes)
    
    # 3. Invocare l'API del Registro Offline tramite un eseguibile di supporto.
    #    Si presume che swarmer_helper.exe sia un binario compilato che usi
    #    le funzioni native del Registro Offline.
    $helper = "C:Toolsswarmer_helper.exe"
    $args = @(
        "ORCreateHive", "`"$ntUserManPath`""
        "ORSetValue", "HKLMSoftwareMicrosoftWindowsCurrentVersionRunmyBackdoor", "`"C:Malwarebackdoor.exe`""
        "ORSaveHive", "`"$ntUserManPath`""
    )
    & $helper $args
    #--------------------------------------------------------------
  • Comandi di Pulizia:

    # Rimuovere l'hive malevolo e scaricarlo se necessario
    Remove-Item -Path "$env:SystemDriveUsersvictimNTUSER.MAN" -Force
    # Se il supporto ha lasciato qualsiasi hive in memoria, scaricarlo forzatamente (esempio)
    & "$env:ProgramFilesWindows Kits10binx64reg.exe" unload "HKUTempHive"