
Antes de comenzar a leer, queremos mencionar que la información de este post es con fines educativos, no realizar pruebas en entorno donde no hay autorización previa, no nos hacemos responsables del uso que le dan a la información brindada en este post.
ProxyChains es una herramienta clásica y muy utilizada en entornos de seguridad ofensiva, análisis de redes y anonimato, cuyo objetivo principal es forzar que el tráfico TCP de una aplicación pase a través de uno o varios proxies antes de llegar a su destino final. Esto permite ocultar el origen real del tráfico, evadir restricciones de red y realizar técnicas avanzadas como pivoting en auditorías de seguridad.
A diferencia de un proxy tradicional configurado a nivel de sistema o navegador, ProxyChains actúa como un wrapper, es decir, envuelve la ejecución de un comando y redirige sus conexiones de red a través de una cadena de proxies definida por el usuario.
Cuando se ejecuta un comando con ProxyChains, la herramienta intercepta las llamadas de red (principalmente connect() en TCP) usando LD_PRELOAD en sistemas Linux. En lugar de permitir que la aplicación se conecte directamente al destino, ProxyChains redirige esa conexión al primer proxy de la cadena, luego al segundo, y así sucesivamente hasta llegar al destino final.
Este enfoque permite:
Controlar completamente la ruta del tráfico
Encadenar múltiples proxies (multi-hop)
Aplicar anonimato o segmentación de red
Evitar restricciones de firewall o geolocalización
Es importante destacar que ProxyChains solo funciona con tráfico TCP, no UDP. Por eso es común verlo junto a herramientas como nmap en modo TCP, curl, ssh, git, wget o navegadores en modo CLI.
ProxyChains permite definir cómo se utilizarán los proxies configurados. Esto se hace mediante diferentes modos de encadenamiento:
En este modo, los proxies se utilizan en el orden exacto en el que aparecen en el archivo de configuración.
Si uno falla, la conexión completa falla.
Ejemplo práctico:
Supongamos que tienes esta cadena:
SOCKS5 en tu máquina local
Proxy HTTP en un VPS
SOCKS4 dentro de una red interna comprometida
Si el segundo proxy deja de responder, no se intenta continuar y la conexión se corta. Este modo es ideal cuando necesitas un recorrido específico para llegar a un segmento concreto de red, por ejemplo en pivoting durante un pentest interno.
Aquí ProxyChains intenta usar los proxies en orden, pero si alguno falla, lo omite y continúa con los siguientes.
Ejemplo práctico:
Estás usando una lista de proxies públicos para ocultar tu IP mientras haces consultas HTTP con curl. Algunos proxies pueden estar caídos. Con dynamic_chain, la herramienta seguirá funcionando sin interrumpir tu trabajo.
Este modo es útil cuando la estabilidad de los proxies no está garantizada.
Selecciona proxies de forma aleatoria para cada conexión.
Ejemplo práctico:
Si estás haciendo scraping o peticiones repetidas a un servicio web y quieres evitar detecciones basadas en IP, este modo ayuda a distribuir el tráfico entre distintos nodos, reduciendo patrones repetitivos.
ProxyChains soporta varios tipos de proxies, cada uno con sus particularidades:
SOCKS4: básico, sin autenticación.
SOCKS5: más moderno, soporta autenticación y DNS remoto.
HTTP / HTTPS: útil para tráfico web, aunque menos flexible que SOCKS.
Supón que tienes acceso SSH a un servidor remoto y creas un túnel dinámico:
Esto levanta un proxy SOCKS5 local en el puerto 9050. Al configurarlo en ProxyChains, cualquier herramienta que ejecutes quedará tunelizada a través de ese servidor remoto.
El archivo de configuración principal suele encontrarse en:
o en versiones más modernas:
Dentro del archivo defines:
Tipo de cadena
Opciones de DNS
Lista de proxies
Un ejemplo simple:
Con esta configuración, todo el tráfico TCP pasará obligatoriamente por el proxy SOCKS5 local.
Uno de los errores más comunes es filtrar DNS por fuera del proxy. ProxyChains puede manejar esto con la opción proxy_dns, forzando que la resolución de nombres se haga a través del proxy en lugar del DNS local.
Si ejecutas:
Sin proxy_dns, tu máquina intentará resolver intranet.local usando su DNS local, lo que puede fallar o revelar información.
Con proxy_dns, la resolución se realiza desde el entorno remoto al que estés pivotando.
ProxyChains es muy usado junto a Nmap, especialmente en reconocimiento interno.
Aquí:
-sT usa TCP connect (compatible con ProxyChains)
-Pn evita ping
El escaneo se realiza desde la perspectiva del proxy
Esto es clave cuando se audita una red a la que no tienes acceso directo.
Si uno de los proxies está dentro de una red comprometida, este comando te permite acceder a sistemas que de otro modo serían inaccesibles desde tu máquina local.
Ideal para pruebas web:
Puedes validar cómo un servicio ve tu IP, comprobar geolocalización o probar acceso desde distintos entornos.Casos reales de uso en pentesting
Tras comprometer una máquina dentro de una empresa, configuras un proxy SOCKS en ella. Con ProxyChains, puedes escanear subredes internas, acceder a servicios internos y simular tráfico como si fueras parte de la red corporativa.
En entornos donde el firewall bloquea conexiones directas, ProxyChains permite encadenar proxies permitidos para llegar al destino final sin romper las reglas aparentes de la red.
Aunque no es una solución de anonimato total, ProxyChains permite reducir exposición directa, especialmente cuando se combina con túneles cifrados y proxies confiables.
No soporta UDP
No cifra el tráfico por sí mismo (depende del proxy)
El anonimato depende de la confianza en los proxies
Un proxy mal configurado puede filtrar IP o DNS
Por ello, siempre es recomendable probar la configuración antes de usarla en escenarios sensibles.
ProxyChains es una herramienta fundamental en el arsenal de cualquier profesional de ciberseguridad. Su capacidad para forzar tráfico a través de múltiples saltos, controlar rutas de red y facilitar pivoting la convierte en una solución potente y flexible. Usada correctamente, permite entender redes desde nuevas perspectivas, superar limitaciones de conectividad y ejecutar auditorías más realistas y profundas.
No es una herramienta “plug and play”, pero precisamente ahí reside su valor, control total del flujo de red.
Para continuar, resuelve el CAPTCHA y acepta recibir correos: