Cita de: warcry. en 18 Agosto 2016, 09:02 AM
si no te he entedido mal, lo que pretendes es hacer un dns spoofing y decirle al navegador que https://goole.es que en vez de ser la 216.58.208.131 va a ser una ip de tu red local, o una ip publica de un dominio tuyo.
hasta ahi bien,
y como solucionas que los navegadores tienen una lista interna de sitios web prefijados que solo trabajan con HTTPS, todos los principales navegadores actuales trabajan con HSTS, Chrome, IE11, Firefox, Microsoft Edge, etc.
No, no es así como funciona el bypass a HSTS. Como dices los navegadores tienen para ciertos dominios forzada la carga con HTTPS, de hecho busqué esa lista de dominios que usan HSTS que podéis encontrarla aquí: https://cs.chromium.org/chromium/src/net/http/transport_security_state_static.json además de otros enlaces.
Para bypassear la carga de estos dominios en HTTPS es fácil, basta con utilizar el protocolo DNS cuando se resuelve el dominio de esa web que usa HTTPS, y devolvemos un DNS response con un nombre de alias o canonico (CNAME), así pues cuando pregunte por DNS cual es la IP de google.com, le devolveremos la IP de google pero modificaremos esa DNS response metiendola CNAME diciendo que no es google.com sino gooogle.com, ese nuevo dominio será el que aparezca al usuario cuando trate de cargar google.com, y al no estar este dominio en la lista HSTS queda bypasseado eso si la página será igual que google, la única desventaja será que el usuario en la barra de tareas no verá google.com sino wwww.google.com, solo hay que echarle imaginación y poner el dominio que menos llame la atención, también hayque tener en cuenta que solo será para los HSTS los demás será el dominio original el que se utilice. Este es el método que tengo pensado utilizar aunque desconozco si ha sido mejorado.
Respecto a lo de engelx es lo que imaginaba, supongo que al llamar a "GetNetworkParams" si no tiene servidor dns fijado a una IP, supongo que tendrá la del router por defecto o algo así, siempre debe de tener uno asignado, así que utilizare esa función para lanzar mensajes DNS al servidor y resolver los dominios, luego solo será modificarlos con el CNAME y añadirlo a la lista de dominios en URLMonitor.
Saludos y gracias.