En el panorama de la ciberseguridad, en constante cambio, resulta fundamental ir un paso por delante de los actores maliciosos, y comprender las complejidades de tus redes es una parte integral de ello. Una herramienta que puede ayudarte a hacerlo se ha ganado su reputación como incondicional de la ciberseguridad: Nmap. Nmap, abreviatura de Network Mapper (mapeador de red), tiene la llave para desvelar información valiosa sobre tu infraestructura de red. Tanto si eres un profesional de la ciberseguridad en busca de vulnerabilidades como un administrador de sistemas encargado de mantener la salud de tu red, entender cómo usar Nmap es esencial.
¿Qué es Nmap?
Nmap es una herramienta de código abierto utilizada para analizar credes y realizar auditorías de seguridad. Gracias a sus capacidades y versatilidad, este software se ha convertido en un elemento básico en el arsenal de los profesionales de la ciberseguridad, administradores de sistemas y hackers éticos. El conjunto de funciones de Nmap va más allá de la exploración básica de redes e incluye:
- Descubrimiento del host: Nmap identifica los hosts activos en una red, sentando las bases para una exploración más profunda.
- Exploración de puertos: Nmap descubre puertos y servicios abiertos, lo que permite a los administradores conocer la superficie de ataque de una red.
- Detección de versiones: Nmap puede identificar versiones de servicios y ayudar a localizar posibles vulnerabilidades asociadas a versiones específicas.
- Interacción programable: el NSE (Nmap Scripting Engine) de Nmap permite a los usuarios crear análisis a medida y automatizar tareas complejas.
- Huella digital del sistema operativo: las capacidades de detección de SO de Nmap permiten a los administradores identificar los sistemas operativos que se ejecutan en los hosts descubiertos, lo que ayuda con el inventario de la red y las evaluaciones de seguridad.
Entender Nmap: escaneado de redes y auditoría de seguridad
El escaneado de redes explora sistemáticamente una red informática para identificar sus componentes, evaluar su topología y descubrir posibles fallos de seguridad. Cuando los administradores saben cómo está configurada una red, pueden tomar decisiones de seguridad con conocimiento de causa y reforzar el perímetro digital.
Con su variada gama de técnicas de escaneado y su capacidad de personalización, Nmap es la herramienta líder para el análisis de redes y la auditoría de seguridad. Estas son algunas de las funciones que desempeña:
- Inventario de redes: Nmap puede elaborar una lista de todos los activos de software y servicios de una red y crear un «mapa» de una red con detalles que incluyen direcciones IP, puertos, versiones de software o servicios, sistemas operativos y direcciones MAC.
- Detección de vulnerabilidades: Nmap puede analizar una red en busca de vulnerabilidades comparando los sistemas operativos y las versiones de los servicios que se ejecutan en una red con las vulnerabilidades conocidas mediante el motor de secuencias de comandos de Nmap (NSE).
- Supervisión de redes: la supervisión de redes puede lograrse automatizando las tareas de escaneo con el motor de secuencias de comandos Nmap.
Empezar con Nmap
Instalar Nmap
El primer paso para usar Nmap es instalarlo en tu equipo. A continuación, veremos las instrucciones para los tres principales sistemas operativos. Puedes consultar la página de descargas de Nmap para cada proceso de instalación para asegurarte de que obtienes la última versión del software.
Instalar Nmap en Linux
La forma de instalar Nmap en Linux depende de la distribución que tengas. Para distribuciones basadas en RPM como Red Hat, Mandrake, SUSE y Fedora, ejecuta el siguiente comando:
yum install nmap
Para Debian Linux y sus derivados como Ubuntu, ejecuta este comando:
apt-get install nmap
En la mayoría de las distribuciones de Linux, ZenMap, la interfaz gráfica oficial de Nmap, debe instalarse por separado.
Instalar Nmap en Windows
Empieza dirigiéndote a la página de descargas de Nmap y descarga la última versión estable de Nmap para Windows. Una vez descargado, haz doble clic en el archivo de instalación. Haz clic en Sí cuando Windows te pregunte si deseas permitir que la aplicación realice cambios en tu dispositivo y acepta la licencia.
En el siguiente menú se te preguntará qué componentes deseas instalar. Todo lo que necesitas ya estará comprobado, incluido ZenMap si prefieres utilizar una interfaz gráfica de usuario. Haz clic en Siguiente en esta pantalla.
En la pantalla final de la instalación de Nmap, haz clic en Instalar.
Una vez instalado Nmap, aparecerá la pantalla de configuración de Npcap. Npcap es la versión para Windows de la librería libpcap, que soporta captura de paquetes y análisis de red y es necesaria para que Nmap funcione. Acepta esta licencia y haz clic en Instalar en la siguiente pantalla. A continuación, sólo tienes que seguir los pasos del proceso de instalación, dejando la configuración predeterminada como está. Una vez finalizada la instalación, tendrás un enlace Zenmap en tu escritorio y una carpeta en el menú de inicio.
Instalar Nmap en Mac
Hay un par de opciones para instalar Nmap en un ordenador Mac. La primera es sencilla si ya tienes Homebrew instalado. Sólo tienes que ejecutar el siguiente comando:
brew install nmap
También puedes visitar el Mapa de descargas de Nmap, desplazarte hasta la sección Mac OS X Binaries y descargar el último instalador de la versión estable, un archivo .dmg. Esta versión también incluye ZenMap. Sólo tienes que hacer doble clic en el archivo dmg para iniciar el instalador y seguir las instrucciones.
Comandos y sintaxis básicos de Nmap
Ahora que tienes Nmap instalado, puedes empezar a aprender algunos de los comandos básicos para poder empezar con el escaneo de redes:
Ayuda
Para obtener ayuda de Nmap, ni siquiera tienes que utilizar un parámetro. Basta con ejecutar nmap en un terminal.
nmap
Detección sencilla de hosts
El primer paso en la exploración de la red es el descubrimiento de hosts, que revela los dispositivos activos en la red. Aquí está ese comando:
nmap <target>
En el comando <target> puede haber una dirección IP, un nombre de host o un rango de direcciones IP. He aquí ejemplos de cada uno de ellos:
#Single IP nmap 127.0.0.1 #Hostname nmap example.com #Range of IPs nmap 192.168.10.0/24
Escaneo de ping
Este comando identifica hosts activos en tu red sin enviar ningún paquete al host. La sintaxis para esta exploración es:
nmap -sn <target>
Aquí, <target> también puede ser una dirección IP, un nombre de host o un rango de direcciones IP.
Escaneo básico de puertos
Puedes utilizar el escaneo básico de puertos para sondear los puertos y servicios abiertos en un objetivo. El comando es el siguiente:
nmap -p <port-range> <target>
Sustituye <port-range> con un único número de puerto o un rango de puertos (por ejemplo, 80, 443 o 1-1024) y <target> con la dirección IP o el nombre de host del destino.
Detección de versiones
Conocer las versiones de los servicios que se ejecutan en puertos abiertos es esencial para la evaluación de vulnerabilidades. Para activar la detección de versiones en un escaneo básico de puertos, sólo tienes que modificar el último comando de esta manera:
nmap -sV -p <port-range> <target>
El indicador -sV indica a Nmap que realice la detección de versiones en los puertos especificados.
Huella digital del sistema operativo
Nmap también puede determinar el sistema operativo de un host objetivo a través de la huella digital del SO cuando se utiliza el indicador -O. Aquí está ese comando:
nmap -O <target>
Aquí, <target> es una dirección IP o un nombre de host.
Usar Nmap para escanear la red
Ahora que conoces algunos de los comandos y opciones básicos de Nmap, vamos a ponerlos en práctica. Para seguir adelante, necesitarás un rango de IP para escanear. Para encontrar un rango en tu red, primero, encuentra la dirección IP de tu dispositivo. Para este artículo, usaremos 10.0.0.23, así que para nuestro rango IP, usaremos 10.0.0.0/24, que es la notación CIDR (Classless Inter-Domain Routing) que representa las 256 direcciones 10.0.0.0 – 10.0.0.255. También puedes utilizar scanme.nmap.org como objetivo para algunos de estos escaneos, que se creó para ayudar a la gente a aprender a utilizar Nmap.
Usar un escaneo de ping para identificar hosts activos
Un escaneo de ping constituye la base del descubrimiento de hosts, permitiéndote encontrar hosts activos con una red rápidamente. Para escanear mediante ping el rango de direcciones IP de mi red, ejecuta el siguiente comando:
nmap -sn 10.0.0.0/24
Y aquí está el resultado, que muestra cinco hosts en mi red:
Exploración de diferentes técnicas de escaneado de puertos
Nmap es mucho más que un simple escaneo de ping. Un escaneo de ping nos dirá las direcciones IP de los hosts, pero esos son los únicos datos que obtenemos del escaneo. Tendremos que explorar más técnicas de escaneado para obtener más información sobre los hosts.
Exploración de conexión TCP
El escaneo de conexión TCP es la técnica de escaneo más directa. Nmap establece un protocolo de enlace TCP completo de tres vías con cada puerto de destino para determinar su estado (abierto, cerrado o filtrado). He aquí un ejemplo utilizando una IP encontrada en un escaneo de ping:
nmap -sT 10.0.0.1
Este escaneo da una lista de los puertos en este host:
Escaneo SYN
El escaneo SYN, un escaneo semiabierto o sigiloso, envía paquetes SYN a los puertos objetivo sin completar el protocolo de enlace y evalúa las respuestas para determinar la apertura del puerto sin conectarse completamente. Esta técnica es más rápida que el escaneo de conexión TCP y es menos probable que se detecte. Aquí tienes un ejemplo de un escaneo SYN en esa misma dirección IP:
sudo nmap -sS 10.0.0.1
Como puedes observar, se ha utilizado sudo con este comando. Algunos comandos de Nmap requieren privilegios de root y devolverán este mensaje: «Has solicitado un tipo de análisis que requiere privilegios de root». Esto se debe a que enviar y recibir paquetes sin procesar requiere acceso root en un sistema Unix o Mac. En Windows, deberás utilizar una cuenta de administrador. Aquí están los resultados de ese escaneo:
Escaneo UDP
El escaneo UDP se dirige a los puertos UDP del host de destino. Dado que se trata de un protocolo sin conexión, para determinar el estado de un puerto UDP es necesario interpretar la respuesta o la ausencia de ella. Con este escaneo, Nmap detecta la limitación de velocidad y reduce la velocidad para evitar desbordamientos. Cuando esto ocurre, el escaneo puede durar mucho tiempo, hasta 18 horas, con un límite de un paquete por segundo. Por esta razón, utilizamos la opción -F para escanear sólo los 100 puertos principales en lugar de los 65.535.
He aquí un ejemplo que también requiere privilegios de root o una cuenta de administrador:
sudo nmap -sU 10.0.0.1 -F
Y aquí está el resultado:
Escaneo del sistema operativo
Saber qué sistemas operativos se están ejecutando en los hosts de destino es importante para comprender la arquitectura de una red. He aquí un ejemplo que de nuevo requiere privilegios de root o una cuenta de administrador:
sudo nmap -O 10.0.0.0/24
Hemos vuelto a utilizar un rango de direcciones IP para este escaneo. He aquí algunos de los resultados:
Usar Nmap para auditorías de seguridad
Los comandos que acabas de aprender te ayudarán a comenzar con una auditoría de seguridad al listar todos los puertos abiertos, servicios y sistemas operativos en uso en tu red. Esta auditoría de seguridad te indicará los posibles puntos de entrada de agentes maliciosos. Puedes encontrar más información sobre auditorías de seguridad utilizando Nmap Scripting Engine o NSE.
NSE incluye un conjunto de scripts que te ayudarán a encontrar vulnerabilidades en tus sistemas. El motor de scripts utiliza el lenguaje de programación Lua y puedes escribir tus propios scripts para personalizar los escaneos según tus necesidades. La lista actual de scripts NSE tiene 604 entradas que puedes consultar aquí. La mayoría de ellos llevan Nmap preinstalado.
Para nuestro ejemplo, utilizaremos el script vulners, que utiliza la base de datos de vulnerabilidades Vulners. Este script depende de tener información sobre las versiones de software, por lo que debes utilizar el indicador -sV con él. Aquí hay un ejemplo de escaneo usando este script para escanear un rango de IP:
nmap -sV --script=vulners 10.0.0.0/24
Por suerte o por desgracia, esta red no tenía vulnerabilidades, pero tienes un resultado parcial:
Nmap para diferentes sistemas operativos
Aunque los comandos de Nmap suelen ser constantes en los diferentes sistemas operativos, algunos consejos y consideraciones pueden ser más relevantes para ciertos sistemas operativos.
Linux
- Instalar Nmap: la forma de instalar Nmap depende de tu gestor de paquetes. Utilizarás apt-get en Debian y Ubuntu o yum en RHEL/CentOS. También puedes ir a la página de descarga de Nmap e instalar los paquetes RPM manualmente.
- Ejecutar Nmap: para ejecutar Nmap en Linux, abre el terminal e introduce el comando Nmap deseado
- Actualizar Nmap: esto depende de tu distribución de Linux. Para Debian y Ubuntu, el comando es sudo apt-get update y sudo apt-get upgrade nmap; para RHEL/Centos, es sudo yum update nmap.
- Desinstalar Nmap: de nuevo, esto depende de la distribución. Es sudo apt-get remove nmap para Debian/Ubuntu y sudo yum remove nmap para RHEL/Centos.
Windows
- Instalar Nmap: dirígete a la página de descarga de Nmap y descarga el ejecutable de instalación.
- Ejecutar Nmap: en Windows, ejecuta Nmap abriendo el símbolo del sistema o PowerShell e introduce el comando Nmap deseado.
- Actualizar Nmap: Nmap detectará y actualizará automáticamente la última versión en Windows.
- Desinstalar Nmap: abre la carpeta donde está instalado Nmap y haz doble clic en el script de desinstalación para iniciar el proceso de desinstalación.
- Rendimiento: Nmap en Windows puede no ser tan eficiente como en un sistema basado en Unix, y sólo soporta interfaces ethernet para escaneos de paquetes en bruto, pero el rendimiento es generalmente lo suficientemente bueno para la mayoría de los casos de uso.
Mac
- Instalar Nmap: en Mac, puedes instalar Nmap descargando el archivo de instalación .dmg de la página de descargas de Nmap o con Homebrew mediante este comando: brew install nmap.
- Ejecutar Nmap: abre la aplicación terminal e introduce el comando Nmap deseado.
- Actualizar Nmap: si has instalado Nmap con Homebrew, ejecuta brew upgrade nmap para actualizarlo. Si has descargado el archivo .dmg, puedes encontrar tu versión de nmap ejecutando el comando nmap. Puedes compararla con la versión estable actual en la página de descargas para ver si necesitas descargar una nueva instalación.
- Desinstalar Nmap: si has instalado Nmap con Homebrew, ejecuta brew uninstall nmap para desinstalarlo. Si has instalado Nmap desde el sitio web oficial, ejecuta sudo rm -rf /usr/local/bin/nmap /usr/local/share/man/man1/nmap.1.
Sácale partido a Nmap y mejora la seguridad de tu red
Si tu objetivo es mantener tu red a salvo, Nmap puede ser un aliado muy valioso. Mediante diversas técnicas de exploración, Nmap descubre hosts activos, sondea puertos abiertos e identifica posibles vulnerabilidades. Nmap Scripting Engine (NSE) te ayudará a automatizar estas evaluaciones y a abordar problemas de seguridad específicos.
Para sacarle el máximo partido a Nmap:
- Adapta los escaneos a objetivos y ámbitos específicos.
- Parchea periódicamente los sistemas para protegerte de las vulnerabilidades conocidas.
- Realiza auditorías de seguridad periódicas para adelantarte a las amenazas.
Con Nmap como copiloto de seguridad de confianza, podrás moverte por el complejo panorama de la seguridad de redes, asegurar que tus activos digitales estén a salvo y protegerte frente a las ciberamenazas.