GhostAcademy logo GhostAcademy
🌐 Ciberseguridad · Auditoría de redes · Network Mapper
Nmap — Guía Completa
con Ejemplos

Nmap (Network Mapper) es la herramienta líder para el análisis de redes y auditorías de seguridad. Descubre hosts, escanea puertos, detecta versiones de servicios y automatiza evaluaciones de vulnerabilidades con NSE.

nmap -snnmap -sTnmap -sS nmap -sUnmap -sVnmap -O NSEvulnersZenMap

¿Qué es Nmap?

portadaNmap — Network Mapper
Nmap — Network Mapper

En el panorama de la ciberseguridad en constante cambio, comprender las complejidades de tus redes es fundamental para adelantarse a los actores maliciosos. Nmap (Network Mapper) es una herramienta de código abierto que se ha ganado su reputación como elemento incondicional en el arsenal de profesionales de la ciberseguridad, administradores de sistemas y hackers éticos.

Nmap es utilizado para analizar redes y realizar auditorías de seguridad. Su conjunto de funciones va mucho más allá de la exploración básica de redes.

Funciones Principales

🔍 Descubrimiento de hosts
Identifica los hosts activos en una red, sentando las bases para una exploración más profunda.
🚪 Exploración de puertos
Descubre puertos y servicios abiertos, permitiendo conocer la superficie de ataque de la red.
📦 Detección de versiones
Identifica versiones de servicios para localizar posibles vulnerabilidades asociadas a versiones específicas.
🖥️ Huella digital del SO
Identifica los sistemas operativos que se ejecutan en los hosts descubiertos, útil para inventario y evaluaciones de seguridad.
⚙️ NSE (Scripting Engine)
Permite crear análisis a medida y automatizar tareas complejas usando scripts Lua. Incluye más de 604 scripts preinstalados.

Usos de Nmap en Redes y Seguridad

  • Inventario de redes: Elabora una lista de todos los activos de software y servicios, creando un mapa con IPs, puertos, versiones, sistemas operativos y direcciones MAC.
  • Detección de vulnerabilidades: Analiza la red comparando versiones de servicios y SO con vulnerabilidades conocidas mediante NSE.
  • Supervisión de redes: Automatiza las tareas de escaneo periódico con el motor de scripts NSE para monitorización continua.
💡 Objetivo de práctica: Puedes usar scanme.nmap.org como objetivo para aprender a utilizar Nmap de forma legal y autorizada.

Instalación de Nmap

Nmap está disponible para los tres principales sistemas operativos. Puedes consultar la página oficial nmap.org/download.html para obtener siempre la última versión estable.

🐧 Linux
🪟 Windows
🍎 Mac

Debian / Ubuntu

bash
apt-get install nmap

Red Hat / CentOS / Fedora / SUSE

bash
yum install nmap
En la mayoría de distribuciones Linux, ZenMap (la interfaz gráfica oficial de Nmap) debe instalarse por separado.

Descarga el instalador ejecutable desde nmap.org/download y sigue el asistente.

windowsInstalador de Nmap para Windows — selección de componentes
Instalador de Nmap para Windows — selección de componentes
windowsInstalador Npcap — librería de captura de paquetes requerida
Instalador Npcap — librería de captura de paquetes requerida
ℹ️ Npcap: La versión Windows de libpcap, necesaria para que Nmap funcione. Se instala automáticamente junto con Nmap. Acepta los valores predeterminados.

Con Homebrew (recomendado)

bash
brew install nmap

Instalador .dmg

Descarga el archivo .dmg desde la sección Mac OS X Binaries en nmap.org/download.html. Esta versión también incluye ZenMap.

macInstalador Nmap .dmg para macOS
Instalador Nmap .dmg para macOS

Referencia Rápida de Comandos

Tabla de referencia con los comandos y flags más utilizados en Nmap:

Comando / FlagFunciónRequiere root
nmapMuestra la ayuda completa de Nmap.No
nmap <target>Detección simple de host (IP, hostname o rango CIDR).No
nmap -sn <target>Escaneo de ping — identifica hosts activos sin enviar paquetes al host.No
nmap -p <ports> <target>Escaneo básico de puertos específicos o rangos.No
nmap -sV -p <ports> <target>Detección de versiones de los servicios en los puertos.No
nmap -sT <target>Escaneo de conexión TCP completa (tres vías).No
nmap -sS <target>Escaneo SYN sigiloso — semiabierto, más rápido y difícil de detectar.Sí
nmap -sU -F <target>Escaneo UDP — los 100 puertos principales (-F fast).Sí
nmap -O <target>Huella digital del sistema operativo.Sí
nmap -sV --script=vulners <target>NSE: detecta vulnerabilidades usando la base de datos Vulners.No

Detección de Hosts

El primer paso en la exploración de la red. En el campo <target> puede ir una dirección IP, un nombre de host o un rango de IPs en notación CIDR.

bash — Ejemplos de targets
# IP individual
nmap 127.0.0.1

# Hostname
nmap example.com

# Rango de IPs (notación CIDR — 256 hosts)
nmap 192.168.10.0/24

Escaneo de Ping

Identifica hosts activos en la red sin enviar ningún paquete al host. Ideal como primer paso para descubrir qué dispositivos están en línea.

bash
nmap -sn 10.0.0.0/24
salida del escaneonmap -sn 10.0.0.0/24 — cinco hosts activos encontrados
nmap -sn 10.0.0.0/24 — cinco hosts activos encontrados

Escaneo Básico de Puertos

Sondea los puertos y servicios abiertos en un objetivo. Sustituye <port-range> con un puerto (ej. 80) o un rango (ej. 1-1024).

bash
nmap -p <port-range> <target>

# Ejemplo: puertos web en scanme.nmap.org
nmap -p 80,443 scanme.nmap.org

Detección de Versiones

Conocer las versiones de los servicios que se ejecutan en puertos abiertos es esencial para la evaluación de vulnerabilidades. El flag -sV activa la detección de versiones.

bash
nmap -sV -p <port-range> <target>

# Ejemplo: detectar versiones en puertos 22,80,443
nmap -sV -p 22,80,443 scanme.nmap.org

Huella Digital del Sistema Operativo

El flag -O permite a Nmap determinar el sistema operativo del host objetivo. Requiere privilegios de root/administrador.

bash
sudo nmap -O <target>

Escaneo de Conexión TCP

La técnica de escaneo más directa. Nmap establece un handshake TCP completo de tres vías con cada puerto para determinar su estado: abierto, cerrado o filtrado.

bash
nmap -sT 10.0.0.1
salida TCP scannmap -sT 10.0.0.1 — lista de puertos abiertos en el host
nmap -sT 10.0.0.1 — lista de puertos abiertos en el host

Escaneo SYN — Escaneo Sigiloso

El escaneo SYN (también llamado semiabierto o stealth) envía paquetes SYN a los puertos objetivo sin completar el handshake. Evalúa las respuestas para determinar la apertura del puerto sin conectarse completamente. Es más rápido y menos probable de ser detectado que el escaneo TCP.

bash
sudo nmap -sS 10.0.0.1
salida SYN scannmap -sS 10.0.0.1 — escaneo SYN sigiloso
nmap -sS 10.0.0.1 — escaneo SYN sigiloso
⚠️ Requiere root: Algunos comandos de Nmap requieren privilegios de root. Enviar y recibir paquetes en bruto requiere acceso root en Unix/Mac, o una cuenta de administrador en Windows. Sin privilegios, Nmap muestra: «Has solicitado un tipo de análisis que requiere privilegios de root».

Escaneo UDP

Se dirige a los puertos UDP del host. Como UDP es un protocolo sin conexión, determinar el estado de un puerto requiere interpretar la respuesta o su ausencia. Nmap detecta la limitación de velocidad y reduce el ritmo para evitar desbordamientos.

bash — Flag -F limita a los 100 puertos principales
sudo nmap -sU 10.0.0.1 -F
salida UDP scannmap -sU 10.0.0.1 -F — escaneo UDP (100 puertos principales)
nmap -sU 10.0.0.1 -F — escaneo UDP (100 puertos principales)
ℹ️ Por qué usar -F en UDP: Sin -F, el escaneo podría durar hasta 18 horas escaneando los 65.535 puertos UDP con un límite de 1 paquete/segundo. El flag -F limita el escaneo a los 100 puertos más comunes.

Escaneo del Sistema Operativo

Identifica qué sistemas operativos se están ejecutando en los hosts de destino, fundamental para comprender la arquitectura de la red.

bash — Rango CIDR completo
sudo nmap -O 10.0.0.0/24
salida OS scannmap -O 10.0.0.0/24 — detección de SO en toda la subred
nmap -O 10.0.0.0/24 — detección de SO en toda la subred

NSE — Nmap Scripting Engine

El NSE permite a Nmap realizar auditorías de seguridad avanzadas usando scripts en Lua. Incluye más de 604 scripts preinstalados organizados por categorías: auth, brute, discovery, exploit, fuzzer, intrusive, malware, safe, version, vuln.

Script vulners — Detección de CVEs

El script vulners usa la base de datos de vulnerabilidades Vulners para identificar CVEs en los servicios detectados. Requiere -sV para obtener información de versiones.

bash
nmap -sV --script=vulners 10.0.0.0/24
salida NSE vulnersnmap --script=vulners — análisis de vulnerabilidades NSE
nmap --script=vulners — análisis de vulnerabilidades NSE
💡 Catálogo de scripts NSE: Puedes consultar todos los scripts disponibles en nmap.org/nsedoc/scripts/ — están organizados por categoría y con documentación detallada.

Nmap por Sistema Operativo

Aunque los comandos de Nmap son consistentes en todos los SO, hay diferencias en la instalación, actualización y desinstalación:

🐧
Linux
Instalar (Debian/Ubuntu): apt-get install nmap
Instalar (RHEL/CentOS): yum install nmap
Ejecutar: abre terminal e introduce el comando.
Actualizar (Ubuntu): sudo apt-get upgrade nmap
Desinstalar (Ubuntu): sudo apt-get remove nmap
Desinstalar (RHEL): sudo yum remove nmap
🪟
Windows
Instalar: descarga el ejecutable de nmap.org/download.
Ejecutar: usa el símbolo del sistema o PowerShell.
Actualizar: Nmap detecta y actualiza automáticamente.
Desinstalar: doble clic en el script de desinstalación en la carpeta de Nmap.
Nota de rendimiento: puede ser menos eficiente que Unix; solo soporta interfaces ethernet para paquetes en bruto.
🍎
macOS
Instalar (Homebrew): brew install nmap
Instalar (.dmg): descarga desde la sección Mac OS X Binaries.
Ejecutar: abre Terminal e introduce el comando.
Actualizar (Homebrew): brew upgrade nmap
Desinstalar (Homebrew): brew uninstall nmap
Desinstalar (.dmg): sudo rm -rf /usr/local/bin/nmap

Buenas Prácticas con Nmap

🎯
Alcance definido
Adapta los escaneos a objetivos y ámbitos específicos. Escanear redes sin autorización es ilegal.
🔄
Parchea regularmente
Una vez detectadas vulnerabilidades, aplica parches periódicamente para protegerte de las amenazas conocidas.
📅
Auditorías periódicas
Realiza auditorías de seguridad regulares para adelantarte a las amenazas antes de que los actores maliciosos las exploten.
⚡
Usa -F para UDP
En escaneos UDP, usa siempre -F para limitar a los 100 puertos principales y evitar escaneos de 18+ horas.
🔐
sudo cuando sea necesario
Los escaneos SYN (-sS), UDP (-sU) y OS (-O) requieren privilegios de root para enviar paquetes en bruto.
🧪
Practica en entornos seguros
Usa scanme.nmap.org o laboratorios propios para aprender sin riesgo legal ni impacto en redes de producción.