ProxyChains — Encadenado de Proxies y Pivoting
Enrutado de herramientas a través de proxies SOCKS/HTTP con proxychains: configuración de la ProxyList, dynamic_chain, resolución DNS y pivoting hacia redes internas.
1. Operational Scope & Technical Objective
proxychains envuelve cualquier binario y redirige su tráfico a través de una cadena de proxies SOCKS4/5 o HTTP definida en proxychains.conf. Su uso ofensivo estándar es el pivoting: con un túnel SOCKS ya montado (SSH -D, Meterpreter, sshuttle), proxychains permite que herramientas que no soportan SOCKS de forma nativa (nmap, xfreerdp, curl, smbclient) alcancen la red interna del objetivo. La correcta configuración de la cadena (dynamic_chain, proxy_dns) decide si el tráfico realmente sale por donde se quiere y si las resoluciones DNS no filtran el objetivo.
2. High-Impact Syntax & Command Cheatsheet
# Sintaxis base
proxychains <comando>
proxychains curl https://example.com
# la herramienta se ejecuta "dentro" del proxy; todo su tráfico sale por la cadena
# Configuración mínima en /etc/proxychains.conf (o ~/.proxychains/proxychains.conf)
# Añadir los proxies al final del fichero:
[ProxyList]
socks5 127.0.0.1 1080 # SOCKS5 (p. ej. túnel SSH -D)
http 192.168.1.1 8080 # proxy HTTP
# Orden de la cadena = orden de la lista
# Modos de cadena (arriba del fichero):
# dynamic_chain -> usa los proxies que responden; salta los caídos (recomendado)
# strict_chain -> usa TODOS en orden; si uno cae, la operación falla
# random_chain -> orden aleatorio (menos predecible, más lento)
# Resolución DNS
# proxy_dns -> resuelve el DNS a través del proxy (evita filtrar los dominios objetivo)
# Con proxy_dns desactivado, el DNS local revela qué dominios consultas
3. Real-World Offensive/Defensive Scenarios
Pivoting a red interna vía túnel SSH. Con ssh -D 1080 jumpuser@server (o Meterpreter portfwd), la ProxyList apunta a socks5 127.0.0.1 1080 y cualquier herramienta alcanza los hosts internos:
proxychains nmap -sT -Pn -p 445 10.10.10.0/24 # -sT: connect() es lo único que funciona vía SOCKS
proxychains xfreerdp /u:admin /v:10.10.10.50 +clipboard
proxychains smbclient -L //10.10.10.50 -U admin
Evasión de control de egress. Enrutar el tráfico de un binario por un proxy en el extranjero (o por la cadena del objetivo) enmascara la IP de origen. proxy_dns evita que las consultas DNS locales revelen el destino, un detalle que los analistas usan para detectar pivoting.
Defensa. El pivoting deja rastros que el Blue Team debe cazar: conexiones SOCKS inesperadas desde un host que no debería tenerlas, y tráfico connect() hacia puertos internos (nmap -sT) que el tráfico normal no genera. Restringir el egress por defecto (deny-all con excepciones) limita qué puertos y protocolos pueden salir a través de cualquier proxy. Además, los binarios suelen ignorar proxychains si se compilan estáticamente o usan sockets propios: no es un control infalible, solo un enrutador.