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-ng

Overview

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_chain when some proxies in the chain may be unreliable
  • DNS leaks are common — proxy_dns option 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 -q silences 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_chain lorsque certains proxies de la chaîne peuvent être instables
  • Les fuites DNS sont courantes : l’option proxy_dns dans 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 -q supprime 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