
proxychains - un outil qui force toute connexion TCP établie par une application donnée à transiter par un proxy tel que TOR ou tout autre proxy SOCKS4, SOCKS5 ou HTTP(S). Types d'authentification pris en charge : "user/pass" pour SOCKS4/5, "basic" pour HTTP.
ProxyChains est un programme UNIX qui intercepte les fonctions libc liées au réseau dans les programmes liés dynamiquement via une DLL préchargée et redirige les connexions à travers des proxys SOCKS4a/5 ou HTTP.
ATTENTION : ce programme ne fonctionne qu'avec les programmes liés dynamiquement. De plus, proxychains et le programme à appeler doivent utiliser le même éditeur de liens dynamique (c'est-à-dire la même libc).
lorsqu'un processus effectue un fork, fait une résolution DNS dans l'enfant, puis utilise l'ip dans le parent, la correspondance ip correspondante ne sera pas trouvée, car le fork ne peut pas réécrire dans la table de correspondance du parent. IRSSI présente ce comportement, vous devez donc lui passer l'adresse ip résolue. (vous pouvez utiliser le script proxyresolv (nécessite « dig ») pour cela)
cela signifie que vous ne pouvez actuellement pas utiliser les URLs .onion de tor pour irssi. pour résoudre ce problème, un stockage de données externe (fichier, tube, ...) doit gérer la correspondance dns <-> ip. bien sûr, il faut un verrouillage approprié. shm_open, mkstemp sont des candidats possibles pour une approche basée sur fichier, l'autre option est de lancer une sorte de processus serveur qui gère les consultations de correspondance. puisque connect() etc. sont interceptés, cela ne doit pas être un serveur TCP.
Je suis réticent à faire ce changement, car le comportement décrit semble plutôt idiot (faire un fork uniquement pour une résolution DNS), et irssi est actuellement le seul programme connu affecté.
Proxychains-4.3.0 est disponible avec pkgsrc pour tous ceux qui l'utilisent sur Linux, NetBSD, FreeBSD, OpenBSD, DragonFlyBSD ou Mac OS X. Il vous suffit d'installer le dépôt pkgsrc-wip et d'exécuter make install dans un répertoire wip/proxychains.
Vous pouvez en savoir plus sur pkgsrc sur link:http://www.pkgsrc.org[pkgsrc] et sur pkgsrc-wip sur link:https://pkgsrc.org/wip[Page d'accueil Pkgsrc-wip]
Vous pouvez installer la version actuelle de proxychains sur Mac OS X avec homebrew. Vous devez télécharger la link:https://gist.github.com/3792521[formule homebrew] non officielle dans votre BREW_HOME, par défaut /usr/local/Library/Formula/, puis exécuter
$ brew install proxychains
# nécessite un compilateur C fonctionnel, de préférence gcc
./configure
make
sudo make install
Version (4.x) supprime le script dnsresolver qui nécessitait la présence d'un binaire « dig » lié dynamiquement pour la résolution DNS distante. cela accélère toute opération impliquant le DNS, car l'ancien script devait utiliser TCP. de plus, cela permet d'utiliser les URLs .onion avec TOR. cela remplace aussi le système de construction autoconf cassé par un simple Makefile. il y a cependant un script ./configure par commodité. cela ajoute également la prise en charge d'un fichier de configuration transmis via les options de ligne de commande/ variables d'environnement.
Version (3.x) introduit la prise en charge de la résolution DNS via un proxy. elle prend en charge les serveurs proxy SOCKS4, SOCKS5 et HTTP CONNECT.
comme : votre_hôte <--> proxy1 <--> proxy2 <--> hôte_cible
comme : votre_hôte <-->socks5 <--> http <--> socks4 <--> hôte_cible
proxychains nmap -sT -PO -p 80 -iR (trouver des serveurs web via un proxy)
proxychains recherche la configuration dans l'ordre suivant :
voir plus dans /etc/proxychains.conf
$ proxychains4 telnet targethost.com
dans cet exemple, il exécutera telnet via le ou les proxys en chaîne spécifiés par proxychains.conf
$ proxychains4 -f /etc/proxychains-other.conf targethost2.com
dans cet exemple, il utilisera un fichier de configuration différent de proxychains.conf pour se connecter à l'hôte targethost2.com.
$ proxyresolv targethost.com
dans cet exemple, il résoudra targethost.com via le ou les proxys en chaîne spécifiés par proxychains.conf
$ ssh -fN -D 4321 some.example.com
$ PROXYCHAINS_SOCKS5_HOST=127.0.0.1 PROXYCHAINS_SOCKS5_PORT=4321 proxychains zsh
dans cet exemple, il exécutera un shell avec tout le trafic passant par le « proxy dynamique » d'OpenSSH (proxy SOCKS5) sur le port localhost 4321.
$ export PROXY_DNS_SERVER=8.8.8.8
$ proxychains4 telnet targethost.com
dans cet exemple, il établira une session telnet vers targethost.com en utilisant le serveur de noms 8.8.8.8 fourni par l'utilisateur via PROXY_DNS_SERVER