Retour aux mises à jour
New releaseAug 11, 2026

ligolo-ng v0.9.1

Un outil de tunneling/pivoting avancé, mais simple, qui utilise une interface TUN.

Partager

Ligolo-ng : Tunneling comme un VPN

Logo Ligolo

Un outil de tunneling avancé, mais simple, qui utilise des interfaces TUN.

GPLv3 GitHub Sponsors GitHub Downloads (all assets, all releases)

📑 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 !

Ligolo Web

Table des matières

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

Ligolo-ng-demo.webm

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)

Catégories