Diferencias entre los tipos de proxy socks5h, socks5, socks4a y socks4 / Red Tor y resolución DNS

A la hora de usar proxies en determinados comandos, como curl, se puede especificar el tipo de proxy que se debe usar, este normalmente puede ser socks5h, socks5, socks4a y socks4. La diferencia es la versión del proxy y su manera de resolver los dominios.

socks5://  Socks5 y la resolución de DNS se hace en local y NO en el servidor proxy.
socks5h:// Socks5 y la resolución de DNS la hace el proxy y NO en local.

socks4://  Socks4 y la resolución de DNS se hace en local y NO en el servidor proxy.
socks4a:// Socks4 y la resolución de DNS la hace el proxy y NO en local.

Uso de torify en relación con el uso de proxies, resolución DNS y /etc/hosts

Cuando se usa Tor mediante algún comando de terminal, este se puede usar implementando la opción proxy o bien usando el comando torify, que es una especie de proxychains para la red Tor y por defecto siempre hace resolución en remoto. Si se usa por ejemplo “socks5h” con tor en local, la resolución debe hacerse mediante un host remoto y no en local, es decir, tendría el mismo comportamiento en cuanto a resolución de DNS que usar torify. De usar socks5, que implica resolución en local, podría ser un problema de fuga de información ya que el admin del DNS podría ver desde qué ip se intento resolver ese dominio.

Cuando se hacen cambios en el fichero /etc/hosts para fijar una IP a un determinado dominio, aunque se especifique “socks5h”, depende de la aplicación el usarlo o no. Por ejemplo, el comando curl, si usa socks5h, no utiliza la información de /etc/hosts ni enviará la solicitud a sus los DNS configurados en el sistema operativo. Pero otras aplicaciones, como wpscan deberían de usarse siempre con torify ya que pese a poder usarse socks5h en su opción proxy sin mostrar ningún error, siempre usa la resolución local y por lo tanto usará la resolución fijada en /etc/hosts o bien los DNS del sistema operativo.

Entendiendo dicha problemática mejor probar primeramente las herramientas para estar seguro de su comportamiento antes de su uso.