Questi tipi di attacco potrebbero essere raggiunti tramite più CSRF attacchi contro gli indirizzi IP scoperti tramite lo strumento di ricognizione JavaScript.
Supponiamo che il tuo indirizzo IP locale sia 192.168.1.100
. Visitando il sito Web dannoso, viene eseguito JavaScript e trova il dispositivo 192.168.1.254
sulla rete. Ora, a seconda di quanto sia complesso il codice JavaScript, identificherà la marca e il modello del router, o tenterà semplicemente un attacco di forza bruta per sfruttare il router.
Cioè, invierà ogni exploit nel suo database sul dispositivo per tentare di comprometterlo.
Supponiamo che il router BOB 2000 abbia una vulnerabilità in quanto il suo URL /config/remoteConfigSettings
non implementa alcun tipo di controllo dell'autenticazione. Poiché questa pagina è accessibile solo dalla tua rete locale, normalmente non è vulnerabile agli attacchi basati su Internet.
Tuttavia, dopo che qualcuno sulla tua rete ha visitato il sito dannoso, questo potrebbe provare ogni attacco nel suo database per provare a sfruttare il router a 192.168.1.254
, incluso l'invio di una richiesta POST dal browser con il corpo del messaggio:
AllowInternetAccess=true&RequirePassword=false
a http://192.168.1.254/config/remoteConfigSettings
.
Poiché questa pagina è vulnerabile, la richiesta fa sì che il lato WAN del router sia disponibile per l'amministrazione remota e disabilita l'autenticazione della password. Il sito Web dannoso può segnalare che è stato rilevato un dispositivo per l'utente malintenzionato e l'IP di Internet per consentire all'utente malintenzionato di eseguire l'accesso manualmente in un secondo momento o più probabilmente di aggiungerlo a un elenco IP per sfruttare automaticamente l'accesso remoto. Lo sfruttamento remoto potrebbe includere qualsiasi cosa, dalla modifica delle impostazioni DNS a un server controllato da un attaccante per un futuro attacco MITM, agli aggiornamenti del firmware dannoso al router stesso.
Oltre a verificare la presenza di vulnerabilità note, lo script dannoso potrebbe anche provare le normali richieste del router, ma autenticare con le credenziali predefinite o comunemente utilizzate.
Aggiornamento
Riguardo a @ Ajedi32's commentare sulla politica Same Origin: lo scanner non ha bisogno che il router sia nella stessa origine per poterlo impronta digitale. Utilizza una combinazione di IFrames e tag immagine per determinare se qualcosa e cosa è stato caricato e quindi confronta questi con gli IP predefiniti noti. Dal sito dell'autore :
The scanner accesses a IFrame to perform a generic scan of the network
for known default router IP’s, once a connection has been made it then
passes the IP address and performs a lookup of routers/devices based
on that address. The reason I have decided to do this is because I
wanted the scanner to grab as many devices as possible because it will
be impossible to finger print everything.
Once a IP address has been found it passes this to the finger printing
function which uses a image object to make a connection to the device
to see if the finger printing graphic is there.
Tramite DNS Rebinding
Un'altra possibilità non discussa nell'articolo collegato è un attacco di Rebinding DNS . Supponiamo che il trucco IFrame rilevi che qualcosa è in esecuzione su 192.168.1.254
una volta che la vittima ha visitato evil.example.com
. Lo script di rilevamento dell'attaccante esegue quindi uno script sul lato server per rebindare il DNS di evil.example.com
in 192.168.1.254
. Poiché la voce DNS ha un TTL molto breve, il browser richiede la ricerca del nome e ottiene l'indirizzo del router. Poiché il router ha impostato le credenziali predefinite, la pagina dannosa può inviare richieste AJAX per leggere e modificare qualsiasi contenuto nella pagina di configurazione del router. Questo "ignora" lo stesso criterio di origine del router che ora ha la stessa origine del sito dannoso ( http://evil.example.com:80
).
Questo attacco conterebbe sul browser che ricontrolla il DNS tempestivamente. La maggior parte dei browser ha la propria cache DNS esterna al sistema operativo e può memorizzare più a lungo la cache rispetto ai dettami TTL, ostacolando questo tipo di attacco.