Enumerazione Finestre Applicative: Application Window Discovery (T1010)

La tecnica T1010 - Application Window Discovery rientra nella tattica TA0007 (Discovery) del framework MITRE ATT&CK e descrive il comportamento con cui un attore ostile enumera le finestre applicative aperte su un sistema compromesso. L'obiettivo è duplice: ricostruire il contesto d'uso della macchina — quali applicazioni sta utilizzando l'utente in un dato momento — e identificare la presenza di strumenti di sicurezza da eludere, riconducendosi così anche alla logica di Security Software Discovery.

Si tratta di una fase post-compromissione tipicamente silente, che sfrutta funzioni native del sistema operativo come le API user32.dll su Windows (EnumWindows, GetForegroundWindow, GetWindowText, FindWindow), utility X11 su Linux o API Cocoa/AppleScript su macOS. Proprio perché basata su chiamate legittime, la tecnica genera pochissimo rumore ed è spesso integrata in moduli keylogger per associare il testo digitato all'applicazione di destinazione.

I dati MITRE censiscono 3 gruppi APT e 32 famiglie di malware che implementano questa capacità, tra cui Lazarus Group, HEXANE e Volt Typhoon, insieme a strumenti come PoisonIvy, ROKRAT, QakBot, DarkGate e TONESHELL. L'ampia diffusione e la trasversalità geografica confermano che l'enumerazione delle finestre è un mattone quasi universale nei toolkit offensivi, sia in campagne di cybercrime finanziario sia in operazioni state-sponsored orientate allo spionaggio.

Durante un ingaggio red team, l'enumerazione delle finestre è utile per due obiettivi: profilare l'utente compromesso (individuare browser, client di posta, wallet crypto, console amministrative aperte) e identificare EDR o AV in esecuzione tramite i titoli delle loro finestre di gestione.

Su Windows, l'approccio più basilare passa da PowerShell, che espone la proprietà MainWindowTitle dei processi:

Get-Process | Where-Object {$_.MainWindowTitle} | Select-Object ProcessName, MainWindowTitle

Per un livello più realistico rispetto ai payload malware osservati, si può invocare direttamente user32.dll via P/Invoke in un runner C# o in PowerShell, replicando la logica di ROKRAT e NightClub che usano GetForegroundWindow seguito da GetWindowText per catturare il titolo della finestra attiva. FunnyDream utilizza invece EnumWindows per iterare tutte le top-level window, pattern facilmente riproducibile in un modulo Cobalt Strike (a pagamento) o Sliver (open source).

Framework di post-exploitation come SILENTTRINITY (open source) integrano nativamente moduli tipo GetActiveWindowTitle, utili per keylogger context-aware. Meterpreter (open source, incluso in Metasploit) espone il comando enumdesktops e keyscan_start con enumerazione delle finestre associate. Per operazioni più chirurgiche, NirSoft WinLister (gratuito) restituisce la lista completa delle finestre in formato CSV/HTML, utile in scenari hands-on-keyboard.

Su Linux, in presenza di sessione grafica, le utility X11 sono lo standard: wmctrl -l (open source) elenca le finestre gestite dal window manager, mentre xdotool search --name "."* (open source) consente ricerche pattern-based sui titoli. In ambienti Wayland la superficie è più ridotta e richiede accesso al compositor.

Su macOS, l'equivalente è ottenibile via AppleScript:

osascript -e 'tell application "System Events" to get name of every window of every process'

oppure invocando CGWindowListCopyWindowInfo da un binario Objective-C/Swift, tecnica usata da impianti macOS avanzati.

In un percorso di attacco realistico, l'enumerazione finestre si concatena con Screen Capture (T1113) — come fanno Catchamas e Attor, che decidono quando screenshottare in base al titolo — e con Keylogging (T1056.001) per contestualizzare le sequenze catturate. La chiave per un red team è mantenere il rate delle chiamate API basso e distribuirle nel tempo per non attivare regole basate su enumerazione rapida successiva.

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

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.