Finestre di Login Fasulle: GUI Input Capture (T1056.002)

Ogni utente, almeno una volta, ha inserito le proprie credenziali in una finestra di dialogo del sistema operativo senza pensarci troppo. Il prompt che chiede la password per autorizzare un aggiornamento, per accedere alle preferenze di sistema o per confermare un'azione privilegiata è un gesto talmente abituale da risultare invisibile. Ed è esattamente su questa invisibilità che fa leva la tecnica GUI Input Capture (T1056.002).

L'attaccante costruisce finestre di dialogo grafiche che replicano fedelmente i prompt nativi del sistema operativo — su Windows, macOS e Linux — inducendo la vittima a digitare username e password in un modulo controllato dall'avversario. Il meccanismo copre due tattiche distinte: Collection (TA0009), perché i dati inseriti vengono raccolti e archiviati, e Credential Access (TA0006), perché l'obiettivo finale è ottenere credenziali valide per muoversi lateralmente o elevare i privilegi.

Il panorama è ampio: 11 software documentati implementano questa tecnica, 2 gruppi APT la impiegano in campagne reali e una sola mitigazione è formalmente riconosciuta, il che evidenzia quanto il contrasto dipenda dalla consapevolezza dell'utente e dalla capacità di detection comportamentale. Dai banker trojan sudamericani alle operazioni di spionaggio corporativo, la GUI Input Capture rimane una delle tecniche più efficaci proprio perché sfrutta l'anello più debole: la fiducia che l'utente ripone nell'interfaccia del proprio sistema.


La simulazione di questa tecnica in laboratorio è sorprendentemente semplice, e questo è parte del problema. Ogni piattaforma offre strumenti nativi per generare finestre di dialogo che catturano input, senza bisogno di compilare codice o scaricare framework esotici.

Windows — PowerShell CredentialRequest

Il metodo più diretto sfrutta la classe CredentialUI tramite PowerShell. Il cmdlet nativo genera un prompt identico alle finestre di autenticazione di Windows:

Get-Credential -Message "Sessione scaduta. Reinserire le credenziali aziendali."

Il risultato è un oggetto PSCredential dal quale estrarre la password in chiaro è banale:

$cred = Get-Credential; $cred.GetNetworkCredential().Password

Per un approccio più realistico che simuli un prompt UAC, il framework Invoke-CredentialPhisher di Matt Nelson (open source) genera finestre di dialogo con l'aspetto grafico del prompt di elevazione privilegi di Windows. In alternativa, il modulo credphisher.py di SILENTTRINITY (open source) automatizza lo stesso concetto all'interno di un'operazione C2 strutturata.

macOS — AppleScript

Su macOS, il vettore più comune è AppleScript. Un singolo comando produce una finestra di dialogo indistinguibile dai prompt nativi di sistema:

osascript -e 'display dialog "macOS needs to access System Settings" default answer "" with hidden answer'

Il parametro with hidden answer maschera i caratteri digitati, esattamente come farebbe un prompt di sistema legittimo. Cuckoo Stealer in ambiente reale utilizza proprio questa logica per presentare alla vittima una finestra "macOS needs to access System Settings". Per validare l'artefatto, Swift Playgrounds o un semplice script Objective-C che invoca NSAlert raggiungono lo stesso obiettivo.

Linux — Zenity e Kdialog

Su Linux, zenity (open source) e kdialog (open source) sono utility grafiche pre-installate su molte distribuzioni desktop:

zenity --password --title="Autenticazione richiesta" --text="Inserire la password per continuare"

kdialog --password "Sessione sudo scaduta. Reinserire la password:"

L'output va a stdout ed è immediatamente catturabile da uno shell script. In un red team engagement, la catena efficace consiste nell'accoppiare il prompt a un check di attività utente — ad esempio monitorando le finestre attive con xdotool getactivewindow getwindowname (open source) — per far apparire la finestra di dialogo nel momento in cui l'utente interagisce con un browser sul portale aziendale, massimizzando la verosimiglianza.

Per tutte le piattaforme, il consiglio è documentare nel report non solo la riuscita della cattura, ma la latenza tra la presentazione del prompt e l'inserimento delle credenziali: un tempo molto breve indica quanto sia automatica e non critica la risposta dell'utente.


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

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