proxychains-ng
Force n'importe quelle application TCP à passer par des proxies SOCKS4/5 ou HTTP. Fait transiter le trafic applicatif à travers des chaînes de proxies pour le pivoting, l'anonymisation et le contournement de restrictions réseau. Force any TCP application through SOCKS4/5 or HTTP proxies. Routes application traffic through proxy chains for pivoting, anonymization, and bypassing network restrictions.
↗ https://github.com/rofl0r/proxychains-ngOverview
proxychains-ng (next generation, successor to proxychains) forces any TCP application through a configured proxy chain (SOCKS4, SOCKS5, HTTP). Used for pivoting through compromised hosts, routing tools through Tor, or chaining multiple proxies for anonymization.
Configuration
# Config file: /etc/proxychains4.conf
# Edit to set proxy chain type and proxies
# Chain types:
# strict_chain — all proxies must be available, in order
# dynamic_chain — skip unavailable proxies
# random_chain — random order
# Add proxies at end of file:
# socks5 127.0.0.1 1080
# socks4 10.10.10.1 1080
# http 192.168.1.1 3128
Basic Usage
Run a command through configured proxies
proxychains4 nmap -sT -Pn 10.10.10.1
Run with a specific config file
proxychains4 -f /tmp/proxychains.conf curl http://internal.server/
Quiet mode (no chain output)
proxychains4 -q nmap 10.10.10.0/24
Force DNS through proxy too
proxychains4 -q ssh user@10.10.10.5
SSH Tunneling + proxychains
Step 1: Create a SOCKS5 proxy through SSH
ssh -D 1080 -N -q user@pivot-host &
Step 2: Configure proxychains to use it
echo "socks5 127.0.0.1 1080" >> /etc/proxychains4.conf
→ (comment out existing proxy lines)
# Step 3: Route tools through the tunnel
proxychains4 nmap -sT -Pn 192.168.10.0/24
proxychains4 evil-winrm -i 192.168.10.5 -u admin -p password
proxychains4 impacket-psexec admin:password@192.168.10.10
Metasploit SOCKS Proxy
# In Metasploit, set up SOCKS proxy through a session
msf > use auxiliary/server/socks_proxy
msf > set SRVHOST 127.0.0.1
msf > set SRVPORT 1080
msf > set VERSION 5
msf > run -j
Then use proxychains to reach internal network
proxychains4 -q nmap -sT -Pn 10.10.10.0/24
Chaining Multiple Proxies
/etc/proxychains4.conf:
strict_chain
[ProxyList]
socks5 127.0.0.1 1080 # First hop (through your SSH tunnel)
socks5 10.10.10.5 9050 # Second hop (through target's internal Tor)
Traffic: your_machine → pivot1 → pivot2 → target
proxychains4 curl http://internal.target/
Tips
- Use
dynamic_chainwhen some proxies in the chain may be unreliable - DNS leaks are common —
proxy_dnsoption in config forces DNS through proxy - Not all tools work well with proxychains — UDP tools especially may have issues
- For penetration testing: combine with ligolo-ng for better performance than SSH -D
proxychains4 -qsilences the “[proxychains] config file found” messages
Help / Man page
proxychains4 [options] command [args]
-q Quiet mode (suppress chain output)
-f FILE Use specific config file
Config file (/etc/proxychains4.conf):
strict_chain All proxies required
dynamic_chain Skip unavailable proxies
random_chain Random proxy order
proxy_dns Route DNS through proxy
[ProxyList]
TYPE HOST PORT [USER PASS]
socks5 127.0.0.1 1080
http 10.0.0.1 3128 user pass
Vue d’ensemble
proxychains-ng (nouvelle génération, successeur de proxychains) force n’importe quelle application TCP à passer par une chaîne de proxies configurée (SOCKS4, SOCKS5, HTTP). Utilisé pour pivoter à travers des hôtes compromis, router des outils via Tor, ou chaîner plusieurs proxies pour l’anonymisation.
Configuration
# Fichier de config : /etc/proxychains4.conf
# À modifier pour définir le type de chaîne de proxy et les proxies
# Types de chaîne :
# strict_chain : tous les proxies doivent être disponibles, dans l'ordre
# dynamic_chain : ignore les proxies indisponibles
# random_chain : ordre aléatoire
# Ajouter des proxies à la fin du fichier :
# socks5 127.0.0.1 1080
# socks4 10.10.10.1 1080
# http 192.168.1.1 3128
Utilisation de base
# Lancer une commande à travers les proxies configurés
proxychains4 nmap -sT -Pn 10.10.10.1
# Lancer avec un fichier de config spécifique
proxychains4 -f /tmp/proxychains.conf curl http://internal.server/
# Mode silencieux (pas d'affichage de chaîne)
proxychains4 -q nmap 10.10.10.0/24
# Forcer aussi le DNS à passer par le proxy
proxychains4 -q ssh user@10.10.10.5
Tunneling SSH + proxychains
# Étape 1 : créer un proxy SOCKS5 via SSH
ssh -D 1080 -N -q user@pivot-host &
# Étape 2 : configurer proxychains pour l'utiliser
echo "socks5 127.0.0.1 1080" >> /etc/proxychains4.conf
→ (commenter les lignes de proxy existantes)
# Étape 3 : router les outils à travers le tunnel
proxychains4 nmap -sT -Pn 192.168.10.0/24
proxychains4 evil-winrm -i 192.168.10.5 -u admin -p password
proxychains4 impacket-psexec admin:password@192.168.10.10
Proxy SOCKS Metasploit
# Dans Metasploit, configurer un proxy SOCKS via une session
msf > use auxiliary/server/socks_proxy
msf > set SRVHOST 127.0.0.1
msf > set SRVPORT 1080
msf > set VERSION 5
msf > run -j
Puis utiliser proxychains pour atteindre le réseau interne
proxychains4 -q nmap -sT -Pn 10.10.10.0/24
Chaîner plusieurs proxies
/etc/proxychains4.conf :
strict_chain
[ProxyList]
socks5 127.0.0.1 1080 # Premier saut (via votre tunnel SSH)
socks5 10.10.10.5 9050 # Second saut (via le Tor interne de la cible)
Trafic : votre_machine → pivot1 → pivot2 → cible
proxychains4 curl http://internal.target/
Conseils
- Utilisez
dynamic_chainlorsque certains proxies de la chaîne peuvent être instables - Les fuites DNS sont courantes : l’option
proxy_dnsdans la config force le DNS à passer par le proxy - Tous les outils ne fonctionnent pas bien avec proxychains : les outils UDP en particulier peuvent poser problème
- Pour le pentest : combinez avec ligolo-ng pour de meilleures performances qu’avec SSH -D
proxychains4 -qsupprime les messages « [proxychains] config file found »
Aide / Page de manuel
proxychains4 [options] command [args]
-q Quiet mode (suppress chain output)
-f FILE Use specific config file
Config file (/etc/proxychains4.conf):
strict_chain All proxies required
dynamic_chain Skip unavailable proxies
random_chain Random proxy order
proxy_dns Route DNS through proxy
[ProxyList]
TYPE HOST PORT [USER PASS]
socks5 127.0.0.1 1080
http 10.0.0.1 3128 user pass