Realizar uma Varredura Básica de Portas usando db_nmap no Metasploit

Kali LinuxBeginner
Pratique Agora

Introdução

O Metasploit Framework é uma poderosa ferramenta de código aberto para desenvolver, testar e executar código de exploit contra uma máquina alvo remota. Uma parte crítica de qualquer avaliação de segurança é a coleta de informações, que inclui a varredura de portas para identificar portas abertas e serviços em execução.

O Metasploit integra o popular scanner Nmap através do comando db_nmap. A principal vantagem do db_nmap é que ele salva automaticamente os resultados da varredura diretamente no banco de dados do Metasploit, permitindo que você gerencie e consulte facilmente os dados coletados.

Neste laboratório, você aprenderá a realizar varreduras de portas básicas usando db_nmap e a visualizar os resultados dentro do console do Metasploit.

Selecionar um workspace para os resultados da varredura

Nesta etapa, você iniciará o console do Metasploit e criará um workspace dedicado. Workspaces no Metasploit ajudam a organizar seus projetos, mantendo hosts, serviços e outros dados coletados separados para cada avaliação.

Primeiro, abra seu terminal e inicie o console do Metasploit Framework executando o seguinte comando. Pode levar um momento para carregar.

msfconsole

Assim que o prompt msfconsole (msf6 >) aparecer, você poderá criar e alternar para um novo workspace. Chamaremos nosso workspace de portscan_lab. Use o flag -a para adicionar um novo workspace.

workspace -a portscan_lab

Você deverá ver uma mensagem de confirmação.

[*] Added workspace: portscan_lab
[*] Workspace: portscan_lab

Para confirmar que você está no workspace correto, pode executar o comando workspace sem nenhum argumento. O asterisco * indica o workspace atualmente ativo.

workspace

A saída listará todos os workspaces disponíveis:

  default
* portscan_lab

Agora que seu workspace está configurado, você está pronto para começar a varredura.

Executar uma varredura TCP SYN usando db_nmap -sS

Nesta etapa, você realizará uma varredura TCP SYN. Este tipo de varredura, também conhecido como "stealth scan" ou "half-open scan", é uma escolha popular porque é rápido e menos propenso a ser registrado por sistemas alvo. O flag -sS instrui o Nmap a realizar uma varredura SYN.

Dentro do prompt msfconsole, use o comando db_nmap para escanear sua máquina local (localhost). Os resultados serão automaticamente salvos em seu workspace portscan_lab.

db_nmap -sS localhost

O comando executará o Nmap e exibirá seu progresso e resultados. A saída será semelhante à saída padrão do Nmap.

[*] Nmap: Starting Nmap 7.94 ( https://nmap.org ) at ...
[*] Nmap: Nmap scan report for localhost (127.0.0.1)
[*] Nmap: Host is up (0.000084s latency).
[*] Nmap: Other addresses for localhost (not scanned): ::1
[*] Nmap: Not shown: 997 closed tcp ports (reset)
[*] Nmap: PORT     STATE SERVICE
[*] Nmap: 22/tcp   open  ssh
[*] Nmap: 5432/tcp open  postgresql
[*] Nmap: 6200/tcp open  oracle-tns
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

A varredura identificou várias portas abertas, e esta informação está agora armazenada no banco de dados do Metasploit.

Executar uma varredura de detecção de versão de serviço usando db_nmap -sV

Nesta etapa, você realizará uma varredura mais detalhada para identificar as versões específicas dos serviços em execução nas portas abertas. Saber a versão do serviço é crucial para encontrar vulnerabilidades potenciais. O flag -sV habilita a detecção de versão no Nmap.

Execute o seguinte comando no seu prompt msfconsole. Esta varredura levará um pouco mais de tempo do que a anterior, pois o Nmap precisa interagir com cada porta aberta para sondar informações de versão.

db_nmap -sV localhost

A saída será mais detalhada do que a varredura SYN. Observe a nova coluna VERSION, que contém as informações coletadas pelas sondas de detecção de versão.

[*] Nmap: Starting Nmap 7.94 ( https://nmap.org ) at ...
[*] Nmap: Nmap scan report for localhost (127.0.0.1)
[*] Nmap: Host is up (0.00011s latency).
[*] Nmap: Other addresses for localhost (not scanned): ::1
[*] Nmap: Not shown: 997 closed tcp ports (reset)
[*] Nmap: PORT     STATE SERVICE VERSION
[*] Nmap: 22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
[*] Nmap: 5432/tcp open  postgresql PostgreSQL DB 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)
[*] Nmap: 6200/tcp open  unknown
[*] Nmap: Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 6.78 seconds

Esta nova informação também é adicionada automaticamente ao banco de dados, atualizando os registros do host descoberto e seus serviços.

Listar hosts descobertos no banco de dados com o comando hosts

Nesta etapa, você aprenderá como consultar o banco de dados do Metasploit para visualizar os hosts que foram descobertos durante suas varreduras. O comando hosts fornece um resumo de todos os hosts armazenados no workspace atual.

Execute o comando hosts no seu prompt msfconsole:

hosts

A saída será uma tabela listando todos os hosts encontrados. Como você apenas escaneou localhost, verá uma entrada.

Hosts
=====

address      mac  name       os_name  os_flavor  os_sp  purpose  info  comments
-------      ---  ----       -------  ---------  -----  -------  ----  --------
127.0.0.1         localhost  Linux               Linux  device

Este comando é uma maneira rápida de ver todos os alvos que foram identificados e armazenados no workspace do seu projeto.

Listar serviços descobertos com o comando services

Nesta etapa, você usará o comando services para visualizar informações detalhadas sobre as portas abertas e os serviços descobertos nos hosts em seu banco de dados. Este comando é especialmente útil após a execução de uma varredura de detecção de versão.

Execute o comando services no seu prompt msfconsole:

services

A saída exibirá uma tabela detalhada de todos os serviços encontrados. Observe como ela inclui a porta, o protocolo, o nome do serviço e as informações de versão que você coletou na Etapa 3.

Services
========

Host       Port  Proto  Name        State  Info
----       ----  -----  ----        -----  ----
127.0.0.1  22    tcp    ssh         open   OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
127.0.0.1  5432  tcp    postgresql  open   PostgreSQL DB 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)
127.0.0.1  6200  tcp    unknown     open

O comando services permite que você revise rapidamente todos os pontos de entrada potenciais em seus sistemas de destino, o que é uma parte fundamental do planejamento da próxima fase de uma avaliação de segurança.

Resumo

Neste laboratório, você aprendeu com sucesso os fundamentos da realização de varreduras de portas dentro do Metasploit Framework.

Você começou configurando um workspace dedicado para manter seu projeto organizado. Em seguida, usou o comando db_nmap para executar tanto uma varredura TCP SYN rápida (-sS) quanto uma varredura de detecção de versão de serviço mais detalhada (-sV). Finalmente, você aprendeu como consultar o banco de dados do Metasploit usando os comandos hosts e services para revisar os resultados da varredura salvos automaticamente.

Este fluxo de trabalho é um pilar da fase de coleta de informações em testes de penetração e análise de segurança.