ProxyChains-NG ver 4.17 README
ProxyChains é um programa UNIX que intercepta funções libc relacionadas à rede
em programas LINKADOS DINAMICAMENTE por meio de uma DLL pré-carregada (dlsym(), LD_PRELOAD)
e redireciona as conexões através de proxies SOCKS4a/5 ou HTTP.
Suporta apenas TCP (sem UDP/ICMP etc).
A forma como funciona é basicamente um HACK; portanto é possível que não
funcione com o seu programa, especialmente quando é um script, ou inicia
inúmeros processos como daemons em segundo plano ou usa dlopen() para carregar
"módulos" (bug no dynlinker da glibc).
Deve funcionar com programas simples compilados (C/C++) e linkados dinamicamente,
no entanto.
Se o seu programa não funcionar com o proxychains, considere usar uma
solução baseada em iptables; isso é muito mais robusto.
Plataformas suportadas: Linux, BSD, Mac, Haiku.
*********** ATENÇÃO ***********
este programa pode ser usado para contornar a censura.
fazer isso pode ser MUITO PERIGOSO em certos países.
CERTIFIQUE-SE SEMPRE DE QUE O PROXYCHAINS FUNCIONA COMO ESPERADO
ANTES DE USÁ-LO PARA QUALQUER COISA SÉRIA.
isso envolve tanto o programa quanto o proxy que você vai
usar.
por exemplo, você pode se conectar a algum serviço de "qual é o meu ip"
como ifconfig.me para garantir que não está usando o seu ip real.
SÓ USE O PROXYCHAINS SE VOCÊ SOUBER O QUE ESTÁ FAZENDO.
OS AUTORES E MANTENEDORES DO PROXYCHAINS NÃO ASSUMEM NENHUMA
RESPONSABILIDADE POR QUALQUER ABUSO OU USO INDEVIDO DESTE SOFTWARE E
PELAS CONSEQUÊNCIAS RESULTANTES.
*** Instalação ***
precisa de um compilador C funcional, preferencialmente gcc
./configure --prefix=/usr --sysconfdir=/etc
make
[opcional] sudo make install
[opcional] sudo make install-config (instala proxychains.conf)
se você não instalar, pode usar o proxychains a partir do diretório de build
assim: ./proxychains4 -f src/proxychains.conf telnet google.com 80
Changelog:
Versão 4.17
- adiciona hook para a função close_range, corrigindo versões mais recentes do openssh
- opção fat-binary-m1 para mac
- corrige o tratamento de erros de DNS em proxy_dns_old
- simplifica o código de inicialização
- corrige o preloading no openbsd
- corrige o double-close em aplicativos multithread
- várias melhorias no script configure
Versão 4.16
- corrige regressão na detecção de flags do linker no script configure
- remove workaround de 10 anos para assinatura errada de getnameinfo da glibc
- suporte ao novo método de hooking DYLD para OSX Monterey
- correção de compilação no netbsd
- suporte a localnets IPv6
- mensagem de erro mais amigável quando execvp falha
- proxy_getaddrinfo(): preenche ai_socktype se solicitado
Versão 4.15
- corrige o script configure para versão com bug do binutils
- inicializa rand_seed com granularidade de nanossegundos
- adiciona suporte a ipv6 numérico em getaddrinfo
- corrige bug em getaddrinfo quando node é null e !passive
- adiciona recurso dnat
- adiciona tipo de proxy raw
- adiciona suporte a haiku
- adiciona proxy_dns_old para emular o comportamento do proxychains 3.1
- adiciona novo recurso proxy_dns_daemon (experimental)
- várias outras correções
Versão 4.14
- permite sintaxe alternativa proto://user:pass@ip:port para proxylist
- corrige loop infinito no modo round robin quando todos os proxies estão fora do ar (#147)
- corrige compilação no android (#265)
- corrige vazamento de fd em processos bifurcados (#273)
- pula tentativa de conexão para ips com nullroute
- permite nomes de host para proxylist sob circunstâncias específicas
Versão 4.13
- corrige robustez da thread de consulta DNS e um segfault
- corrige autenticação user/pass do socks5 em servidores não conformes
- corrige vazamento de memória
- adiciona suporte a Solaris
Versão 4.12
- corrige vários problemas de build
- para MAC
- com -pie
- com CC personalizado
- correção de compatibilidade para alguns aplicativos GUI (8870140)
- correção de compatibilidade para alguns proxies HTTP (cf9a16d)
- corrige vários avisos para build mais limpo no debian
- corrige random_chain no OSX (0f6b226)
Versão 4.11
- suporte preliminar a IPv6
- corrigido bug no hostsreader
- suporte preliminar para uso no OpenBSD (caveat emptor)
Versão 4.10
- corrige regressão na ordem de linkagem com LDFLAGS personalizados
- corrige segfault no código de mapeamento DNS em programas com > ~400 lookups diferentes
Versão 4.9
- corrige uma falha de segurança CVE-2015-3887
- adiciona hook sendto para tratar a flag MSG_FASTOPEN
- substitui o problemático hostentdb por hostsreader
- corrige a compilação no OpenBSD (embora não funcione lá)
Versão 4.8.1:
- corrige regressão no alvo install-config do Makefile da 4.8
Versão 4.8:
- correção para um caso raro em que getaddrinfo era usado com AI_NUMERICHOST
para testar um ip numérico em vez de resolvê-lo (corrige o nmap).
- permite o uso com programas que dependem eles próprios de LD_PRELOAD
- rejeita entradas erradas no arquivo de configuração
- imprime o número da versão na inicialização
Versão 4.7:
- novo chaintype round_robin por crass.
- corrige bug com alocação lazy quando o construtor GCC não era usado.
- nova flag de configure --fat-binary para criar um binário/biblioteca "fat" no OS X
- retorna EBADF em vez de EINTR no hook close.
é legal para um programa repetir chamadas close() quando recebe
EINTR, o que poderia causar um loop infinito, como visto no chromium.
Versão 4.6:
- algumas correções cosméticas no Makefile, corrige um bug quando um ip não numérico era
usado como endereço do servidor proxy.
Versão 4.5:
- hook close() para impedir que o OpenSSH interfira na infraestrutura interna.
isso causava segfault no cliente ssh quando proxificado.
Versão 4.4:
- port para FreeBSD
- corrige alguns problemas de instalação no Debian e no Mac.
Versão 4.3:
- corrige programas que fazem dns-lookups em processos filhos (fork()ed),
como o irssi. para isso, o suporte à compilação sem pthreads
foi sacrificado.
- corrige a thread safety para chamadas gethostent().
- melhora a velocidade do tratamento de DNS, já que o hostent db é cacheado.
Versão 4.2:
- corrige problemas de compilação com o toolchain do ubuntu 12.04
- corrige segfault em um codepath raro
Versão 4.1
- suporte para mac os x (todas as archs)
- todas as funções internas são threadsafe quando compiladas com -DTHREAD_SAFE
(padrão).
Versão 4.0
- substituiu o script dnsresolver (que exigia um binário "dig" linkado dinamicamente
presente) por remote DNS lookup.
isso acelera qualquer operação envolvendo DNS, já que o script antigo tinha que usar TCP.
além disso, permite usar urls .onion quando usado com TOR.
- removeu o sistema de build autoconf quebrado com um Makefile simples.
no entanto, há um script ./configure por conveniência.
ele também adiciona suporte a um arquivo de configuração passado via switches de linha de comando/
variáveis de ambiente.
Versão 3.0
- suporte para resolução de DNS através de proxy
suporta servidores proxy SOCKS4, SOCKS5 e HTTP CONNECT.
Tipos de autenticação: socks - "user/pass" , http - "basic".
Quando usá-lo ?
- Quando a única forma de sair "para fora" da sua LAN é através de um servidor proxy.
- Para sair de trás de um firewall restritivo que filtra portas de saída.
- Para usar dois (ou mais) proxies em cadeia:
como: your_host <--> proxy1 <--> proxy2 <--> target_host
- Para "proxificar" algum programa sem suporte a proxy embutido (como telnet)
- Acessar a intranet de fora via proxy.
- Para usar DNS atrás de proxy.
- Para acessar serviços onion ocultos do tor.
Alguns recursos interessantes: