Pivoting / Tunneling / Port Forwarding
Para melhor exemplificação, todos os exemplos abaixo teremos os seguintes hosts:
192.168.15.5
Host atacante
192.168.15.10
Host alvo onde temos acesso
192.168.9.100
Segundo host alvo, onde não temos acesso direto. Somente 192.168.15.10 pode se comunicar com ele
Netsh
Utilitário do Windows que já vem nativos nas versão mais recentes. Uma observação importante a se fazer é que, para que isso funcione o sistema Windows deve ter o serviço IP Helper
em execução (verifique em services.msc
) e o suporte IPv6 deve estar habilitado para a interface que desejamos usar (verifique em ncpa.cpl
).
Neste cenário iremos realizar um encaminhamento de portas, onde o host atacante 192.168.15.5 irá acessar o host 192.168.9.100 na porta 445.
Execute o comando abaixo no host 192.168.15.10.
Obviamente o firewall do Windows não irá permitir que determinadas portas sejam utilizadas, então devemos utilizar o seguinte comando para contornar essa situação (levando em conta que temos acessos administrativos para tal ação):
Comprovando se deu certo
DICA: Sempre que for fazer encaminhamento da porta 445, verifique se o alvo (no caso um Windows) aceite somente o SMBv2 habilitado. Caso positivo, adicione min protocol = SMB2
no final do arquivo /etc/samba/smb.conf
e depois reinicie o serviço SMB com sudo service smbd restart
.
Em alguns casos, pode ser possível que o comando execute com sucesso, porém é exibido a seguinte mensagem: do_connect: Connection to 19.168.15.10 failed (Error NT_STATUS_IO_TIMEOUT) Failed to connect with SMB1 -- no workgroup available
.
Isso ocorre devido ao timeout do port forwarding. Nesse caso, o melhor a se fazer, é montar uma unidade de rede no Linux, através do comnado mount
.
PLINK
Irá realizar um acesso entre a máquina atacante e o segundo host alvo (192.168.9.100). No exemplo abaixo, o atacante poderá se conectar na porta 3306 (MySQL) do host 192.168.9.100, através da porta local 1234.
Execute o comando no host alvo (192.168.15.10) um dois modos abaixo:
Caso esteja no visuaol gráfica (rdesktop ou xfreerdp):
Caso esteja em uma reverse shell, execute o comando abaixo. Existe essa diferença, porque ao executar o PLINK, ele irá perguntar se deseja guardar um chave no Registro do Windows e como na reverse shell essa interação pode não existir, então devemos enviar a resposta na mesma requisição.
Comprovando se deu certo
Port Forwarding
---
Sites
Last updated