Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
Nascondere una finestra di processo è uno dei trucchi più semplici e al contempo più efficaci nel repertorio di un attaccante. La tecnica Hidden Window (T1564.003) appartiene alla tattica Defense Evasion (TA0005) e consiste nel rendere invisibile all'utente la GUI di un'applicazione malevola — o del suo loader — affinché l'attività ostile proceda senza destare sospetti visivi.
Il meccanismo operativo cambia da piattaforma a piattaforma. Su Windows il metodo più diffuso è il parametro -WindowStyle Hidden di PowerShell, ma si estende a chiamate API come ShowWindow, CreateDesktop() per sessioni hVNC e persino a chiavi di registro che spostano la finestra fuori schermo. Su macOS il flag apple.awt.UIElement nei file plist impedisce all'icona di un'applicazione Java di comparire nel Dock. Su Linux l'approccio passa per la manipolazione delle sessioni X11/Wayland o l'uso di multiplexer terminali per mascherare shell interattive.
I numeri testimoniano la popolarità della tecnica: 16 gruppi APT documentati, 38 software che la implementano e 2 mitigazioni raccomandate. Si tratta di un pattern trasversale, adottato tanto da gruppi di spionaggio statale quanto da operatori ransomware e trojan bancari, segno che la semplicità di implementazione e l'efficacia nel ridurre la visibilità all'utente finale ne fanno un punto fermo nella kill chain di difesa dall'evasione.
La simulazione di finestre nascoste è fra le più accessibili da replicare in laboratorio, perché non richiede exploit né privilege escalation. L'obiettivo primario del red teamer è verificare se gli strumenti di detection del Blue Team rilevano l'occultamento della GUI, e quali varianti lo eludono.
Il punto di partenza su Windows è il classico parametro PowerShell. Esegui da un terminale standard:
powershell.exe -WindowStyle Hidden -Command "Start-Sleep -Seconds 120"
Questo comando lancia un processo PowerShell completamente invisibile al desktop per due minuti, tempo sufficiente a verificare la visibilità nei log Sysmon. L'abbreviazione -W Hidden è altrettanto funzionale e viene usata in the wild da diversi gruppi APT per ridurre la lunghezza della command line.
Per testare la variante .NET, più comune nei RAT moderni, crea uno script C# minimale che sfrutta ProcessStartInfo con la proprietà WindowStyle impostata a ProcessWindowStyle.Hidden. Puoi compilare in lab con il compilatore integrato di Windows:
csc.exe /out:hidden_test.exe hidden_test.cs
La tecnica basata su registro è meno nota ma altrettanto insidiosa. Consiste nel modificare la chiave WindowPosition sotto il percorso di registro della console PowerShell per impostare coordinate fuori schermo. In laboratorio puoi riprodurla con:
reg add "HKCU\Console%SystemRoot%_System32_WindowsPowerShell_v1.0_PowerShell.exe" /v WindowPosition /t REG_DWORD /d 0xFFFFFFFF /f
Dopo la modifica, ogni nuova istanza di PowerShell si aprirà in coordinate non visibili. È una persistence subtécnica: la finestra esiste, ma l'utente non la vedrà mai.
Per simulare lo scenario hVNC, l'approccio più sicuro in lab è usare la API CreateDesktop() di Windows. Tool come Cobalt Strike (a pagamento) offrono moduli hVNC nativi, ma per un test indipendente puoi scrivere un piccolo programma C che chiami CreateDesktopW, crei un desktop secondario e vi lanci un explorer.exe. I processi su quel desktop risulteranno invisibili al desktop principale.
Su macOS la simulazione passa per la modifica di un file plist. Crea un'app bundle di test e aggiungi il tag LSUIElement impostato a true nel file Info.plist: l'applicazione non comparirà nel Dock. Per le applicazioni Java legacy, il flag equivalente è apple.awt.UIElement.
Un ulteriore vettore documentato è l'uso di cmd.exe come processo padre abbinato a un LOLBin come DeviceCredentialDeployment.exe per nascondere la finestra. In lab, verifica se la catena parentale anomala viene rilevata dal tuo EDR.
Tool consigliati per l'automazione:
-WindowStyle HiddenScarica la guida gratuita e segui il percorso corretto fin dal primo passo