Automazione Malevola: AutoHotKey & AutoIT (T1059.010)
AutoIT e AutoHotKey (AHK) sono due linguaggi di scripting nati per automatizzare interazioni con l'interfaccia grafica di Windows: simulazione di click, invio di sequenze di tasti, apertura di programmi, manipolazione di finestre. La loro legittimità nel mondo IT, unita alla possibilità di compilare gli script (.ahk, .au3) in eseguibili autonomi (.exe), li ha trasformati in vettori estremamente convenienti per l'esecuzione di codice ostile.
La tecnica T1059.010 ricade nella tattica TA0002 (Execution) del framework MITRE ATT&CK, la fase in cui l'attaccante ottiene l'esecuzione di codice controllato sul sistema vittima. Nella kill chain si colloca tipicamente dopo l'Initial Access, spesso a valle di una campagna di phishing che veicola documenti Office con macro o link a payload compilati.
L'impatto è significativo: gli script AHK/AutoIT vengono usati come loader modulari per keylogger, stealer di credenziali e RAT, sfruttando il fatto che gli interpreti sono spesso firmati digitalmente e riconosciuti come benigni dalle soluzioni di sicurezza. I dati MITRE censiscono un gruppo APT (APT39) e cinque famiglie malware che adottano questa tecnica, tra cui stealer commerciali molto diffusi come Lumma Stealer, DarkGate e XLoader, oltre a Melcoz e OutSteel. La disponibilità di una sola mitigazione specifica (M1038 - Execution Prevention) evidenzia la difficoltà nel bloccare interpreti dual-use senza impattare l'operatività aziendale.
In fase di simulazione red team, la catena tipica parte da un dropper AutoIT compilato. L'ambiente di sviluppo ufficiale è scaricabile dal sito autoitscript.com (freemium per uso commerciale, gratuito per uso personale), mentre AutoHotkey v1/v2 è distribuito come progetto open source dal sito ufficiale autohotkey.com.
Uno script AutoIT minimale che scarica ed esegue un payload in memoria può essere strutturato con la funzione InetGet() per il download e ShellExecute() per l'esecuzione, salvato come loader.au3 e compilato con il tool ufficiale Aut2Exe (incluso nella suite AutoIT, open source per la parte di compilazione base). Il comando di compilazione da riga di comando è:
Aut2exe.exe /in loader.au3 /out loader.exe /icon custom.ico
Per AutoHotKey l'equivalente è Ahk2Exe (open source, incluso nella distribuzione AHK), che produce un eseguibile con l'interprete embedded. Questo è il pattern osservato in DarkGate, che rilascia test.au3 in una directory nascosta e lo esegue tramite AutoIt3.exe.
Una catena d'attacco realistica per lab red team prevede tre stadi. Nel primo, un documento Office con macro VBA (generato con MacroPack Community, open source) scrive lo script .au3 in %APPDATA% e invoca l'interprete legittimo. Nel secondo stadio, lo script AutoIT decifra un blob binario embedded (tecnica usata da XLoader e Lumma Stealer) e lo inietta in un processo host tramite chiamate a DllCall() verso VirtualAlloc, WriteProcessMemory e CreateRemoteThread. Nel terzo stadio, il payload finale (un keylogger o stealer) opera sotto il PID dell'interprete AutoIT firmato.
Per testare la resilienza dei controlli, l'operatore può sfruttare la funzionalità di UAC bypass tramite AutoIT invocando programmi con il flag RunAs o utilizzando la primitiva WinActivate() per interagire con prompt di sicurezza. Va notato che l'eseguibile compilato mantiene una signature statica facilmente identificabile: il tool Detect It Easy (DiE) (open source) riconosce immediatamente i binari compilati con Aut2Exe grazie a stringhe caratteristiche come AU3!EA06.
Per estrarre e analizzare script compilati, il decompiler di riferimento è myAut2Exe (open source), che ricostruisce il sorgente .au3 originale a partire dall'eseguibile. In laboratorio, l'esecuzione va isolata in una VM con snapshot e monitoraggio tramite Process Monitor (gratuito, Sysinternals) per tracciare l'intera catena di IOC comportamentali.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo