ProxyChains-NG ver 4.17 README
ProxyChains è un programma UNIX che aggancia le funzioni libc relative alla rete
nei programmi LINKATI DINAMICAMENTE tramite una DLL precaricata (dlsym(), LD_PRELOAD)
e reindirizza le connessioni attraverso proxy SOCKS4a/5 o HTTP.
Supporta solo TCP (niente UDP/ICMP ecc.).
Il suo funzionamento è sostanzialmente un HACK; quindi è possibile che non
funzioni con il tuo programma, specialmente quando è uno script, o avvia
numerosi processi come daemon in background o usa dlopen() per caricare
"moduli" (bug nel dynlinker di glibc).
Dovrebbe comunque funzionare con semplici programmi compilati (C/C++) linkati
dinamicamente.
Se il tuo programma non funziona con proxychains, considera invece di usare
una soluzione basata su iptables; è molto più robusta.
Piattaforme supportate: Linux, BSD, Mac, Haiku.
*********** ATTENZIONE ***********
questo programma può essere usato per aggirare la censura.
farlo può essere MOLTO PERICOLOSO in certi paesi.
ASSICURATI SEMPRE CHE PROXYCHAINS FUNZIONI COME PREVISTO
PRIMA DI USARLO PER QUALSIASI COSA SERIA.
questo coinvolge sia il programma sia il proxy che intendi
usare.
ad esempio, puoi connetterti a qualche servizio "qual è il mio ip"
come ifconfig.me per assicurarti che non stia usando il tuo ip reale.
USA PROXYCHAINS SOLO SE SAI QUELLO CHE STAI FACENDO.
GLI AUTORI E I MANUTENTORI DI PROXYCHAINS NON SI ASSUMONO ALCUNA
RESPONSABILITÀ PER QUALSIASI ABUSO O USO IMPROPRIO DI QUESTO SOFTWARE E
PER LE CONSEGUENZE CHE NE DERIVANO.
*** Installazione ***
richiede un compilatore C funzionante, preferibilmente gcc
./configure --prefix=/usr --sysconfdir=/etc
make
[opzionale] sudo make install
[opzionale] sudo make install-config (installa proxychains.conf)
se non installi, puoi usare proxychains dalla directory di build
così: ./proxychains4 -f src/proxychains.conf telnet google.com 80
Changelog:
Versione 4.17
- aggiunto hook per la funzione close_range, correggendo le versioni più recenti di openssh
- opzione fat-binary-m1 per mac
- corretta la gestione degli errori DNS in proxy_dns_old
- semplificato il codice di inizializzazione
- corretta la precompilazione su openbsd
- corretta la doppia chiusura nelle applicazioni multithread
- varie migliorie allo script configure
Versione 4.16
- corretta regressione nel rilevamento dei flag del linker nello script configure
- rimosso workaround vecchio di 10 anni per la firma errata di getnameinfo di glibc
- supporto per il nuovo metodo di hooking DYLD per OSX Monterey
- correzione della compilazione su netbsd
- supporto IPv6 per localnets
- messaggio di errore più user-friendly quando execvp fallisce
- proxy_getaddrinfo(): compila ai_socktype se richiesto
Versione 4.15
- corretto lo script configure per versioni buggy di binutils
- inizializzazione di rand_seed con granularità al nanosecondo
- aggiunto supporto per ipv6 numerico in getaddrinfo
- corretto bug in getaddrinfo quando node è null e !passive
- aggiunta funzionalità dnat
- aggiunto tipo di proxy raw
- aggiunto supporto haiku
- aggiunto proxy_dns_old per emulare il comportamento di proxychains 3.1
- aggiunta nuova funzionalità proxy_dns_daemon (sperimentale)
- varie altre correzioni
Versione 4.14
- consentita sintassi alternativa proto://user:pass@ip:port per proxylist
- corretto loop infinito in modalità round robin quando tutti i proxy sono inattivi (#147)
- corretta compilazione su android (#265)
- corretta perdita di fd nei processi forkati (#273)
- saltato il tentativo di connessione a ip con nullroute
- consentiti nomi host per proxylist in circostanze specifiche
Versione 4.13
- corretta robustezza del thread di lookup DNS e un segfault
- corretta l'autenticazione user/pass socks5 su server non conformi
- corretta perdita di memoria
- aggiunto supporto per Solaris
Versione 4.12
- corretti diversi problemi di build
- per MAC
- con -pie
- con CC personalizzato
- correzione di compatibilità per alcune app GUI (8870140)
- correzione di compatibilità per alcuni proxy HTTP (cf9a16d)
- corretti diversi warning per una build più pulita su debian
- corretto random_chain su OSX (0f6b226)
Versione 4.11
- supporto IPv6 preliminare
- corretto bug in hostsreader
- supporto preliminare per l'uso su OpenBSD (caveat emptor)
Versione 4.10
- corretta regressione nell'ordine di linking con LDFLAGS personalizzati
- corretto segfault nel codice di mapping DNS in programmi con > ~400 lookup diversi
Versione 4.9
- corretto un problema di sicurezza CVE-2015-3887
- aggiunto hook sendto per gestire il flag MSG_FASTOPEN
- sostituito il problematico hostentdb con hostsreader
- corretta la compilazione su OpenBSD (sebbene non funzioni lì)
Versione 4.8.1:
- corretta regressione nel target install-config del Makefile della 4.8
Versione 4.8:
- correzione per un caso limite anomalo in cui getaddrinfo veniva usato con AI_NUMERICHOST
per verificare un ip numerico invece di risolverlo (corregge nmap).
- consentito l'uso con programmi che si affidano essi stessi a LD_PRELOAD
- rifiutate voci errate nel file di configurazione
- stampato il numero di versione all'avvio
Versione 4.7:
- nuovo chaintype round_robin di crass.
- corretto bug con l'allocazione lazy quando il costruttore GCC non veniva usato.
- nuovo flag di configure --fat-binary per creare un binario/libreria "fat" su OS X
- restituito EBADF invece di EINTR nell'hook close.
è legale per un programma ritentare le chiamate close() quando riceve
EINTR, il che potrebbe causare un ciclo infinito, come visto in chromium.
Versione 4.6:
- alcune correzioni estetiche al Makefile, corretto un bug quando un ip non numerico
veniva usato come indirizzo del proxy server.
Versione 4.5:
- hook su close() per impedire a OpenSSH di interferire con l'infrastruttura interna.
questo causava un segfault del client ssh quando proxificato.
Versione 4.4:
- port per FreeBSD
- corretti alcuni problemi di installazione su Debian e Mac.
Versione 4.3:
- corregge i programmi che eseguono dns-lookup in processi figli (fork()ati),
come irssi. per ottenere ciò, il supporto per la compilazione senza pthreads
è stato sacrificato.
- corretta la thread safety per le chiamate gethostent().
- migliorata la velocità di gestione DNS, poiché il db hostent è in cache.
Versione 4.2:
- corretti problemi di compilazione con la toolchain di ubuntu 12.04
- corretto segfault in un raro codepath
Versione 4.1
- supporto per mac os x (tutte le arch)
- tutte le funzioni interne sono threadsafe quando compilate con -DTHREAD_SAFE
(predefinito).
Versione 4.0
- sostituito lo script dnsresolver (che richiedeva la presenza di un binario "dig"
linkato dinamicamente) con la risoluzione DNS remota.
questo velocizza qualsiasi operazione che coinvolga il DNS, poiché il vecchio script doveva usare TCP.
inoltre consente di usare url .onion quando usato con TOR.
- rimosso il sistema di build autoconf non funzionante con un semplice Makefile.
c'è comunque uno script ./configure per comodità.
aggiunge anche il supporto per un file di configurazione passato tramite opzioni da riga di comando/
variabili d'ambiente.
Versione 3.0
- supporto per la risoluzione DNS attraverso proxy
supporta proxy server SOCKS4, SOCKS5 e HTTP CONNECT.
Tipi di autenticazione: socks - "user/pass" , http - "basic".
Quando usarlo ?
- Quando l'unico modo per uscire dalla tua LAN è attraverso un proxy server.
- Per uscire da dietro un firewall restrittivo che filtra le porte in uscita.
- Per usare due (o più) proxy in catena:
come: your_host <--> proxy1 <--> proxy2 <--> target_host
- Per "proxificare" qualche programma senza supporto proxy integrato (come telnet)
- Accedere all'intranet dall'esterno tramite proxy.
- Per usare il DNS dietro un proxy.
- Per accedere a servizi onion nascosti di tor.
Alcune funzionalità interessanti: