
proxychains - uno strumento che obbliga qualsiasi connessione TCP effettuata da una qualsiasi applicazione a passare attraverso un proxy come TOR o qualsiasi altro proxy SOCKS4, SOCKS5 o HTTP(S). Tipi di autenticazione supportati: "user/pass" per SOCKS4/5, "basic" per HTTP.
ProxyChains è un programma UNIX che aggancia le funzioni libc relative alla rete nei programmi collegati dinamicamente tramite una DLL pre-caricata e reindirizza le connessioni attraverso proxy SOCKS4a/5 o HTTP.
ATTENZIONE: questo programma funziona solo su programmi collegati dinamicamente. inoltre sia proxychains che il programma da chiamare devono usare lo stesso linker dinamico (cioè la stessa libc)
quando un processo esegue una fork, effettua una risoluzione DNS nel figlio e poi usa l'IP nel padre, la corrispondenza IP corrispondente non verrà trovata, questo perché la fork non può riscrivere la tabella di mapping del padre. IRSSI mostra questo comportamento, quindi devi passargli l'indirizzo IP risolto. (puoi usare lo script proxyresolv (richiede "dig") per farlo)
questo significa che al momento non puoi usare gli URL onion di tor per irssi. per risolvere questo problema, un data store esterno (file, pipe, ...) deve gestire il mapping dns <-> ip. naturalmente ci deve essere un locking adeguato. shm_open, mkstemp, sono possibili candidati per un approccio basato su file, l'altra opzione è generare una sorta di processo server che gestisca le ricerche nel mapping. poiché connect() ecc. sono agganciati, questo non deve essere un server TCP.
Sono riluttante a fare questa modifica, perché il comportamento descritto sembra piuttosto idiota (fare una fork solo per una risoluzione DNS), e irssi è attualmente l'unico programma noto interessato.
Proxychains-4.3.0 è disponibile con pkgsrc per tutti coloro che lo usano su Linux, NetBSD, FreeBSD, OpenBSD, DragonFlyBSD o Mac OS X. Basta installare il repository pkgsrc-wip ed eseguire make install in una directory wip/proxychains.
Puoi saperne di più su pkgsrc su link:http://www.pkgsrc.org[pkgsrc] e su pkgsrc-wip su link:https://pkgsrc.org/wip[pagina iniziale di Pkgsrc-wip]
Puoi installare la versione corrente di proxychains su Mac OS X con homebrew. Devi scaricare la link:https://gist.github.com/3792521[formula homebrew] non ufficiale nella tua BREW_HOME, di default /usr/local/Library/Formula/ ed eseguire
$ brew install proxychains
# richiede un compilatore C funzionante, preferibilmente gcc
./configure
make
sudo make install
Versione (4.x) rimuove lo script dnsresolver che richiedeva un binario "dig" collegato dinamicamente per la risoluzione DNS remota. questo accelera qualsiasi operazione che coinvolga il DNS, poiché il vecchio script doveva usare TCP. inoltre consente di usare URL .onion quando viene usato con TOR. ha anche rimosso il sistema di build autoconf rotto a favore di 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.x) introduce il supporto per la risoluzione DNS attraverso il proxy supporta server proxy SOCKS4, SOCKS5 e HTTP CONNECT.
come: tuo_host <--> proxy1 <--> proxy2 <--> host_destinazione
come: tuo_host <-->socks5 <--> http <--> socks4 <--> host_destinazione
proxychains nmap -sT -PO -p 80 -iR (trova qualche webserver tramite proxy)
proxychains cerca la configurazione nel seguente ordine:
vedi di più in /etc/proxychains.conf
$ proxychains4 telnet targethost.com
in questo esempio eseguirà telnet attraverso il proxy (o i proxy in catena) specificati da proxychains.conf
$ proxychains4 -f /etc/proxychains-other.conf targethost2.com
in questo esempio userà un file di configurazione diverso da proxychains.conf per connettersi all'host targethost2.com.
$ proxyresolv targethost.com
in questo esempio risolverà targethost.com attraverso il proxy (o i proxy in catena) specificati da proxychains.conf
$ ssh -fN -D 4321 some.example.com
$ PROXYCHAINS_SOCKS5_HOST=127.0.0.1 PROXYCHAINS_SOCKS5_PORT=4321 proxychains zsh
in questo esempio, eseguirà una shell con tutto il traffico instradato attraverso il "proxy dinamico" di OpenSSH (proxy SOCKS5) su localhost porta 4321.
$ export PROXY_DNS_SERVER=8.8.8.8
$ proxychains4 telnet targethost.com
in questo esempio, effettuerà telnet verso targethost.com usando il nameserver 8.8.8.8 fornito dall'utente tramite PROXY_DNS_SERVER