O que é um escudo reverso?
Índice
- o que é uma concha
- O que é um escudo reverso
- Por que os invasores/hackers precisam de um shell reverso
- Diferença entre atacar por WAN e LAN
- impedindo shell reverso
Primeiro, temos que saber o que é um shell antes de passar para o shell reverso. Isso é um casco como o das costas de uma tartaruga? esse não é o caso, mas é chamado de shell porque é a camada mais externa do sistema operacional. O que uma concha faz? Um shell é um programa que traduz nossos comandos para o sistema operacional. Essa é uma interface entre o sistema operacional e um usuário. Ele recebe comandos ou palavras-chave do teclado e os fornece ao sistema operacional, e o terminal/CLI (interface de linha de comando) permite que você digite comandos e interaja com o shell. Existem pensamentos mais profundos sobre o shell, mas não os declararei, pois este blog se concentrará principalmente no shell reverso.
O que é um escudo reverso?
Aposto que você já ouviu falar bastante desse termo em vídeos tutoriais e CTFs, mas ainda não sabe o significado deles. Este é o lugar certo para você. O significado de um shell reverso está no nome. Ele faz o oposto do que uma conexão remota normal faz - o usuário que é um cliente conectando o servidor que é um alvo principalmente para os invasores. O servidor escuta conexões de usuários em portas específicas. Por exemplo, um servidor da Web escutará na porta 443 a conexão de entrada para que possa fornecer o serviço que o usuário deseja, que é um site. Como o shell reverso faz o oposto? em casos de shell reverso, o servidor inicia uma conexão remota e o usuário que é um invasor escutará na porta à qual o servidor tentará se conectar. Por exemplo, uma carga de shell reversa é injetada no servidor web. Nessa carga, você pode ver o endereço IP do seu laptop ou PC e o número da porta à qual deseja que o servidor se conecte. digamos 192.168.1.1 e a porta é 4444 no payload. Antes mesmo de injetar a carga útil, você terá que escutar nessa porta usando ferramentas como o Netcat. Depois de injetar, você obterá a conexão do servidor para o seu dispositivo.
Por que os invasores precisam de um shell reverso?
Por que os invasores precisam deles? De um modo geral, é por causa do firewall. O firewall limita o tráfego de entrada que é enviado pelo invasor ao servidor, mas não limita o tráfego de saída que o servidor envia aos usuários/atacantes. Os servidores atacados geralmente permitem conexões apenas em portas específicas. Por exemplo, um servidor web dedicado só aceitará conexões nas portas 80 e 443. Isso significa que não há possibilidade de estabelecer um shell listener no servidor atacado.
Por outro lado, os firewalls geralmente não limitam as conexões de saída. Portanto, um invasor pode criar a conexão reversa configurando o ouvinte e, nesse caso, o servidor agirá como um usuário e enviará o tráfego ao invasor. Tudo o que o invasor precisa é de uma máquina que tenha o endereço IP e uma ferramenta como o Netcat para criar o ouvinte e vincular o acesso do shell a ele.
Diferença entre atacar por WAN e LAN
Estabelecer o shell reverso na LAN é bastante simples. Você só precisa saber seu endereço IP privado e o endereço IP privado da vítima. Digamos que você esteja na rede 192.168.1.0 e seu endereço IP seja 192.168.1.10; o endereço IP da vítima é 192.168.1.20. Agora, você obterá a conexão injetando uma carga útil com seu endereço IP e a porta à qual deseja que a vítima se conecte.
Que tal WAN? É aqui que fica um pouco complicado. O que temos que fazer é substituir nosso IP privado por IP público que você pode encontrar no google pesquisando assim: “qual é o meu endereço IP público”. Terminamos aqui? Na verdade não, mas estamos um passo mais perto. Digamos que você já tenha uma maneira ou encontre uma vulnerabilidade para injetar uma carga de shell reverso no servidor. A vítima/servidor atacado tentará se conectar ao seu endereço IP público porque você colocou seu IP público em sua carga útil. A solicitação que a vítima envia chegará ao seu roteador antes do seu ouvinte em sua máquina. Seu roteador deve saber para onde encaminhar essa solicitação para os dispositivos conectados ao roteador. Isso pode ser feito habilitando o Port Forwarding no seu roteador,
Este ataque tem menos carga de trabalho se o seu endereço IP público for estático, o que não é necessário e não é comum. O IP público do seu roteador fornecido pelo seu ISP pode ou não ser estático. O endereço IP dinâmico é o que geralmente temos em comum com o IP público. IP dinâmico significa que seu IP público será alterado sempre que você restabelecer sua conexão com a Internet (reiniciar o roteador, etc.). Nesse caso, seu IP anterior gravado no payload é inútil. Mas ainda existem maneiras mais criativas e outras maneiras de fazer isso de maneira diferente desse método.
aqui está uma folha de dicas de shell reverso para todos vocês.
Como prevenir?
A melhor maneira de evitar shells reversos é proteger contra ataques que permitem que impostores obtenham acesso ao shell em primeiro lugar. Você pode desativar a maioria das ferramentas que possibilitam a criação de um shell reverso. Como você pode ver acima na folha de dicas, shells reversos podem ser criados usando diferentes ferramentas e linguagens. Portanto, você pode tornar mais difícil para o atacante, mas não impossível.
Referência
Colaboradores da Wikipédia. (2022, 18 de outubro). Shellcode . Wikipédia.https://en.wikipedia.org/wiki/Shellcode
Nidecki. (2019, 26 de agosto). O que é um shell reverso . Acunetix.https://www.acunetix.com/blog/web-security-zone/what-is-reverse-shell/
GeeksforGeeks. (2022, 27 de setembro). Diferença entre Bind Shell e Reverse Shell .https://www.geeksforgeeks.org/difference-between-bind-shell-and-reverse-shell/





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)