Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
La tecnica Office Test sfrutta una chiave di registro pensata originariamente per il debug interno di Microsoft Office, trasformandola in un meccanismo di persistenza silenzioso e molto efficace. L'attaccante crea la chiave HKCU\Software\Microsoft\Office test\Special\Perf (o il corrispettivo in HKLM) e vi inserisce il percorso di una DLL arbitraria. Da quel momento, ogni volta che un'applicazione Office viene avviata — Word, Excel, PowerPoint — la DLL viene caricata automaticamente nel processo, garantendo esecuzione di codice senza macro, senza exploit e senza avvisi per l'utente.
La tecnica si inserisce nella fase di Persistence (TA0003), ovvero l'insieme di strategie con cui un avversario mantiene l'accesso a un sistema anche dopo riavvii, aggiornamenti o rotazione delle credenziali. La particolarità di questo metodo risiede nella sua invisibilità: la chiave di registro non esiste di default in nessuna installazione Office, quindi la sua semplice presenza è già un indicatore anomalo. Tuttavia, poiché non coinvolge macro o VBA, aggira completamente i banner di avviso che gli utenti sono abituati a vedere.
I dati del framework attestano 1 gruppo APT documentato nell'uso di questa tecnica, nessun software specifico catalogato e 2 mitigazioni applicabili. Il rapporto segnale/rumore per la detection è potenzialmente molto alto, perché la chiave è così specifica da rendere quasi nullo il rischio di falsi positivi in ambienti enterprise standard.
Riprodurre questa tecnica in laboratorio è sorprendentemente semplice. L'intera catena d'attacco si riduce a due operazioni: compilare una DLL di test e creare la chiave di registro. Nessun privilege escalation richiesto se si opera nel contesto HKCU.
Inizia preparando una DLL minima con un payload benigno. In un ambiente lab puoi usare Visual Studio (freemium) o MinGW (open source) per compilare una DLL che scriva un log su disco al caricamento. La funzione chiave è DllMain con trigger su DLL_PROCESS_ATTACH: quando Office carica la libreria, il codice nel blocco viene eseguito immediatamente.
Per creare la chiave di registro da riga di comando PowerShell:
New-Item -Path "HKCU:\Software\Microsoft\Office test\Special\Perf" -Force
Poi imposta il valore predefinito puntando alla DLL:
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Office test\Special\Perf" -Name "(Default)" -Value "C:\TestLab\payload.dll"
Da cmd classico, l'equivalente è:
reg add "HKCU\Software\Microsoft\Office test\Special\Perf" /ve /t REG_SZ /d "C:\TestLab\payload.dll" /f
Per la variante globale (richiede privilegi amministrativi), sostituisci HKCU con HKLM. Questa distinzione è fondamentale nel red teaming: la variante HKCU persiste per il singolo utente compromesso, la variante HKLM colpisce tutti gli utenti della macchina.
Apri Word o Excel e verifica che la DLL venga caricata. Con Process Monitor di Sysinternals (gratuito) puoi filtrare per RegQueryValue sull'intero path e osservare il momento esatto in cui Office legge la chiave. Aggiungi un filtro su CreateFile per confermare il caricamento della DLL.
Per il test in contesti più strutturati, Atomic Red Team (open source) fornisce test atomici per questa tecnica che automatizzano creazione e cleanup della chiave. Lo strumento si integra con Invoke-AtomicRedTeam (open source) in PowerShell per esecuzione ripetibile.
Una variante avanzata prevede di posizionare la DLL su una share di rete UNC, simulando un scenario in cui il payload risiede fuori dal filesystem locale — una scelta che complica la forensic e che è coerente con i pattern operativi osservati in campagne reali. Al termine del test, rimuovi sempre la chiave:
Remove-Item -Path "HKCU:\Software\Microsoft\Office test\Special\Perf" -Recurse -Force
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo