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.


