
ligolo-ng v0.9.1
Uno strumento avanzato, ma semplice, per tunneling/pivoting che utilizza un'interfaccia TUN.
Ligolo-ng : Tunnel come una VPN

Uno strumento di tunneling avanzato ma semplice che utilizza interfacce TUN.
📑 Documentazione Ligolo-ng (Setup/Quickstart)
[!TIP] Ligolo-ng 0.8 ha aggiunto molte nuove funzionalità, tra cui:
- 🌐 API e una splendida interfaccia web grazie a L'ami du Raisin, che permette il multiplayer!
- ⚙️ File di configurazione semplice, per mantenere le impostazioni di tunneling/proxy
- 🚦 Modalità demone, per eseguire Ligolo-ng come servizio
- 🔗 Auto-bind, per configurare automaticamente il tunneling ogni volta che un agente specifico si connette
- 📶 Gestione facile e automatica (autoroute) delle rotte e delle interfacce su Windows, Linux, MacOS e BSD!
- 💀 Agent kill, per terminare un agente da remoto
Provatelo!
Indice
- Introduzione
- Caratteristiche
- Demo
- In cosa differisce da Ligolo/Chisel/Meterpreter... ?
- Come usare - documentazione - tutorial
- Richiede privilegi di amministratore/root ?
- Protocolli/pacchetti supportati
- Prestazioni
- Avvertenze
- Da fare
- Crediti
Introduzione
Ligolo-ng è uno strumento semplice, leggero e veloce che consente ai pentester di stabilire tunnel da una connessione TCP/TLS inversa utilizzando una interfaccia tun (senza la necessità di SOCKS).
Caratteristiche
- Interfaccia Tun (niente più SOCKS/Proxychains!)
- UI semplice con selezione dell'agente e informazioni di rete
- Facile da usare e configurare
- Configurazione automatica dei certificati con Let's Encrypt
- Performante (multiplexing)
- Non richiede privilegi sull'agente
- Ascolto/binding socket sull'agente
- Piattaforme multiple supportate per l'agente
- Può gestire più tunnel
- Connessione inversa/bind
- Recupero automatico dei tunnel/listener (in caso di problemi di rete)
- Supporto Websocket
Demo
In cosa differisce da Ligolo/Chisel/Meterpreter... ?
Invece di usare un proxy SOCKS o forwarder TCP/UDP, Ligolo-ng crea uno stack di rete in userland utilizzando Gvisor.
Quando si esegue il server relay/proxy, viene utilizzata un'interfaccia tun, i pacchetti inviati a questa interfaccia vengono tradotti e quindi trasmessi alla rete remota dell'agente.
Ad esempio, per una connessione TCP:
- I SYN vengono tradotti in connect() sul remoto
- SYN-ACK viene inviato indietro se connect() ha successo
- RST viene inviato se le syscall ECONNRESET, ECONNABORTED o ECONNREFUSED vengono restituite dopo connect
- Nulla viene inviato in caso di timeout
Ciò consente di eseguire strumenti come nmap senza l'uso di proxychains (più semplice e veloce).
Come usare - documentazione - tutorial
Troverai la documentazione per Ligolo-ng, così come i passaggi da seguire per metterlo in funzione nella Documentazione Ligolo-ng
Richiede privilegi di amministratore/root ?
Dal lato dell'agente, no! Tutto può essere eseguito senza accesso amministrativo.
Tuttavia, sul tuo server relay/proxy, devi essere in grado di creare un'interfaccia tun.
Protocolli/pacchetti supportati
- TCP
- UDP
- ICMP (richieste echo)
Prestazioni
Puoi facilmente raggiungere più di 100 Mbit/sec. Ecco un test usando iperf da un server a 200 Mbit/s a una connessione a 200 Mbit/s.
$ iperf3 -c 10.10.0.1 -p 24483
Connecting to host 10.10.0.1, port 24483
[ 5] local 10.10.0.224 port 50654 connected to 10.10.0.1 port 24483
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 12.5 MBytes 105 Mbits/sec 0 164 KBytes
[ 5] 1.00-2.00 sec 12.7 MBytes 107 Mbits/sec 0 263 KBytes
[ 5] 2.00-3.00 sec 12.4 MBytes 104 Mbits/sec 0 263 KBytes
[ 5] 3.00-4.00 sec 12.7 MBytes 106 Mbits/sec 0 263 KBytes
[ 5] 4.00-5.00 sec 13.1 MBytes 110 Mbits/sec 2 134 KBytes
[ 5] 5.00-6.00 sec 13.4 MBytes 113 Mbits/sec 0 147 KBytes
[ 5] 6.00-7.00 sec 12.6 MBytes 105 Mbits/sec 0 158 KBytes
[ 5] 7.00-8.00 sec 12.1 MBytes 101 Mbits/sec 0 173 KBytes
[ 5] 8.00-9.00 sec 12.7 MBytes 106 Mbits/sec 0 182 KBytes
[ 5] 9.00-10.00 sec 12.6 MBytes 106 Mbits/sec 0 188 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 127 MBytes 106 Mbits/sec 2 sender
[ 5] 0.00-10.08 sec 125 MBytes 104 Mbits/sec receiver
Avvertenze
Poiché l'agente è in esecuzione senza privilegi, non è possibile inoltrare pacchetti grezzi.
Quando si esegue un NMAP SYN-SCAN, viene eseguita una connect() TCP sull'agente.
Quando si usa nmap, è necessario usare --unprivileged o -PE per evitare falsi positivi.
Da fare
- Non inviare RST quando si riceve un ACK da una connessione TCP non valida (nmap segnalerà l'host come attivo);
- Aggiungere supporto mTLS.
Crediti
- Nicolas Chatelain <nicolas -at- chatelain.me>
- Jeremie Bedjai (Ligolo-ng-Web)
