
ligolo-ng v0.9.1
Un outil de tunneling/pivoting avancé, mais simple, qui utilise une interface TUN.
Ligolo-ng : Tunneling comme un VPN

Un outil de tunneling avancé, mais simple, qui utilise des interfaces TUN.
📑 Documentation Ligolo-ng (Configuration/Démarrage rapide)
[!TIP] Ligolo-ng 0.8 a ajouté de nombreuses nouvelles fonctionnalités, notamment :
- 🌐 Une API et une magnifique interface web grâce à L'ami du Raisin, permettant le multijoueur !
- ⚙️ Un fichier de configuration simple, pour conserver vos paramètres de tunneling/proxy
- 🚦 Mode démon, pour exécuter Ligolo-ng en tant que service
- 🔗 Auto-bind, pour configurer automatiquement le tunneling lorsqu'un agent spécifique se connecte
- 📶 Gestion facile et automatique (autoroute) des routes et des interfaces sur Windows, Linux, MacOS et BSD !
- 💀 Agent kill, pour terminer un agent à distance
Essayez-le !
Table des matières
- Introduction
- Fonctionnalités
- Démo
- En quoi est-ce différent de Ligolo/Chisel/Meterpreter... ?
- Comment utiliser - documentation - tutoriel
- Est-ce que cela nécessite un accès Administrateur/root ?
- Protocoles/paquets pris en charge
- Performances
- Mises en garde
- À faire
- Crédits
Introduction
Ligolo-ng est un outil simple, léger et rapide qui permet aux pentesters d'établir des tunnels à partir d'une connexion TCP/TLS inverse en utilisant une interface tun (sans avoir besoin de SOCKS).
Fonctionnalités
- Interface tun (Fini SOCKS/Proxychains !)
- Interface utilisateur simple avec sélection de l'agent et informations réseau
- Facile à utiliser et à configurer
- Configuration automatique des certificats avec Let's Encrypt
- Performant (multiplexage)
- Ne requiert pas de privilèges sur l'agent
- Écoute/liaison de socket sur l'agent
- Plusieurs plateformes prises en charge pour l'agent
- Peut gérer plusieurs tunnels
- Connexion inverse/Bind
- Récupération automatique des tunnels/écouteurs (en cas de problèmes réseau)
- Prise en charge de Websocket
Démo
En quoi est-ce différent de Ligolo/Chisel/Meterpreter... ?
Au lieu d'utiliser un proxy SOCKS ou des forwarders TCP/UDP, Ligolo-ng crée une pile réseau en espace utilisateur à l'aide de Gvisor.
Lors de l'exécution du serveur relay/proxy, une interface tun est utilisée ; les paquets envoyés à cette interface sont traduits, puis transmis au réseau distant de l'agent.
Par exemple, pour une connexion TCP :
- Les SYN sont traduits en connect() sur le système distant
- Un SYN-ACK est renvoyé si connect() réussit
- Un RST est envoyé si les appels système ECONNRESET, ECONNABORTED ou ECONNREFUSED sont retournés après connect
- Rien n'est envoyé en cas de timeout
Cela permet d'exécuter des outils comme nmap sans utiliser proxychains (plus simple et plus rapide).
Comment utiliser - documentation - tutoriel
Vous trouverez la documentation de Ligolo-ng, ainsi que les étapes à suivre pour le mettre en route sur la Documentation Ligolo-ng
Est-ce que cela nécessite un accès Administrateur/root ?
Côté agent, non ! Tout peut être effectué sans accès administratif.
Cependant, sur votre serveur relay/proxy, vous devez être capable de créer une interface tun.
Protocoles/paquets pris en charge
- TCP
- UDP
- ICMP (requêtes d'écho)
Performances
Vous pouvez facilement dépasser les 100 Mbits/s. Voici un test utilisant iperf depuis un serveur 200Mbits/s vers une connexion 200Mbits/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
Mises en garde
Comme l'agent s'exécute sans privilèges, il n'est pas possible de transférer des paquets bruts. Lorsque vous effectuez un NMAP SYN-SCAN, un connect() TCP est effectué sur l'agent.
Lorsque vous utilisez nmap, vous devez utiliser --unprivileged ou -PE pour éviter les faux positifs.
À faire
- Ne pas envoyer de RST lorsqu'un ACK est reçu d'une connexion TCP invalide (nmap signalera l'hôte comme actif) ;
- Ajouter la prise en charge de mTLS.
Crédits
- Nicolas Chatelain <nicolas -at- chatelain.me>
- Jeremie Bedjai (Ligolo-ng-Web)
