Tunelamento em Redes: A Arte de Alcançar o Inalcançável.

Tunelamento em Redes: A Arte de Alcançar o Inalcançável.

O conceito de tunelamento em redes, muitas vezes associado a pivoting, oferece uma maneira poderosa de acessar dispositivos e serviços que não estão diretamente expostos à conexão inicial. Ao criar um túnel seguro através de um sistema comprometido, os invasores (e administradores de rede) podem alcançar recursos que normalmente estariam protegidos (ou indisponíveis) por firewalls,  roteamento e outras medidas de segurança.

Entendendo o Tunelamento

Em essência, o tunelamento envolve encapsular o tráfego de rede dentro de outro protocolo. Isso permite que os dados atravessem firewalls e NATs (Network Address Translation), que geralmente bloqueiam conexões diretas. O protocolo mais comum para tunelamento é o SSH (Secure Shell), devido à sua criptografia robusta e ampla disponibilidade.

Pivoting com Túneis

O pivoting é a técnica de usar um sistema comprometido como ponto de partida para atacar outros dispositivos na mesma rede. O tunelamento desempenha um papel crucial nesse processo, permitindo que o invasor acesse a rede interna a partir de sua própria máquina, como se estivesse fisicamente presente.

Exemplos Práticos:

Cenário:

Imagine que você, como um pentester ético, conseguiu acesso a um servidor web (192.168.1.10) dentro de uma rede corporativa. Seu objetivo é acessar um servidor de banco de dados (192.168.1.20) que está na mesma rede, mas não é diretamente acessível de fora.

Solução com SSH Tunneling:

  1. Criar o Túnel: Na sua máquina, execute o seguinte comando SSH:
ssh -L 8888:192.168.1.20:3306 usuario@IP_SERVIDOR_WEB
ssh -L 8888:192.168.1.20:3306 usuario@IP_SERVIDOR_WEB

Substitua usuário pelo nome de usuário no servidor web e IP_SERVIDOR WEB pelo endereço IP do servidor web.

  1. Acessar o Banco de Dados: Agora, você pode acessar o banco de dados localmente na porta 8888. Por exemplo, se você usa o MySQL:
mysql -u usuario_banco -p -h 127.0.0.1 -P 8888
mysql -u usuario_banco -p -h 127.0.0.1 -P 8888

Explicação:

  • A opção -L no comando SSH cria um túnel local.
  • 8888 é a porta na sua máquina que será usada para acessar o banco de dados.
  • 192.168.1.20:3306 é o endereço e porta do servidor de banco de dados na rede interna.

O SSH Tunneling encapsula o tráfego para o banco de dados dentro da conexão SSH com o servidor web, permitindo que você acesse o banco de dados como se ele estivesse na sua própria máquina.

Vantagens do SSH Tunneling:

  • Simples: Não requer a configuração de regras no servidor comprometido.
  • Seguro: O tráfego entre sua máquina e o servidor web é criptografado pelo SSH.
  • Flexível: Você pode criar túneis para diferentes portas e protocolos.

Solução com Iptables:

  1. Configurar o Redirecionamento de Portas: No servidor web comprometido, execute os seguintes comandos iptables:

Substitua IP_EXTERNO pelo seu endereço IP público.

  1. Conectar via SSH: Na sua máquina, inicie uma conexão SSH para o servidor web, especificando a porta 2222:
ssh -p 2222 usuario@IP_SERVIDOR_WEB
ssh -p 2222 usuario@IP_SERVIDOR_WEB

Substitua usuario pelo nome de usuário no servidor web e IP_SERVIDOR_WEB pelo endereço IP do servidor web.

  1. Acesso ao Banco de Dados: Agora, você estará conectado ao servidor de banco de dados (192.168.1.20) através do servidor web (192.168.1.10) como um pivô.

Explicação:

  • A primeira regra iptables habilita o encaminhamento de pacotes no servidor web, permitindo que ele atue como um roteador.
  • A segunda regra redireciona qualquer tráfego SSH destinado à porta 2222 do seu IP externo para a porta 22 do servidor de banco de dados.
  • A terceira regra permite que o tráfego SSH de resposta volte para sua máquina.

Observações:

  • Estes são exemplos simplificados. Em um cenário real, você precisaria considerar a configuração do firewall do servidor web e da rede, além de outras medidas de segurança.
  • O uso de pivoting pode ser detectado por sistemas de detecção de intrusão (IDS).
  • Este tipo de técnica deve ser usado apenas para fins de teste e com autorização prévia.

Considerações de Segurança para o uso de túneis

  • Criptografia: Utilize sempre protocolos de tunelamento criptografados, como SSH, para proteger o tráfego de interceptação.
  • Autenticação: Implemente mecanismos de autenticação fortes para evitar o acesso não autorizado aos túneis.
  • Monitoramento: Monitore o tráfego de rede para detectar atividades suspeitas que possam indicar o uso de túneis maliciosos.

Conclusão

O tunelamento é uma ferramenta poderosa que pode ser usada tanto para fins legítimos (como acesso remoto seguro) quanto para atividades maliciosas (como pivoting em ataques). Compreender como o tunelamento funciona é essencial para proteger suas redes e sistemas contra invasores.