← retour aux outils back to tools

# 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