MITM sarebbe in grado di manipolare l'opzione X-Frame

1

Mi chiedevo se il seguente scenario fosse realisticamente realizzabile.

Abbiamo una rete con un computer che viene utilizzata da Bob. È una persona attenta alla sicurezza e utilizza un gestore di password. Il suo computer è connesso a Internet tramite un router che Bob ha ricevuto dal proprio ISP. L'ISP e il produttore del router non hanno implementato aggiornamenti per le vulnerabilità critiche del suo router.
Poi c'è Trudy che vuole davvero conoscere le password di Bobs. Lei ottiene pieno accesso al suo router attraverso un exploit. Ci sono un paio di siti web a cui è interessata, quindi manipola le voci DNS per puntare a un server web sotto il suo controllo. Poiché Trudy ha molto tempo, si presume che la cache DNS del computer di Bob verrà eventualmente aggiornata per contenere le voci manipolate.

Bob si connette a un sito web a cui Trudy è interessato. Pensa di stabilire una connessione con https://www.safewebsite.com , ma in realtà si connette al server web di Trudy. Il server Web esegue il downgrade della connessione a HTTP semplice, solo per stabilire la connessione. Quindi il server web esegue un reindirizzamento all'URL effettivo di se stesso, ad es. https://safewebsite.evil.com per cui Trudy ha un certificato SSL valido (semplice). Supponendo che Bob non guardi troppo da vicino non vede la differenza nella barra degli indirizzi.

In alternativa, Trudy induce Bob a visitare il suo server web in modo da non attivare un'eccezione di certificato non valida.

Quello che Trudy deve fare, per estrarre la password di Bobs, è incorporare il sito web valido che Bob ha voluto visitare. Trudy ha anche meno lavoro in quanto non vuole codificare un sito Web di phishing, ma vuole ingannare il gestore di password di Bob. Quando Bob visitava il sito Web malevolo di Trudy, il gestore password immette le sue credenziali nel sito Web incorporato, poiché ritiene che questa sia una connessione valida. Quindi uno script del sito Web di Trudy cattura il contenuto del campo della password e il nome utente, inviando entrambi al server web.

Ora Trudy ha una cosa con cui sta lottando, molti siti web hanno l'opzione x-frame impostata per negare. Questo sventa il tentativo di Trudy in molti casi. Ha l'idea di lasciare che il Router annusi i pacchetti contenenti l'opzione x-frame. Sarebbe quindi modificato o rimosso. Quindi, se Bob visita il sito Web dannoso di Trudy, richiede il sito Web reale incorporato e il router esegue un MITM attivo. Ciò significa che il router si connette a https://www.safewebsite.com e solo a mani tocca la versione http. Bob vedrebbe ancora il https://safewebsite.evil.com , senza indicare una modifica visiva rispetto alla versione precedente dell'attacco. La domanda è se il router sarebbe in grado di rimuovere o modificare l'opzione x-frame in un modo che non influisce sull'esperienza di navigazione di Bob.

Speriamo che l'idea sia chiara. Se noti qualcosa di non realistico, lascia un commento. Forse hai un'idea ancora più semplice di come ottenere questo.

Questo è uno scenario di attacco contro uno specifico gestore di password (che non verrà nominato qui) che vorrei usare in una presentazione per un corso universitario, ma solo se è plausibile.

Aggiorna
Anche se lo sapevo e lo avevo pensato diverse volte, l'idea scritta qui sopra ha un difetto cruciale, www.safewebsite.com dovrebbe essere caricato come https altrimenti il gestore di password non riempirebbe i dati. Lavorerò sullo scenario e pubblicherò una versione aggiornata.

Aggiornamento 2
Sembra che il gestore di password abbia un problema di sicurezza che riempie le credenziali negli iframe. Lo scenario è però imperfetto e le risposte fornite sono corrette per la domanda originale. Se il nuovo scenario funziona, dovrò prima contattare gli sviluppatori e in seguito rilasciare ulteriori informazioni sul problema.

    
posta John 06.11.2015 - 20:31
fonte

3 risposte

3

Su HTTP un MITM può manipolare qualsiasi intestazione di richiesta.

Oltre HTTPS un MITM NON sarebbe in grado di farlo senza avere un certificato valido o generare un avviso di certificato nel browser di Bob.

www.safewebsite.com potrebbe mitigare alcune parti di questo attacco usando HSTS che indicherebbero al browser di Bob di visitare solo su SSL dopo la connessione iniziale. Il sito potrebbe anche rifiutare le richieste POST su HTTP (ma ciò non impedirebbe al browser di Bob di inviarle).

    
risposta data 06.11.2015 - 20:37
fonte
1

L'attacco funziona, a condizione che 3 siano vere:

1: Il gestore password non controlla https / http nella pagina del modulo di accesso. (o che il modulo è in realtà un modulo HTTP POSTATO su una connessione HTTPS)

2: il gestore password non utilizza l'URL del frame superiore (URL visibile) come URL di autenticazione / attivazione.

3: Il gestore della password non invia direttamente i dettagli, ma li riempie invece. (Alcuni gestori di password eseguono POST una "copia" del modulo direttamente invece di riempire i dettagli sullo schermo, anche se sembra visivamente così - alcuni gestori di password lo indicano con un'icona a forma di lucchetto a destra del campo nome utente / password Gli altri campi, come captcha o token CSRF, vengono inviati al gestore password per includere nel POST - questa è una funzione di sicurezza per prevenire i keylogger o - come hai fornito un esempio di attacco - frame grabber che catturano i dettagli dai frame)

Tuttavia, l'attacco di downgrade di cui parli naturalmente innescherebbe un avviso HTTPS. L'unico modo per eseguire il downgrade dell'attacco potrebbe essere se il client sta inizialmente visitando una risorsa HTTP, è possibile rimuovere HTTPS da qualsiasi link o modulo. Potresti sperare che l'utente faccia clic su qualsiasi avviso HTTPS o potresti bloccare le connessioni HTTPS al sito di sicurezza in modo che l'utente possa provare a "HTTP" e vedere se questo risolve il problema.

    
risposta data 06.11.2015 - 21:31
fonte
0

Dubito che l'attacco sia fattibile, non a causa dello stripping dell'X-Frame-Option, ma a causa di quanto segue:

When Bob would visit Trudy's malicious website the password manager enters his credentials into the embedded website, because he believes that this is a valid connection. Then a script from Trudy's website grabs the content of the password field and username, sending both to the webserver.

Per "incorporare" presumo tu voglia dire metterlo un <iframe> ? Quindi, in che modo la sceneggiatura del sito Web di Trudy cattura il contenuto del campo della password? La politica della stessa origine proibirebbe allo script di leggere il contenuto di <iframe> , incluso il campo della password compilato.

    
risposta data 15.04.2017 - 13:09
fonte

Leggi altre domande sui tag