Realizar un escaneo de puertos básico usando db_nmap en Metasploit

Kali LinuxBeginner
Practicar Ahora

Introducción

Metasploit Framework es una potente herramienta de código abierto para desarrollar, probar y ejecutar código de explotación contra una máquina objetivo remota. Una parte crítica de cualquier evaluación de seguridad es la recopilación de información, que incluye el escaneo de puertos para identificar puertos abiertos y servicios en ejecución.

Metasploit integra el popular escáner Nmap a través del comando db_nmap. La ventaja clave de db_nmap es que guarda automáticamente los resultados del escaneo directamente en la base de datos de Metasploit, lo que le permite administrar y consultar fácilmente los datos recopilados.

En este laboratorio, aprenderá a realizar escaneos de puertos básicos utilizando db_nmap y a ver los resultados dentro de la consola de Metasploit.

Seleccionar un espacio de trabajo para los resultados del escaneo

En este paso, iniciará la consola de Metasploit y creará un espacio de trabajo dedicado. Los espacios de trabajo en Metasploit le ayudan a organizar sus proyectos manteniendo hosts, servicios y otros datos recopilados separados para cada evaluación.

Primero, abra su terminal e inicie la consola de Metasploit Framework ejecutando el siguiente comando. Puede tardar un momento en cargarse.

msfconsole

Una vez que aparezca el prompt de msfconsole (msf6 >), puede crear y cambiar a un nuevo espacio de trabajo. Llamaremos a nuestro espacio de trabajo portscan_lab. Utilice la bandera -a para agregar un nuevo espacio de trabajo.

workspace -a portscan_lab

Debería ver un mensaje de confirmación.

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

Para confirmar que se encuentra en el espacio de trabajo correcto, puede ejecutar el comando workspace sin argumentos. El asterisco * indica el espacio de trabajo actualmente activo.

workspace

La salida listará todos los espacios de trabajo disponibles:

  default
* portscan_lab

Ahora que su espacio de trabajo está configurado, está listo para comenzar a escanear.

Ejecutar un escaneo TCP SYN usando db_nmap -sS

En este paso, realizará un escaneo TCP SYN. Este tipo de escaneo, también conocido como "escaneo sigiloso" o "escaneo half-open", es una opción popular porque es rápido y menos propenso a ser registrado por los sistemas objetivo. La bandera -sS indica a Nmap que realice un escaneo SYN.

Dentro del prompt de msfconsole, utilice el comando db_nmap para escanear su máquina local (localhost). Los resultados se guardarán automáticamente en su espacio de trabajo portscan_lab.

db_nmap -sS localhost

El comando ejecutará Nmap y mostrará su progreso y resultados. La salida se parecerá a la salida estándar de 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

El escaneo ha identificado varios puertos abiertos, y esta información ahora está almacenada en la base de datos de Metasploit.

Ejecutar un escaneo de detección de versiones de servicios usando db_nmap -sV

En este paso, realizará un escaneo más detallado para identificar las versiones específicas de los servicios que se ejecutan en los puertos abiertos. Conocer la versión del servicio es crucial para encontrar posibles vulnerabilidades. La bandera -sV habilita la detección de versiones en Nmap.

Ejecute el siguiente comando en su prompt de msfconsole. Este escaneo tardará un poco más que el anterior porque Nmap necesita interactuar con cada puerto abierto para sondear información de versión.

db_nmap -sV localhost

La salida será más detallada que el escaneo SYN. Observe la nueva columna VERSION, que contiene la información recopilada por las sondas de detección de versiones.

[*] 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 nueva información también se agrega automáticamente a la base de datos, actualizando los registros del host descubierto y sus servicios.

Listar hosts descubiertos en la base de datos con el comando hosts

En este paso, aprenderá a consultar la base de datos de Metasploit para ver los hosts que se han descubierto durante sus escaneos. El comando hosts proporciona un resumen de todos los hosts almacenados en el espacio de trabajo actual.

Ejecute el comando hosts en su prompt de msfconsole:

hosts

La salida será una tabla que lista todos los hosts encontrados. Dado que solo escaneó localhost, verá una entrada.

Hosts
=====

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

Este comando es una forma rápida de ver todos los objetivos que se han identificado y almacenado en el espacio de trabajo de su proyecto.

Listar servicios descubiertos con el comando services

En este paso, utilizará el comando services para ver información detallada sobre los puertos abiertos y los servicios descubiertos en los hosts de su base de datos. Este comando es especialmente útil después de ejecutar un escaneo de detección de versiones.

Ejecute el comando services en su prompt de msfconsole:

services

La salida mostrará una tabla detallada de todos los servicios encontrados. Observe cómo incluye el puerto, el protocolo, el nombre del servicio y la información de versión que recopiló en el Paso 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

El comando services le permite revisar rápidamente todos los puntos de entrada potenciales en sus sistemas objetivo, lo cual es una parte fundamental de la planificación de la siguiente fase de una evaluación de seguridad.

Resumen

En este laboratorio, ha aprendido con éxito los fundamentos para realizar escaneos de puertos dentro del Metasploit Framework.

Comenzó configurando un espacio de trabajo dedicado para mantener su proyecto organizado. Luego, utilizó el comando db_nmap para ejecutar tanto un escaneo rápido TCP SYN (-sS) como un escaneo más detallado de detección de versiones de servicios (-sV). Finalmente, aprendió a consultar la base de datos de Metasploit utilizando los comandos hosts y services para revisar los resultados del escaneo guardados automáticamente.

Este flujo de trabajo es una piedra angular de la fase de recopilación de información en las pruebas de penetración y el análisis de seguridad.