ProxyChains-NG ver 4.17 README
ProxyChains es un programa de UNIX que engancha funciones de libc relacionadas con la red
en programas ENLAZADOS DINÁMICAMENTE mediante una DLL precargada (dlsym(), LD_PRELOAD)
y redirige las conexiones a través de proxies SOCKS4a/5 o HTTP.
Solo admite TCP (no UDP/ICMP, etc.).
La forma en que funciona es básicamente un TRUCO; por lo que es posible que no
funcione con tu programa, especialmente cuando es un script, o inicia
numerosos procesos como demonios en segundo plano o usa dlopen() para cargar
"módulos" (error en el enlazador dinámico de glibc).
Sin embargo, debería funcionar con programas simples compilados (C/C++) enlazados dinámicamente.
Si tu programa no funciona con proxychains, considera usar una
solución basada en iptables en su lugar; esto es mucho más robusto.
Plataformas compatibles: Linux, BSD, Mac, Haiku.
*********** ATENCIÓN ***********
este programa puede usarse para eludir la censura.
hacerlo puede ser MUY PELIGROSO en ciertos países.
ASEGÚRESE SIEMPRE DE QUE PROXYCHAINS FUNCIONE SEGÚN LO ESPERADO
ANTES DE USARLO PARA CUALQUIER COSA SERIA.
esto involucra tanto al programa como al proxy que vas a
usar.
por ejemplo, puedes conectarte a algún servicio de "cuál es mi ip"
como ifconfig.me para asegurarte de que no está usando tu ip real.
USA PROXYCHAINS SOLO SI SABES LO QUE ESTÁS HACIENDO.
LOS AUTORES Y MANTENEDORES DE PROXYCHAINS NO ASUMEN NINGUNA
RESPONSABILIDAD POR CUALQUIER ABUSO O USO INDEBIDO DE ESTE SOFTWARE Y
LAS CONSECUENCIAS RESULTANTES.
*** Instalación ***
necesita un compilador de C funcional, preferiblemente gcc
./configure --prefix=/usr --sysconfdir=/etc
make
[opcional] sudo make install
[opcional] sudo make install-config (instala proxychains.conf)
si no instalas, puedes usar proxychains desde el directorio de compilación
así: ./proxychains4 -f src/proxychains.conf telnet google.com 80
Registro de cambios:
Versión 4.17
- añadir hook para la función close_range, corrigiendo versiones más recientes de openssh
- opción fat-binary-m1 para mac
- corregir el manejo de errores de DNS en proxy_dns_old
- simplificar el código de inicialización
- corregir la precarga en openbsd
- corregir el doble cierre en aplicaciones multihilo
- varias mejoras al script configure
Versión 4.16
- corregir regresión en la detección de flags del enlazador en el script configure
- eliminar solución alternativa de hace 10 años para la firma incorrecta de getnameinfo de glibc
- soporte para nuevo método de enganche DYLD para OSX Monterey
- corrección de compilación en netbsd
- soporte de localnets IPv6
- mensaje de error más amigable cuando falla execvp
- proxy_getaddrinfo(): rellenar ai_socktype si se solicita
Versión 4.15
- corregir el script configure para versión defectuosa de binutils
- inicializar rand_seed con granularidad de nanosegundos
- añadir soporte para ipv6 numérico en getaddrinfo
- corregir error en getaddrinfo cuando node es null y !passive
- añadir función dnat
- añadir tipo de proxy raw
- añadir soporte para haiku
- añadir proxy_dns_old para emular el comportamiento de proxychains 3.1
- añadir nueva función proxy_dns_daemon (experimental)
- varias otras correcciones
Versión 4.14
- permitir sintaxis alternativa proto://user:pass@ip:port para proxylist
- corregir bucle infinito en modo round robin cuando todos los proxies están caídos (#147)
- corregir compilación en android (#265)
- corregir fuga de fd en procesos bifurcados (#273)
- omitir intento de conexión a ips con ruta nula
- permitir nombres de host para proxylist bajo circunstancias específicas
Versión 4.13
- corregir robustez del hilo de búsqueda DNS y un fallo de segmentación
- corregir autenticación usuario/contraseña de socks5 en servidores no conformes
- corregir fuga de memoria
- añadir soporte para Solaris
Versión 4.12
- corregir varios problemas de compilación
- para MAC
- con -pie
- con CC personalizado
- corrección de compatibilidad para algunas aplicaciones GUI (8870140)
- corrección de compatibilidad para algunos proxies HTTP (cf9a16d)
- corregir varias advertencias para una compilación más limpia en debian
- corregir random_chain en OSX (0f6b226)
Versión 4.11
- soporte preliminar de IPv6
- corregido error en hostsreader
- soporte preliminar para uso en OpenBSD (caveat emptor)
Versión 4.10
- corregir regresión en el orden de enlace con LDFLAGS personalizados
- corregir fallo de segmentación en el código de mapeo DNS en programas con > ~400 búsquedas diferentes
Versión 4.9
- corrige un problema de seguridad CVE-2015-3887
- añade hook sendto para manejar el flag MSG_FASTOPEN
- reemplaza el problemático hostentdb por hostsreader
- corrige la compilación en OpenBSD (aunque no funciona allí)
Versión 4.8.1:
- corrige una regresión en el target install-config del Makefile de la 4.8
Versión 4.8:
- corrección para un caso límite extraño en el que se usaba getaddrinfo con AI_NUMERICHOST
para comprobar si era una ip numérica en lugar de resolverla (corrige nmap).
- permite el uso con programas que dependen ellos mismos de LD_PRELOAD
- rechaza entradas incorrectas en el archivo de configuración
- muestra el número de versión al iniciar
Versión 4.7:
- nuevo chaintype round_robin por crass.
- corrige un bug con la asignación perezosa cuando no se usaba el constructor de GCC.
- nuevo flag de configure --fat-binary para crear un binario/biblioteca "fat" en OS X
- devuelve EBADF en lugar de EINTR en el hook close.
es legal que un programa reintente llamadas close() cuando recibe
EINTR, lo que podría causar un bucle infinito, como se vio en chromium.
Versión 4.6:
- algunas correcciones cosméticas al Makefile, corrige un bug cuando se
usaba una ip no numérica como dirección del servidor proxy.
Versión 4.5:
- hook close() para evitar que OpenSSH interfiera con la infraestructura interna.
esto causaba un segfault en el cliente ssh cuando se proxificaba.
Versión 4.4:
- port para FreeBSD
- corrige algunos problemas de instalación en Debian y Mac.
Versión 4.3:
- corrige programas que hacen búsquedas dns en procesos hijos (fork()eados),
como irssi. para lograrlo, se sacrificó el soporte para compilar sin pthreads.
- corrige la seguridad de hilos en las llamadas a gethostent().
- mejora la velocidad de manejo de DNS, ya que la db de hostent está en caché.
Versión 4.2:
- corrige problemas de compilación con el toolchain de ubuntu 12.04
- corrige un segfault en una ruta de código poco frecuente
Versión 4.1
- soporte para mac os x (todas las archs)
- todas las funciones internas son threadsafe cuando se compilan con -DTHREAD_SAFE
(por defecto).
Versión 4.0
- reemplaza el script dnsresolver (que requería un binario "dig" enlazado dinámicamente
presente) por búsqueda DNS remota.
esto acelera cualquier operación que involucre DNS, ya que el script antiguo tenía que usar TCP.
además permite usar urls .onion cuando se usa con TOR.
- elimina el roto sistema de build autoconf con un Makefile simple.
aunque hay un script ./configure por comodidad.
también añade soporte para un archivo de configuración pasado mediante switches de línea de comandos/
variables de entorno.
Versión 3.0
- soporte para resolución DNS a través de proxy
soporta servidores proxy SOCKS4, SOCKS5 y HTTP CONNECT.
Tipos de autenticación: socks - "user/pass" , http - "basic".
¿Cuándo usarlo?
- Cuando la única forma de salir "afuera" desde tu LAN es a través de un servidor proxy.
- Para salir de detrás de un firewall restrictivo que filtra los puertos de salida.
- Para usar dos (o más) proxies en cadena:
como: your_host <--> proxy1 <--> proxy2 <--> target_host
- Para "proxificar" algún programa sin soporte de proxy integrado (como telnet)
- Acceder a la intranet desde fuera a través de proxy.
- Para usar DNS detrás de un proxy.
- Para acceder a servicios onion ocultos de tor.
Algunas características interesantes: