NAT slipstreaming, un attacco bypass dà accesso a qualsiasi servizio TCP / UDP

Samy Kamkar (un famoso ricercatore di sicurezza noto per aver creato diversi dispositivi di attacco sofisticati, come un keylogger in un caricabatterie USB per cellulari) ha introdotto una nuova tecnica di attacco chiamata "NAT slipstreaming".

L'attacco consente, all'apertura di una pagina web in un browser, di stabilire una connessione dal server dell'attaccante a qualsiasi porta UDP o TCP sul sistema dell'utente, situata dietro un traduttore di indirizzi. Il toolkit per l'attacco è pubblicato su GitHub.

Il metodo si basa sull'inganno del meccanismo di tracciamento delle connessioni ALG (Application Level Gateway) nei traduttori di indirizzi o nei firewall, utilizzato per organizzare l'inoltro NAT di protocolli che utilizzano più porte di rete (una per i dati e una per il controllo), come SIP, H323, IRC DCC e FTP.

L'attacco è applicabile agli utenti che si connettono alla rete utilizzando indirizzi interni nella gamma intranet (192.168.xx, 10.xxx) e consente l'invio di qualsiasi dato a qualsiasi porta (senza intestazioni HTTP).

Per portare a termine un attacco, è sufficiente che la vittima esegua il codice JavaScript predisposto dall'attaccante , ad esempio aprendo una pagina sul sito web dell'attaccante o visualizzando una pubblicità dannosa su un sito web legittimo.

Nella prima fase, l'attaccante ottiene informazioni sull'indirizzo interno dell'utente, che può essere determinato tramite WebRTC o, se WebRTC è disabilitato, tramite attacchi di forza bruta con tempi di risposta misurati quando si richiede un'immagine nascosta (per gli host esistenti, un tentativo di richiesta di un'immagine è più veloce rispetto a quelli inesistenti a causa del tempo di attesa prima di restituire una risposta TCP RST).

Nella seconda fase, il codice JavaScript eseguito nel browser della vittima genera una richiesta HTTP POST di grandi dimensioni (che non rientra in un singolo pacchetto) al server dell'attaccante utilizzando un numero di porta di rete non standard per avviare la modifica dei parametri di frammentazione TCP e della dimensione MTU nello stack TCP della vittima.

In risposta, il server dell'attaccante restituisce un pacchetto TCP con l' opzione MSS (Maximum Segment Size), che determina la dimensione massima del pacchetto ricevuto. Nel caso di UDP, la manipolazione è simile, ma si basa sull'invio di una richiesta WebRTC TURN di grandi dimensioni per innescare la frammentazione a livello IP.

«NAT Slipstreaming sfrutta il browser dell'utente in combinazione con il meccanismo di tracciamento della connessione Application Level Gateway (ALG) integrato in NAT, router e firewall concatenando l'estrazione IP interna tramite un attacco temporale o WebRTC, rilevamento della frammentazione di IP e MTU remoti automatizzati, massaggiamento delle dimensioni del pacchetto TCP, uso improprio dell'autenticazione TURN, controllo preciso dei limiti dei pacchetti e confusione del protocollo dovuta all'abuso del browser ", ha affermato Kamkar in un'analisi.

L'idea principale è che, conoscendo i parametri di frammentazione, è possibile inviare una richiesta HTTP di grandi dimensioni, la cui parte finale verrà inclusa in un secondo pacchetto . Allo stesso tempo, la parte finale del secondo pacchetto in entrata viene selezionata in modo da escludere le intestazioni HTTP e viene troncata ai dati che corrispondono interamente a un altro protocollo per il quale è supportato l'attraversamento NAT.

Nella terza fase, utilizzando la manipolazione di cui sopra, il codice JavaScript genera e invia una richiesta HTTP appositamente selezionata (o TURN per UDP) alla porta TCP 5060 del server dell'aggressore, che, dopo la frammentazione, verrà suddivisa in due pacchetti: a pacchetto con intestazioni HTTP e parte dei dati e un pacchetto SIP valido con l'IP interno della vittima.

Il sistema di tracciamento delle connessioni nello stack di rete considererà questo pacchetto come l'inizio di una sessione SIP e consentirà l'inoltro del pacchetto per qualsiasi porta selezionata dall'attaccante, presupponendo che tale porta venga utilizzata per la trasmissione dei dati.

L'attacco può essere effettuato indipendentemente dal browser utilizzato . Per risolvere il problema, gli sviluppatori di Mozilla hanno suggerito di bloccare la possibilità di inviare richieste HTTP alle porte di rete 5060 e 5061, associate al protocollo SIP.

Anche gli sviluppatori dei motori Chromium, Blink e WebKit prevedono di implementare una misura di protezione simile.

Fonte: https://samy.pl


Aggiungi come fonte preferita in Google