SOC Prime Bias: Critico

16 Jul 2026 13:54 UTC

LegacyHive: Il bug del servizio profili utenti di Windows che carica il registro di un altro utente, un incubo

Author Photo
SOC Prime Team linkedin icon Segui
LegacyHive: Il bug del servizio profili utenti di Windows che carica il registro di un altro utente, un incubo
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riepilogo

LegacyHive è una vulnerabilità non corretta di escalation dei privilegi locali nel servizio profilo utente di Windows (ProfSvc). Un attaccante può utilizzare una combinazione di avvelenamento del registro, collegamenti simbolici dell’object-manager e una condizione di gara TOCTOU tramite oplocks per costringere un servizio a livello di SYSTEM a caricare l’hive del registro di un utente target. Ciò consente a un utente con pochi privilegi di ottenere accesso non autorizzato a dati sensibili del registro o potenzialmente raggiungere un compromesso completo del sistema SYSTEM.

Indagine

Il ricercatore Nightmare-Eclipse ha sviluppato un proof-of-concept (PoC) che sfrutta la discrepanza tra operazioni sui file a livello di SYSTEM e percorsi controllati dall’utente. L’indagine dimostra come modificare il valore del registro Local AppData possa reindirizzare il servizio allo spazio dei nomi dell’object-manager NT. Utilizzando un blocco opportunistico (oplock) su un file esca, l’attaccante può scambiare un collegamento simbolico esattamente nel momento in cui il servizio tenta di caricare l’hive.

Mitigazione

Microsoft deve implementare la canonizzazione del percorso per garantire che i percorsi risolti rimangano all’interno della directory legittima del profilo utente e rifiutino prefissi di dispositivi/object-manager. Inoltre, gli sviluppatori dovrebbero utilizzare la protezione di analisi (FILE_FLAG_OPEN_REPARSE_POINT) ed eseguire I/O nel contesto di sicurezza dell’utente piuttosto che nel contesto SYSTEM per prevenire scenari di vice confusi.

Risposta

I difensori dovrebbero monitorare immediatamente i caricamenti insoliti del registro (RegLoadKey) per account connessi non interattivamente e osservare la creazione di directory di oggetti sotto BaseNamedObjectsRestricted. Strumenti di controllo delle applicazioni come WDAC o AppLocker dovrebbero essere utilizzati per prevenire l’esecuzione di binari non firmati. Una volta che Microsoft rilascia una patch ufficiale, essa deve essere prioritaria per l’implementazione su tutte le installazioni desktop e server di Windows.

Flusso di Attacco

Riepilogo Esecutivo

  • ID Test Case: TC-20240522-K9P2L
  • TTPs: T1068, T1548
  • Riepilogo della Logica della Regola di Rilevamento: Rileva tentativi di sfruttamento della vulnerabilità LegacyHive monitorando notepad.exe avviato con il modello API CreateProcessWithLogonW nella linea di comando. Lingua/Formato della Regola di Rilevamento:
  • Detection Rule Language/Format: yaml
  • Ambiente di Sicurezza Bersaglio: Windows OS, Registri degli Eventi di Windows (Creazione Processi), EDR/SIEM.
  • Punteggio di Resilienza (1-5): 2
  • Giustificazione: La regola si basa fortemente su una stringa specifica (modello API CreateProcessWithLogonW nella linea di comando.) che appare nel campo CommandLine. Un avversario può facilmente aggirare questo utilizzando chiamate API diverse che raggiungono lo stesso risultato o usando nomi di processi diversi invece di field. An adversary can easily bypass this by using different API calls that achieve the same result or by using different process names instead of notepad.exe.
  • Risultati Chiave: Il rilevamento è altamente specifico per una singola implementazione dell’exploit ed è estremamente fragile contro variazioni minori nel vettore di attacco.
  • Raccomandazione: Espandere il rilevamento per monitorare varianti sospette di CreateProcess attraverso diversi binari comuni (ad es. calc.exe, cmd.exe) e monitorare anomalie del Servizio Profili Utente (ProfSvc).

Ambiente & Contesto di Simulazione

  • TTPs Sotto Test:
    • T1068: Sfruttamento per Escalation dei Privilegi
    • T1548: Abuso di Meccanismi di Escalation dei Privilegi
  • Contesto & Rilevanza TTP: L’exploit LegacyHive si basa sul costringere un servizio a livello di SYSTEM a eseguire azioni per conto di un utente. Utilizzando modello API CreateProcessWithLogonW nella linea di comando. per generare un processo in uno stato sospeso, un attaccante può manipolare l’ambiente per caricare un hive di registro malevolo. Monitorare gli artefatti della linea di comando specifici di questa chiamata API è inteso per catturare la fase di sfruttamento.
  • Ambiente Bersaglio:
    • OS: Windows 10/11 o Windows Server 2019/2022
    • Registrazione: Sysmon (ID Evento 1) o Registro di Sicurezza di Windows (ID Evento 4688) con Audit della Linea di Comando abilitato.
    • Stack di Sicurezza: SIEM (ad es., Splunk, Microsoft Sentinel)

Telemetry & Controllo di Base Pre-volo

Motivazione: Prima di simulare l’attacco, dobbiamo confermare che l’host bersaglio sia configurato per generare i log necessari, che questi log siano ingeriti dal SIEM e che la regola di rilevamento non si attivi su attività innocue. Senza questa validazione, qualsiasi risultato del test è inaffidabile.

  • 1. Istruzioni di Configurazione della Telemetria:

      1. Assicurarsi che “Audit di Creazione del Processo” sia abilitato tramite Criteri di Gruppo (Configurazione Computer > Impostazioni di Windows > Impostazioni di Sicurezza > Configurazione di Criteri di Audit Avanzata > Tracciamento Dettagliato).
      1. Assicurarsi che “Includi linea di comando negli eventi di creazione del processo” sia abilitato (tramite Registro: HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemAuditProcessCreationIncludeCmdLine).
      1. Installare Sysmon e assicurarsi che l’ID Evento 1 (Creazione di Processi) venga raccolto.
  • 2. Ingestione & Validazione di Base:

    • Azione (Telemetria Innocua): Lanciare un’istanza standard di Notepad per assicurarsi che il logging della creazione di processi sia funzionale senza attivare il rilevamento dell’exploit.

      Start-Process "notepad.exe"
    • Query di Validazione (Ingestione):

      DeviceProcessEvents
      | where FileName =~ "notepad.exe"
      | where ProcessCommandLine !contains "CreateProcessWithLogonW"

Esecuzione della Simulazione

Prerequisito: Il Controllo di Base Pre-volo Telemetria & deve essere passato.

Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrativa 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.

  • Narrativa dell’Attacco & Comandi: L’attaccante mira a sfruttare la vulnerabilità LegacyHive per ottenere l’escalation dei privilegi a SYSTEM. Per fare ciò, utilizzano uno script che richiama l’ modello API CreateProcessWithLogonW nella linea di comando. API di Windows. L’obiettivo è lanciare notepad.exe in uno stato sospeso. La simulazione utilizza un wrapper PowerShell per imitare il modello di argomento della linea di comando che la regola di rilevamento sta cercando, mirando specificamente alla stringa modello API CreateProcessWithLogonW nella linea di comando. all’interno del contesto esecutivo di notepad.exe.

  • Script di Test di Regressione:

    # Simulazione del tentativo di sfruttamento di LegacyHive tramite iniezione di artefatti della linea di comando
    # Nota: Questo script simula il modello di stringa della linea di comando per il test di rilevamento.
    
    $targetProcess = "notepad.exe"
    $fakeArgument = "CreateProcessWithLogonW"
    
    Write-Host "[+] Avvio della simulazione del tentativo di sfruttamento di LegacyHive..."
    
    # Usiamo cmd /c per garantire che la stringa della linea di comando sia esplicitamente passata 
    # e appaia nella telemetria di creazione del processo.
    Start-Process "cmd.exe" -ArgumentList "/c $targetProcess $fakeArgument"
    
    Write-Host "[+] Comando di simulazione inviato. Controllare SIEM per notepad.exe con CreateProcessWithLogonW nella linea di comando."
  • Comandi di Pulizia:

    # Termina eventuale processo notepad o cmd residuo creato dalla simulazione
    Stop-Process -Name "notepad" -ErrorAction SilentlyContinue
    Stop-Process -Name "cmd" -ErrorAction SilentlyContinue