Proxychains – Proxies para Anonimato y Pivoting en Redes

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.

¿Cómo funciona ProxyChains internamente?

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.

Tipos de cadenas (Chain Types)

ProxyChains permite definir cómo se utilizarán los proxies configurados. Esto se hace mediante diferentes modos de encadenamiento:

1. strict_chain

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:

  1. SOCKS5 en tu máquina local

  2. Proxy HTTP en un VPS

  3. 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.

2. dynamic_chain

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.

3. random_chain

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.

Tipos de proxies soportados

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.

Ejemplo práctico de uso con SOCKS5

Supón que tienes acceso SSH a un servidor remoto y creas un túnel dinámico:

ssh -D 9050 usuario@servidor_remoto

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.

Configuración básica

El archivo de configuración principal suele encontrarse en:

/etc/proxychains.conf

o en versiones más modernas:

/etc/proxychains4.conf

Dentro del archivo defines:

  • Tipo de cadena

  • Opciones de DNS

  • Lista de proxies

Un ejemplo simple:

strict_chain
proxy_dns

socks5 127.0.0.1 9050

Con esta configuración, todo el tráfico TCP pasará obligatoriamente por el proxy SOCKS5 local.

ProxyChains y resolución DNS

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.

Ejemplo práctico

Si ejecutas:

proxychains curl http://intranet.local

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.

Uso práctico con herramientas comunes

Nmap

ProxyChains es muy usado junto a Nmap, especialmente en reconocimiento interno.

proxychains nmap -sT -Pn 10.10.10.0/24

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.

SSH a través de múltiples saltos

proxychains ssh usuario@host_interno

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.

Curl y Wget

Ideal para pruebas web:

proxychains curl http://example.com
proxychains wget http://example.com

Puedes validar cómo un servicio ve tu IP, comprobar geolocalización o probar acceso desde distintos entornos.Casos reales de uso en pentesting

Pivoting en red interna

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.

Evasión de restricciones

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.

Anonimato controlado

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.

Limitaciones y consideraciones de seguridad

  • 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.

Cargando siguiente publicación...
Síguenos
Sidebar Buscar
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...