
proxychains - una herramienta que obliga a cualquier conexión TCP realizada por cualquier aplicación dada a pasar a través de un proxy como TOR o cualquier otro proxy SOCKS4, SOCKS5 o HTTP(S). Tipos de autenticación admitidos: "user/pass" para SOCKS4/5, "basic" para HTTP.
ProxyChains es un programa UNIX que engancha las funciones de libc relacionadas con la red en programas enlazados dinámicamente mediante una DLL precargada y redirige las conexiones a través de proxies SOCKS4a/5 o HTTP.
ADVERTENCIA: este programa solo funciona con programas enlazados dinámicamente. Además, tanto proxychains como el programa a invocar deben usar el mismo enlazador dinámico (es decir, la misma libc).
cuando un proceso hace fork, realiza una búsqueda DNS en el hijo y luego usa la IP en el padre, no se encontrará el mapeo de IP correspondiente, porque el fork no puede escribir de vuelta en la tabla de mapeo del padre. IRSSI muestra este comportamiento, por lo que debes pasarle la dirección IP resuelta. (puedes usar el script proxyresolv (requiere "dig") para hacerlo)
esto significa que actualmente no puedes usar URLs onion de tor para irssi. Para resolver este problema, un almacén de datos externo (archivo, pipe, ...) debe gestionar el mapeo dns <-> ip. Por supuesto, debe haber un bloqueo (locking) adecuado. shm_open, mkstemp son posibles candidatos para un enfoque basado en archivos; la otra opción es generar algún tipo de proceso servidor que gestione las búsquedas de mapeo. dado que connect() etc. están enganchados, este no debe ser un servidor TCP.
Soy reacio a hacer este cambio, porque el comportamiento descrito parece bastante idiota (hacer un fork solo para una búsqueda DNS), e irssi es actualmente el único programa afectado conocido.
Proxychains-4.3.0 está disponible con pkgsrc para todos los que lo usen en Linux, NetBSD, FreeBSD, OpenBSD, DragonFlyBSD o Mac OS X. Solo necesitas instalar el repositorio pkgsrc-wip y ejecutar make install en un directorio wip/proxychains.
Puedes obtener más información sobre pkgsrc en link:http://www.pkgsrc.org[pkgsrc] y sobre pkgsrc-wip en link:https://pkgsrc.org/wip[Página de inicio de Pkgsrc-wip]
Puedes instalar la versión actual de proxychains en Mac OS X con homebrew. Tienes que descargar la link:https://gist.github.com/3792521[fórmula homebrew no oficial] en tu BREW_HOME, por defecto /usr/local/Library/Formula/, y ejecutar
$ brew install proxychains
# needs a working C compiler, preferably gcc
./configure
make
sudo make install
Versión (4.x) elimina el script dnsresolver que requería que un binario "dig" enlazado dinámicamente estuviera presente para la búsqueda DNS remota. Esto acelera cualquier operación que involucre DNS, ya que el antiguo script tenía que usar TCP. Además, permite usar URLs .onion cuando se usa con TOR. También reemplaza el roto sistema de compilación autoconf por un Makefile simple. Aún así, hay un script ./configure por conveniencia. También añade soporte para un archivo de configuración pasado mediante opciones de línea de comandos/variables de entorno.
Versión (3.x) introduce soporte para la resolución de DNS a través de proxy. Soporta servidores proxy SOCKS4, SOCKS5 y HTTP CONNECT.
like: your_host <--> proxy1 <--> proxy2 <--> target_host
Este programa puede mezclar diferentes tipos de proxy en la misma cadena
like: your_host <-->socks5 <--> http <--> socks4 <--> target_host
proxychains nmap -sT -PO -p 80 -iR (find some webservers through proxy)
proxychains busca la configuración en el siguiente orden:
consulta más en /etc/proxychains.conf
$ proxychains4 telnet targethost.com
en este ejemplo, ejecutará telnet a través del proxy (o proxies encadenados) especificado por proxychains.conf
$ proxychains4 -f /etc/proxychains-other.conf targethost2.com
en este ejemplo, usará un archivo de configuración distinto de proxychains.conf para conectarse al host targethost2.com.
$ proxyresolv targethost.com
en este ejemplo, resolverá targethost.com a través del proxy (o proxies encadenados) especificado por proxychains.conf
$ ssh -fN -D 4321 some.example.com
$ PROXYCHAINS_SOCKS5_HOST=127.0.0.1 PROXYCHAINS_SOCKS5_PORT=4321 proxychains zsh
en este ejemplo, ejecutará un shell con todo el tráfico enrutado a través del "proxy dinámico" de OpenSSH (proxy SOCKS5) en el puerto 4321 de localhost.
$ export PROXY_DNS_SERVER=8.8.8.8
$ proxychains4 telnet targethost.com
en este ejemplo, hará telnet a targethost.com usando el servidor de nombres 8.8.8.8 proporcionado por el usuario mediante la variable PROXY_DNS_SERVER