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ù
Il protocollo VNC — Virtual Network Computing — è uno strumento di condivisione dello schermo basato sul protocollo RFB (Remote Framebuffer) che permette di controllare un desktop remoto trasmettendo input di tastiera e mouse attraverso la rete. A differenza di RDP, che condivide risorse di sessione, VNC opera come un vero e proprio mirror del display: chi si connette vede e interagisce con la stessa sessione grafica dell'utente locale.
Questa tecnica si colloca nella fase di Lateral Movement (TA0008), dove l'avversario, ottenuto un punto d'appoggio iniziale, sfrutta VNC per spostarsi tra i sistemi interni dell'organizzazione. Il protocollo utilizza per default le porte TCP 5900 (server), 5800 (accesso browser) e 5500 (viewer in ascolto), ma può essere riconfigurato su porte arbitrarie per eludere il filtraggio.
L'abuso di VNC è particolarmente insidioso perché consente all'attaccante di operare come l'utente legittimo: aprire documenti, scaricare file, eseguire comandi, il tutto ereditando i permessi della sessione attiva. Le implementazioni VNC sono inoltre storicamente vulnerabili ad attacchi di brute force sulle credenziali e a exploit legati alla gestione della memoria. I dati associati a questa tecnica censiscono 4 gruppi APT, 7 famiglie malware, 0 campagne e 4 mitigazioni, a testimonianza di un utilizzo trasversale sia da parte di attori state-sponsored che da operatori di crimeware.
La simulazione di un lateral movement via VNC in laboratorio si articola in tre fasi: scoperta del servizio, accesso (legittimo o forzato) e post-exploitation.
Fase 1 — Enumerazione. Il primo passo è individuare server VNC esposti nella rete interna. Nmap (open source) offre script NSE dedicati:
nmap -sV -p 5900-5910 --script vnc-info,vnc-brute 192.168.1.0/24
Lo script vnc-info estrae la versione del protocollo RFB e il metodo di autenticazione, mentre vnc-brute tenta un attacco dizionario contro il servizio. Per reti estese, Masscan (open source) è più veloce nella scansione iniziale:
masscan 10.0.0.0/8 -p5900 --rate 10000 -oL vnc_hosts.txt
Fase 2 — Accesso e brute force. Se il servizio richiede solo password VNC (senza autenticazione di sistema), Hydra (open source) è lo strumento d'elezione:
hydra -P /usr/share/wordlists/rockyou.txt vnc://192.168.1.50 -t 4 -V
Il flag -t 4 limita i thread paralleli per evitare lockout. In alternativa, Metasploit Framework (open source) fornisce il modulo auxiliary/scanner/vnc/vnc_login che gestisce automaticamente le diverse versioni del protocollo RFB e supporta sia credenziali VNC-only che combinazioni utente/password.
Fase 3 — Interazione e pivoting. Una volta ottenute le credenziali, la connessione si stabilisce con qualunque client VNC. In ambiente red team, si preferisce operare da linea di comando per ridurre la superficie visibile. Su Linux, il client vncviewer del pacchetto TigerVNC (open source) permette connessioni rapide:
vncviewer 192.168.1.50::5900
Per simulare lo scenario di un malware che installa un server VNC silenzioso — come fanno FIN7 e Fox Kitten con TightVNC — si può deployare TightVNC (open source) in modalità silenziosa tramite il suo installer MSI con parametri msiexec, configurandolo per accettare connessioni solo dall'IP dell'attaccante.
Un passaggio spesso trascurato è la verifica della cifratura: molte implementazioni VNC trasmettono il traffico in chiaro. Per simulare un attacco man-in-the-middle, Wireshark (open source) cattura e decodifica il traffico RFB sulla porta 5900, rendendo visibili screenshot e sequenze di tasti.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo