Introducción
En esta práctica de laboratorio, aprenderás los fundamentos del escaneo de redes utilizando Nmap (Network Mapper), una potente herramienta de código abierto para la exploración de redes y auditoría de seguridad. Comenzarás con escaneos de puertos básicos, avanzarás hacia la detección de servicios y versiones, y luego explorarás el Motor de Scripts de Nmap (NSE) para realizar comprobaciones de vulnerabilidades. Finalmente, aprenderás a analizar y guardar los resultados de tus escaneos en diversos formatos para la elaboración de informes. Esta práctica proporciona una introducción práctica y guiada paso a paso a las funciones principales de Nmap para una evaluación eficaz de la seguridad de la red.
Realizar un Escaneo de Red Básico
En este primer paso, te familiarizarás con Nmap realizando un escaneo básico. Un escaneo básico se utiliza para descubrir qué puertos están abiertos en una máquina objetivo. Un puerto abierto indica que un servicio (como un servidor web o SSH) se está ejecutando y está a la escucha de conexiones.
El entorno de laboratorio ha sido preconfigurado con varios servicios ejecutándose en localhost (tu propia máquina virtual) para que puedas practicar. La herramienta nmap ya está instalada.
Primero, verifiquemos que Nmap esté instalado y comprobemos su versión. Abre la terminal y ejecuta el siguiente comando:
nmap --versionDeberías ver una salida que confirme la versión de Nmap, similar a esta:
Nmap version 7.80 ( https://nmap.org ) Platform: x86_64-pc-linux-gnu Compiled with: liblua-5.3.3 openssl-1.1.1f libssh2-1.8.0 libz-1.2.11 libpcre-8.39 nmap-libpcap-1.9.1 Compiled without: Available nsock engines: epoll poll selectAhora, realiza tu primer escaneo contra
localhost. Este comando le indica a Nmap que busque los puertos abiertos más comunes en tu máquina local.nmap localhostExamina el resultado. Nmap enumerará los puertos que encontró abiertos, junto con su estado y el servicio común asociado a dicho puerto. La salida se verá parecida a esta, mostrando los servicios preparados para esta práctica:
Starting Nmap 7.80 ( https://nmap.org ) at ... Nmap scan report for localhost (127.0.0.1) Host is up (0.000092s latency). Not shown: 995 closed ports PORT STATE SERVICE 22/tcp open ssh 2121/tcp open ccproxy-ftp 2222/tcp open EtherNetIP-1 3001/tcp open nessus 8080/tcp open http-proxy Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Este escaneo inicial te proporciona un mapa de los servicios en ejecución, lo cual es el primer paso en cualquier evaluación de seguridad de red.
Detectar Versiones de Servicios
Saber qué puertos están abiertos es útil, pero conocer el software exacto y la versión que se ejecuta en esos puertos es mucho más valioso para un analista de seguridad. El software desactualizado es una de las principales fuentes de vulnerabilidades. En este paso, utilizarás Nmap para realizar la detección de servicios y versiones.
Utilizaremos el parámetro -sV, que instruye a Nmap para sondear los puertos abiertos y determinar información detallada sobre el servicio y su versión.
Ejecuta un escaneo de detección de versiones contra
localhost. Para que el escaneo sea más eficiente, nos enfocaremos en los puertos específicos que descubrimos en el Paso 1 (22, 2121, 2222, 3001, 8080) en lugar de escanear todos los puertos.nmap -sV -p 22,8080 localhostConsejo Profesional: Apuntar a puertos específicos reduce drásticamente el tiempo de escaneo. Un escaneo de rango completo de puertos con
-sVpuede tardar varios minutos, mientras que este enfoque dirigido suele completarse en segundos.Compara el resultado con el escaneo básico del Paso 1. Ahora verás una columna adicional,
VERSION, que proporciona detalles sobre el software que se ejecuta en cada puerto.La salida será más detallada, similar a esta:
Starting Nmap 7.80 ( https://nmap.org ) at ... Nmap scan report for localhost (127.0.0.1) Host is up (0.00011s latency). Not shown: 995 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 (Ubuntu Linux; protocol 2.0) 8080/tcp open http nginx 1.18.0 (Ubuntu) Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Nmap done: 1 IP address (1 host up) scanned in 2.15 seconds
Esta información es crítica. Por ejemplo, si el escaneo revelara una versión antigua de nginx con una vulnerabilidad crítica conocida, sabrías exactamente dónde centrar tus esfuerzos de remediación.
Usar el Motor de Scripts de Nmap (NSE)
El Motor de Scripts de Nmap (NSE) es una de las características más potentes de Nmap. Permite automatizar una amplia variedad de tareas de red utilizando una biblioteca de scripts. Estos scripts pueden usarse para descubrimiento avanzado, detección de vulnerabilidades e incluso explotación.
En este paso, utilizarás el parámetro -sC, que ejecuta un conjunto de scripts predeterminados que se consideran seguros y útiles para el descubrimiento inicial.
Ejecuta un escaneo de Nmap con los scripts por defecto activados contra
localhost. El parámetro-sCes una forma conveniente de obtener más información sin tener que especificar scripts individuales.nmap -sC localhostRevisa el resultado. Verás información adicional indentada debajo de cada puerto. Esta es la salida de los scripts de NSE. Por ejemplo, el script
http-titlepodría obtener el título de la página web en el puerto8080, y los scripts de SSL podrían informar sobre los detalles del certificado.La salida será aún más extensa:
Starting Nmap 7.80 ( https://nmap.org ) at ... Nmap scan report for localhost (127.0.0.1) Host is up (0.000099s latency). Other addresses for localhost (not scanned): ::1 Not shown: 995 closed ports PORT STATE SERVICE 22/tcp open ssh 2121/tcp open ccproxy-ftp 2222/tcp open EtherNetIP-1 3001/tcp open nessus | ssl-cert: Subject: commonName=localhost | Subject Alternative Name: DNS:localhost | Not valid before: 2024-07-18T03:37:05 |_Not valid after: 2034-07-16T03:37:05 8080/tcp open http-proxy |_http-open-proxy: Proxy might be redirecting requests |_http-title: Site doesn't have a title (text/html). Nmap done: 1 IP address (1 host up) scanned in 0.62 seconds
Como puedes observar, los scripts por defecto descubrieron que se permite el inicio de sesión anónimo por FTP en el puerto 2121 y recuperaron el título de la página web en el puerto 8080. Esta es inteligencia valiosa recopilada de forma automática.
Ejecutar un Escaneo de Vulnerabilidades
Ahora es el momento de buscar vulnerabilidades. El NSE incluye una categoría de scripts diseñados específicamente para comprobar fallos de seguridad conocidos. Puedes ejecutar todos los scripts de la categoría vuln para realizar un escaneo de vulnerabilidades amplio.
Es una buena práctica guardar siempre la salida de escaneos largos o importantes en un archivo. Utilizaremos el parámetro -oN para guardar el resultado en el formato normal de Nmap.
Primero, combinemos lo que has aprendido. Ejecuta un escaneo que incluya detección de servicios (
-sV) y ejecute todos los scripts de vulnerabilidad (--script vuln). Guarda el resultado en un archivo llamadovuln_scan.txt.nmap -sV --script vuln -oN vuln_scan.txt localhostEste escaneo puede tardar unos minutos, ya que está ejecutando muchos scripts contra cada puerto abierto.
Una vez que el escaneo se haya completado, se creará un archivo llamado
vuln_scan.txten tu directorio actual (/home/labex/project). Puedes ver su contenido usando el comandocat:cat vuln_scan.txtEl archivo de salida es extenso, por lo que es más eficiente buscar palabras clave. Usa
greppara buscar líneas que indiquen una vulnerabilidad. El término "VULNERABLE" es un indicador claro.grep "VULNERABLE" vuln_scan.txtDeberías ver una salida que muestre cualquier vulnerabilidad encontrada. En este entorno de laboratorio, es probable que veas una vulnerabilidad relacionada con el filtro de rangos de bytes (byterange) de Apache:
| VULNERABLE: | State: VULNERABLEPara ver los detalles completos de la vulnerabilidad, puedes buscar el CVE específico o revisar la salida completa del escaneo. Por ejemplo, podrías encontrar una vulnerabilidad de Denegación de Servicio (DoS) en Apache (CVE-2011-3192) en el puerto 8080. Ten en cuenta que también podrías ver algunos errores de script (como
clamav-exec: ERROR), lo cual es normal y puede ignorarse; esto ocurre cuando ciertos scripts de vulnerabilidad no pueden ejecutarse correctamente en el entorno del laboratorio.
Este paso demuestra cómo sondear activamente en busca de debilidades, pasando de un simple descubrimiento a una auditoría de seguridad dirigida.
Guardar y Formatear los Hallazgos del Escaneo
Documentar e informar adecuadamente tus hallazgos es una habilidad crítica para cualquier profesional de la seguridad. Nmap admite varios formatos de salida adecuados para diferentes propósitos. En este paso final, aprenderás a guardar tus resultados en múltiples formatos y a crear un informe HTML fácil de leer.
Primero, crea un directorio dedicado para mantener tus informes organizados.
mkdir -p ~/project/reportsAhora, ejecuta el escaneo nuevamente, pero esta vez guarda la salida en dos formatos simultáneamente: texto normal (
-oN) y XML (-oX). El XML es un formato estructurado ideal para ser procesado por otras herramientas.nmap -sV -p 8080 --script vuln -oN ~/project/reports/scan_report.txt -oX ~/project/reports/scan_report.xml localhostEl formato XML no es muy legible para los humanos. Nmap proporciona una utilidad llamada
xsltprocpara convertir el archivo XML en un informe HTML limpio. Ejecuta el siguiente comando para generarscan_report.html.xsltproc ~/project/reports/scan_report.xml -o ~/project/reports/scan_report.htmlVerifiquemos que todos tus archivos de informe se hayan creado en el directorio
~/project/reports. Usa el comandols -lpara listar los archivos y sus detalles.ls -l ~/project/reportsDeberías ver tus tres archivos de informe:
total 40 -rw-rw-r-- 1 labex labex 14276 Aug 28 15:12 scan_report.html -rw-rw-r-- 1 labex labex 5686 Aug 28 15:11 scan_report.txt -rw-rw-r-- 1 labex labex 14924 Aug 28 15:11 scan_report.xml
Ahora tienes un archivo de texto plano para una revisión rápida, un archivo XML para procesamiento automatizado y un archivo HTML para compartir y presentar fácilmente.
Resumen
En esta práctica de laboratorio, has adquirido experiencia práctica con Nmap, una herramienta fundamental en ciberseguridad. Comenzaste realizando escaneos de puertos básicos para identificar servicios abiertos en un host de red. Luego progresaste hacia técnicas más avanzadas, incluyendo la detección de versiones de servicios (-sV) para identificar software específico y su versión. También exploraste el potencial del Motor de Scripts de Nmap (NSE) ejecutando scripts predeterminados (-sC) y un escaneo completo de vulnerabilidades (--script vuln). Finalmente, aprendiste la práctica profesional de guardar los resultados del escaneo en múltiples formatos (-oN, -oX) y convertirlos en un informe HTML legible para su análisis y documentación. Estas habilidades constituyen una base sólida para utilizar Nmap en evaluaciones de seguridad de red en el mundo real.



