
ligolo-ng v0.9.1
Uma ferramenta avançada, mas simples, de tunelamento/pivoting que usa uma interface TUN.
Ligolo-ng : Tunelamento como uma VPN

Uma ferramenta de tunelamento avançada, porém simples, que utiliza interfaces TUN.
📑 Documentação do Ligolo-ng (Configuração/Início rápido)
[!TIP] O Ligolo-ng 0.8 adicionou muitos novos recursos, incluindo:
- 🌐 API e uma bela Interface Web graças ao L'ami du Raisin, permitindo multijogador!
- ⚙️ Arquivo de configuração simples, para manter suas configurações de tunelamento/proxy
- 🚦 Modo daemon, para executar o Ligolo-ng como um serviço
- 🔗 Auto-bind, para configurar o tunelamento automaticamente sempre que um agente específico se conectar
- 📶 Gerenciamento fácil e automático (autoroute) de rotas e interfaces em Windows, Linux, MacOS e BSD!
- 💀 Agent kill, para encerrar remotamente um agente
Experimente!
Tabela de Conteúdos
- Introdução
- Recursos
- Demo
- Como isso é diferente do Ligolo/Chisel/Meterpreter... ?
- Como usar - documentação - tutorial
- Requer acesso de Administrador/root ?
- Protocolos/pacotes suportados
- Desempenho
- Ressalvas
- A fazer
- Créditos
Introdução
Ligolo-ng é uma ferramenta simples, leve e rápida que permite que pentesters estabeleçam túneis a partir de uma conexão TCP/TLS reversa usando uma interface tun (sem a necessidade de SOCKS).
Recursos
- Interface tun (Chega de SOCKS/Proxychains!)
- UI simples com seleção de agente e informações de rede
- Fácil de usar e configurar
- Configuração automática de certificados com Let's Encrypt
- Eficiente (Multiplexação)
- Não requer privilégios no agente
- Escuta/vinculação de socket no agente
- Múltiplas plataformas suportadas para o agente
- Pode gerenciar vários túneis
- Conexão reversa/bind
- Recuperação automática de túneis/listeners (em caso de problemas de rede)
- Suporte a Websocket
Demo
Como isso é diferente do Ligolo/Chisel/Meterpreter... ?
Em vez de usar um proxy SOCKS ou encaminhadores TCP/UDP, o Ligolo-ng cria uma pilha de rede em userland usando o Gvisor.
Ao executar o servidor relay/proxy, uma interface tun é usada; os pacotes enviados para essa interface são traduzidos e então transmitidos para a rede remota do agente.
Como exemplo, para uma conexão TCP:
- SYN são traduzidos para connect() no remoto
- SYN-ACK é enviado de volta se connect() for bem-sucedido
- RST é enviado se as syscalls ECONNRESET, ECONNABORTED ou ECONNREFUSED forem retornadas após connect
- Nada é enviado se houver timeout
Isso permite executar ferramentas como nmap sem o uso de proxychains (mais simples e rápido).
Como usar - documentação - tutorial
Você encontrará a documentação do Ligolo-ng, bem como os passos a seguir para colocá-lo em funcionamento, na Documentação do Ligolo-ng
Requer acesso de Administrador/root ?
No lado do agente, não! Tudo pode ser executado sem acesso administrativo.
No entanto, no seu servidor relay/proxy, você precisa ser capaz de criar uma interface tun.
Protocolos/pacotes suportados
- TCP
- UDP
- ICMP (solicitações de eco)
Desempenho
Você pode facilmente atingir mais de 100 Mbits/seg. Aqui está um teste usando iperf de um servidor de 200Mbits/s para uma conexão de 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
Ressalvas
Como o agente está sendo executado sem privilégios, não é possível encaminhar pacotes brutos (raw).
Quando você realiza um NMAP SYN-SCAN, um connect() TCP é executado no agente.
Ao usar nmap, você deve usar --unprivileged ou -PE para evitar falsos positivos.
A fazer
- Não enviar RST ao receber um ACK de uma conexão TCP inválida (o nmap reportará o host como ativo) ;
- Adicionar suporte a mTLS.
Créditos
- Nicolas Chatelain <nicolas -at- chatelain.me>
- Jeremie Bedjai (Ligolo-ng-Web)
