Por qué no me carga la web resuelta por el archivo hosts? W10

Iniciado por @XSStringManolo, 15 Agosto 2019, 16:23 PM

0 Miembros y 3 Visitantes están viendo este tema.

@XSStringManolo

Le quise gastar una broma rápida a un amigo mientras me dejo a solas con su PC y fue al baño y opté por añadirle una entrada al archivo hosts.

Como no tenía permisos de admin para modificar archivos en la cuenta, abrí el archivo host, copie su contenido y borre el archivo.
Abrí la cmd, hice ping a un dominio guarrete donde salen señores pasándoselo bien y copie la IP.
Fuí al escritorio cree nuevo archivo de texto con el bloc de notas y metí la entrada:
google.es 111.111.11.11
google.com 111.111.11.11

Siendo 111.111.111.11.11 la ip del sitio guarro xD
Guarde el archivo sin extensión y lo pegué en la carpeta.

Cuando abrió el navegador y entró en google no cargaba la web.

Por qué no tira? Tenía que agregarle también el puerto? O es alguna medida de protección y solo carga webs en local?

A la próxima opto por una screenshoot, la pongo como fondo de pantalla y le mato el proceso explorer.exe Jajaja

MinusFour

¿Chrome? Hasta donde tengo entendido, Chrome tiene integradas las IPs de google.

@XSStringManolo

Le dije lo que hice y lo que se suponia que iba a pasar, y probamos en varios navegadores. IE, Edge, Mozilla, Brave y en todos página en blanco. En cambio al poner la ip directamente en el navegador si que cargaba.

Songoku

Usa el buscador para buscar el archivo hosts. Lo que quiero decir es que aunque habitualmente el archivo hosts se encuentra en C:\Windows\system32\drivers\etc lo cierto es que Windows también a veces recurre a otras ubicaciones para dicho archivo hosts. Entonces por eso mi recomendación de que lo busques con el buscador para ver donde está y modificarlo al respecto si es necesario.
Saludos...

Songoku

#!drvy

#4
CitarPor qué no tira? Tenía que agregarle también el puerto? O es alguna medida de protección y solo carga webs en local?

3 motivos por los que no habría funcionado.

1. Protocolo HTTP y la configuración del servidor web de la página de señores pasándoselo bien. Por un lado, en un request HTTP, tienes que indicar el HOST hacia el que haces la petición por otro lado ese host es el que usa el servidor para saber a que página quieres acceder (puesto que un servidor puede alojar miles de páginas). Hay muchos servidores que si no les pasas un host, te niegan rechazan la conexión o te muestran una página en plan "estas intentando acceder por la IP y eso no funciona".

Por ejemplo, si te fijas, la IP que reporta un ping a este foro es: 104.25.132.29 y un request normal seria:

Host: foro.elhacker.net
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: ........
Upgrade-Insecure-Requests: 1


Si yo por ejemplo, intento entrar a dicha IP sin especificar un Host, me sale una alerta del servidor (en este caso Cloudflare) diciendome "Direct IP access not allowed". Si intento entrar a dicha IP usando un host diferente (que es lo que estarías haciendo tu al cambiar las IPs):

curl --resolve papanoel.com:80:104.25.132.29 http://papanoel.com/

Me dice:

You've requested a page on a website (papanoel.com) that is on the Cloudflare network. Cloudflare is currently unable to resolve your requested domain (papanoel.com)


2. Otro motivo por el que no debería funcionar, es que Windows almacena cache de dominios resueltos. Por lo que para que cambie a la IP que le dices en el hosts, tendrías que o reiniciar el servicio de networking, o hacer un flush a las dns o reiniciar windows.


3. Otro motivo por lo menos tal y como lo expones en este tema, es que estas poniendo mal las reglas. Les tas diciendo que 111.111.11.11 deberia resolver google.es en vez de decirle que google.es resuelva 111.111.111.11. Es decir, están invertidos.


Y otro motivo es el que menciona @Minusfour.

Saludos

@XSStringManolo

Cita de: Songoku en 15 Agosto 2019, 17:32 PM
Usa el buscador para buscar el archivo hosts. Lo que quiero decir es que aunque habitualmente el archivo hosts se encuentra en C:\Windows\system32\drivers\etc lo cierto es que Windows también a veces recurre a otras ubicaciones para dicho archivo hosts. Entonces por eso mi recomendación de que lo busques con el buscador para ver donde está y modificarlo al respecto si es necesario.
Saludos...

Songoku

Gracias por la info, si codeo algo que modifique el hosts me informaré al respecto acerca de las otras rutas que comentas!

Cita de: #!drvy en 15 Agosto 2019, 17:46 PM
3 motivos por los que no habría funcionado.

1. Protocolo HTTP y la configuración del servidor web de la página de señores pasándoselo bien. Por un lado, en un request HTTP, tienes que indicar el HOST hacia el que haces la petición por otro lado ese host es el que usa el servidor para saber a que página quieres acceder (puesto que un servidor puede alojar miles de páginas). Hay muchos servidores que si no les pasas un host, te niegan rechazan la conexión o te muestran una página en plan "estas intentando acceder por la IP y eso no funciona".

Por ejemplo, si te fijas, la IP que reporta un ping a este foro es: 104.25.132.29 y un request normal seria:

Host: foro.elhacker.net
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: ........
Upgrade-Insecure-Requests: 1


Si yo por ejemplo, intento entrar a dicha IP sin especificar un Host, me sale una alerta del servidor (en este caso Cloudflare) diciendome "Direct IP access not allowed". Si intento entrar a dicha IP usando un host diferente (que es lo que estarías haciendo tu al cambiar las IPs):

curl --resolve papanoel.com:80:104.25.132.29 http://papanoel.com/

Me dice:

You've requested a page on a website (papanoel.com) that is on the Cloudflare network. Cloudflare is currently unable to resolve your requested domain (papanoel.com)


2. Otro motivo por el que no debería funcionar, es que Windows almacena cache de dominios resueltos. Por lo que para que cambie a la IP que le dices en el hosts, tendrías que o reiniciar el servicio de networking, o hacer un flush a las dns o reiniciar windows.


3. Otro motivo por lo menos tal y como lo expones en este tema, es que estas poniendo mal las reglas. Les tas diciendo que 111.111.11.11 deberia resolver google.es en vez de decirle que google.es resuelva 111.111.111.11. Es decir, están invertidos.


Y otro motivo es el que menciona @Minusfour.

Saludos
Ummm, la primera opción descargada porque podía acceder desde la IP a la web escribiéndola en el navegador sin usar el dominio.

Por otro lado no sé si el orden de los productos altera el resultado.
Me refiero, no aseguraría que google.es 111.111.11.11 vaya a hacer que al poner yo 111.111.11.11 en el navegador se me resuelva como google.com y esta a su vez sea resuelta por el dns del router.

Curiosamente en el archivo hosts comentado por # como ejemplo me venía en el orden que lo puse yo para hacer exactamente lo que quería hacer yo. Asique lo tome como referencia.
En teoría si el orden importarse al escribir google.com en el navegador cargaría normalmente la web de google.com y no la web en blanco. Pero ojo, no era un :blank, era una web cargada en blanco.

No le encuentro explicación. Debe ser otra cosa, cuando tenga oportunidad capturo el tráfico y testeo a full a ver si consigo saber cual es el problema.

Igual es alguno de los que comentais, pero en principio no lo veo claro.

#!drvy

#6
CitarCuriosamente en el archivo hosts comentado por # como ejemplo me venía en el orden que lo puse yo para hacer exactamente lo que quería hacer yo. Asique lo tome como referencia.

# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.



De todos modos, tienes razón, te debería de haber cargado google perfectamente. Asegurate de que no sea el punto final de mi punto 1. Es decir, que no te haya cargado un host en blanco por haberle indicado un HOST diferente. Si tienes curl instalado es tan fácil como poner:

curl --resolve google.es:80:111.111.111.11 http://google.es/

y ver que te devuelve.

Saludos

MinusFour

#7
Mmm, no recuerdo donde leí que google tenía las ips integradas en su navegador pero ya no encuentro la nota en ningún lugar. Lo que si encontré es que al parecer google chrome*** tiene su propio cliente DNS.

Otra cosa de la cual no estoy muy seguro es si la política de HSTS de google haga imposible que puedas acceder al servidor por HTTP.

Edit: Oof, google chrome no me respeta a mi ninguna entrada de mi archivo hosts en windows, siempre hace una petición DNS y si no se usa un TLS establecido entonces te hace una busqueda de google.

@XSStringManolo

En cuanto pille un W10 lo intento hacer funcionar con algún workaround si es posible. Pero va a ser una movida sin meter una app fuera de navegador para modificar requests o generarlas con un script. A ver que se me ocurre, pero tampoco es algo que me importe demasiado. Simple curiosidad.