nmap: port scanning y detección de servicios en un pentest

Nmap · NPSL

nmap no necesita presentación y la recibe igual, porque la mayoría usa quizá el cinco por ciento de él. Descubre hosts, enumera puertos, identifica servicios y versiones, y ejecuta un motor de scripting que hace de todo, desde parseo de banners hasta comprobaciones de vulnerabilidad.

Instalación

# Debian / Ubuntu / Kali
sudo apt install nmap

# macOS
brew install nmap

# RHEL / Fedora
sudo dnf install nmap

Comandos principales

# rápido, top puertos, versiones de servicio
nmap -sV --top-ports 1000 -T4 -oA scan example.com

# rango TCP completo
nmap -p- -sV -T4 -oA fullscan 10.0.0.0/24

# SYN scan — necesita root, más silencioso y rápido
sudo nmap -sS -p- -T4 -oA syn 10.0.0.0/24

# UDP, el lento que encuentra lo que todos se pierden
sudo nmap -sU --top-ports 100 -oA udp 10.0.0.0/24

# scripts por defecto más detección de versión
nmap -sC -sV -oA default example.com

# específicos de TLS
nmap --script ssl-enum-ciphers -p 443 example.com

-oA escribe los tres formatos a la vez — normal, greppable y XML. Úsalo siempre: el XML es lo que leen los importadores, y no puedes regenerarlo después sin volver a escanear.

Salida

El XML (scan.xml) es el legible por máquina:

<port protocol="tcp" portid="22">
  <state state="open" reason="syn-ack"/>
  <service name="ssh" product="OpenSSH" version="6.6.1p1" method="probe"/>
</port>

Dónde encaja en Tandera

nmap se ejecuta en la fase de active_scan solo de recon_web_full — nunca en recon_web_lite, que tiene techo NonIntrusive. Se ejecuta después de que cdncheck haya clasificado el espacio de direcciones, así que la lista de objetivos excluye rangos de CDN y de proveedor compartido.

El CLI tandera también importa XML de nmap directamente:

nmap -sV -oX - example.com | tandera import --auto-dedupe

Uso en un pentest

-T4 no siempre es seguro. Contra objetivos industriales o embebidos frágiles causa caídas. -T2 en cualquier cosa sobre la que te advirtieron, y acuerda el timing con el cliente por escrito.

La detección de versión es donde están los findings. Un puerto abierto no es un finding. OpenSSH 6.6.1p1 sí — es una versión con problemas conocidos que puedes citar. Sin -sV tienes un inventario, no resultados.

UDP es donde viven los servicios olvidados. Es lo bastante lento como para que la mayoría de los testers lo salten, que es exactamente por qué SNMP con community string por defecto sigue siendo hallable en 2026.

Guarda el XML. Es tu evidencia de que el escaneo ocurrió, cuándo, y qué vio. Los clientes disputan findings; el XML con timestamp lo zanja.

acceso anticipado

Consigue Tandera antes de tu próximo engagement.

Únete a la waitlist para acceso anticipado. Estamos incorporando equipos de pentest por oleadas.

Onboarding prioritario para equipos de pentest.
Línea directa con quienes lo construyen.
Precio de acceso anticipado, asegurado.

Sin spam, sin tarjeta. Cancela cuando quieras.

enespt-br