
proxychains - ein Tool, das jede TCP-Verbindung, die von einer beliebigen Anwendung hergestellt wird, zwingt, über einen Proxy wie TOR oder einen anderen SOCKS4-, SOCKS5- oder HTTP(S)-Proxy zu laufen. Unterstützte Authentifizierungstypen: „Benutzer/Passwort“ für SOCKS4/5, „Basic“ für HTTP.
ProxyChains ist ein UNIX-Programm, das netzwerkbezogene libc-Funktionen in dynamisch gelinkten Programmen über eine vorgeladene DLL einhakt und die Verbindungen über SOCKS4a/5 oder HTTP-Proxys umleitet.
WARNUNG: Dieses Programm funktioniert nur mit dynamisch gelinkten Programmen. Außerdem müssen sowohl proxychains als auch das aufzurufende Programm denselben dynamischen Linker verwenden (d.h. dieselbe libc).
Wenn ein Prozess forkt, eine DNS-Abfrage im Kindprozess durchführt und dann die IP im Elternprozess verwendet, wird die entsprechende IP-Zuordnung nicht gefunden, da der Fork nicht in die Mapping-Tabelle des Elternprozesses zurückschreiben kann. IRSSI zeigt dieses Verhalten, daher müssen Sie die aufgelöste IP-Adresse an ihn übergeben. (Sie können das Skript proxyresolv (benötigt "dig") verwenden, um dies zu tun.)
Das bedeutet, dass Sie derzeit keine Tor-Onion-URLs für irssi verwenden können. Um dieses Problem zu lösen, muss ein externer Datenspeicher (Datei, Pipe, ...) das DNS-<->IP-Mapping verwalten. Natürlich muss es ordnungsgemäßes Locking geben. shm_open, mkstemp sind mögliche Kandidaten für einen dateibasierten Ansatz, die andere Option ist, einen Serverprozess zu starten, der die Mapping-Abfragen verwaltet. Da connect() usw. eingehakt sind, darf dies kein TCP-Server sein.
Ich zögere, diese Änderung vorzunehmen, da das beschriebene Verhalten ziemlich idiotisch erscheint (nur für eine DNS-Abfrage einen Fork durchzuführen), und irssi ist derzeit das einzige bekannte betroffene Programm.
Proxychains-4.3.0 sind mit pkgsrc für alle verfügbar, die es auf Linux, NetBSD, FreeBSD, OpenBSD, DragonFlyBSD oder Mac OS X verwenden. Sie müssen nur das pkgsrc-wip-Repository installieren und make install in einem wip/proxychains-Verzeichnis ausführen.
Weitere Informationen zu pkgsrc finden Sie unter link:http://www.pkgsrc.org[pkgsrc] und zu pkgsrc-wip auf der link:https://pkgsrc.org/wip[Pkgsrc-wip Homepage]
Sie können das aktuelle proxychains auf Mac OS X mit Homebrew installieren. Sie müssen das inoffizielle link:https://gist.github.com/3792521[Homebrew-Formel] herunterladen, standardmäßig in Ihr BREW_HOME unter /usr/local/Library/Formula/ und ausführen
$ brew install proxychains
# needs a working C compiler, preferably gcc
./configure
make
sudo make install
Version (4.x) entfernt das Skript dnsresolver, das ein dynamisch gelinktes "dig"-Binary für entfernte DNS-Abfragen erforderte. Dies beschleunigt jede Operation, die DNS betrifft, da das alte Skript TCP verwenden musste. Außerdem ermöglicht es die Verwendung von .onion-URLs in Verbindung mit TOR. Es entfernt auch das fehlerhafte Autoconf-Build-System zugunsten eines einfachen Makefiles. Es gibt jedoch ein ./configure-Skript zur Bequemlichkeit. Es fügt auch Unterstützung für eine Konfigurationsdatei hinzu, die über Befehlszeilenoptionen/Umgebungsvariablen übergeben wird.
Version (3.x) führt Unterstützung für DNS-Auflösung durch Proxy ein. Sie unterstützt SOCKS4-, SOCKS5- und HTTP-CONNECT-Proxy-Server.
like: your_host <--> proxy1 <--> proxy2 <--> target_host
like: your_host <-->socks5 <--> http <--> socks4 <--> target_host
proxychains nmap -sT -PO -p 80 -iR (find some webservers through proxy)
proxychains sucht die Konfiguration in der folgenden Reihenfolge:
weitere Informationen in /etc/proxychains.conf
$ proxychains4 telnet targethost.com
In diesem Beispiel wird telnet über den Proxy (oder die verketteten Proxys) ausgeführt, die in proxychains.conf angegeben sind.
$ proxychains4 -f /etc/proxychains-other.conf targethost2.com
In diesem Beispiel wird eine andere Konfigurationsdatei als proxychains.conf verwendet, um eine Verbindung zum Host targethost2.com herzustellen.
$ proxyresolv targethost.com
In diesem Beispiel wird targethost.com über den Proxy (oder die verketteten Proxys) aufgelöst, die in proxychains.conf angegeben sind.
$ ssh -fN -D 4321 some.example.com
$ PROXYCHAINS_SOCKS5_HOST=127.0.0.1 PROXYCHAINS_SOCKS5_PORT=4321 proxychains zsh
In diesem Beispiel wird eine Shell ausgeführt, bei der der gesamte Datenverkehr über den "dynamischen Proxy" (SOCKS5-Proxy) von OpenSSH auf localhost Port 4321 geleitet wird.
$ export PROXY_DNS_SERVER=8.8.8.8
$ proxychains4 telnet targethost.com
In diesem Beispiel wird telnet auf targethost.com unter Verwendung des vom Benutzer über den PROXY_DNS_SERVER bereitgestellten Nameservers 8.8.8.8 ausgeführt.