Realiza escaneos de puertos con Nmap a cualquier servidor o sistema
Nmap es la mejor herramienta de escaneo de puertos y descubrimiento de hosts que existe
actualmente. Nmap nos permitirá obtener una gran cantidad de información sobre los equipos de nuestra
red, es capaz de escanear qué hosts están levantados, e incluso comprobar si tienen algún puerto abierto,
si están filtrando los puertos (tienen un firewall activado), e incluso saber qué sistema operativo está
utilizando un determinado objetivo.
Dentro de todas las herramientas que hay para mantener la seguridad en la red, hay una opción que
se convierte en una de las opciones más recomendadas: Nmap. Está claro que la seguridad en la red es
una de las mayores preocupaciones de muchos usuarios y empresas. Y no es para menos, debido a todos
los ataques que se producen a diario alrededor del mundo. Es por ello, por lo que se desarrollan
herramientas que nos permiten controlar un poco más el cómo los factores externos afectan a nuestras
redes.
Por esto mismo, en este artículo vamos a explicar una serie de conocimientos de base como es el
caso de qué es un escaneo de puertos, para luego conocer en profundidad cómo funciona Nmap. Para ello,
veremos diferentes ejemplos de cómo se utiliza y, también, las principales características de esta
herramienta.
Qué es un escaneo de puertos y cómo evitar un ataque
Al navegar por la red, al utilizar equipos conectados, podemos sufrir muchos tipos de ataques que
de una u otra forma nos pueden comprometer. Estamos expuestos constantemente y por ello es
importante conocer los riesgos que pueden afectarnos. Este tipo de ataque también se conoce como port
scan. Básicamente lo que hace un atacante es analizar de forma automática todos los puertos de un
equipo, como por ejemplo un ordenador, que esté conectado a la red. Lo que buscan es detectar posibles
puertos abiertos y cuáles podrían tener protocolos de seguridad deficientes.
Una vez logran toda la información posible podrían detectar posibles agujeros de seguridad y llevar
a cabo así sus ataques. Podrían obtener información sensible de los usuarios, conocer datos sobre el
sistema operativo de ese equipo, etc. Esto puede suponer una vía de entrada muy importante para los
piratas informáticos. Como decimos, una vez que estén dentro de la red, de ese equipo, podrían robar
información, tener acceso a contraseñas y, en definitiva, comprometer nuestra privacidad.
Para ello los ciberdelincuentes pueden utilizar diferentes herramientas que tienen como fin
detectar esas vulnerabilidades. Se les conoce también como analizadores de red. Un ejemplo puede ser
TCPing, que se ejecuta desde la línea de comandos de Windows. Pero también hay otras herramientas más
sofisticadas como Nmap o Zenmap.
Hay que tener en cuenta que existen 65.535 puertos TCP/IP. Cada uno de ellos puede cumplir una
función diferente. Además, como sabemos, muchos de ellos pueden estar abiertos. Con un escaneo de
puertos un atacante puede averiguar cuáles están abiertos y si podría haber alguna vulnerabilidad que
poder explotar. Esto lo puede averiguar de manera automática, analizando uno a uno cada puerto.
No abrir más puertos de los necesarios
Una de las mejores barreras que podemos utilizar es la de no abrir más puertos de los realmente
necesarios. Sería un error abrir una gran cantidad de puertos que en realidad no vamos a necesitar en
ningún momento.
Generalmente de forma predeterminada vienen abiertos puertos que son esenciales para el buen
funcionamiento de la red y utilizar determinadas herramientas. También podemos abrir otros muchos que
a veces resultan necesarios. No obstante, el consejo principal es no tener más de los imprescindibles
abiertos. Así reducimos en gran medida el problema.
Usar herramientas para comprobar los puertos abiertos
Ahora bien, a veces no sabemos realmente qué puertos tenemos abiertos y por tanto
desconocemos el problema real. Por suerte podemos hacer uso de muchas herramientas que nos permiten
realizar un análisis y comprobar qué puertos tenemos abiertos. Y lo cierto es que no supone ningún tipo de
inconveniente el hecho de utilizar este tipo de aplicaciones para realizar un escaneo de vez en cuando o
de manera habitual de los puertos.
Hemos nombrado algunas como Nmap o Zenmap, pero hay muchas más. La misión es escanear,
hacer un rastreo, todos los puertos para determinar cuáles están abiertos y por tanto podrían ser una
amenaza para nuestra seguridad. Por lo que es más que conveniente conocer cómo funcionan este tipo de
herramientas, cómo se instalan y, sobre todo, conocer cada una de sus funcionalidades para sacar el
máximo partido a estos softwares.
Utilizar cortafuegos
Otra opción más es la de utilizar firewalls. Nos permite evitar la entrada de intrusos a la red, ya que
actúan como barrera. Esto es muy útil para mantener siempre la seguridad en los equipos y no permitir
que se aprovechen de posibles puertos abiertos que hubiera.
También existen sistemas de detección de intrusos que podemos configurar para detectar y bloquear
intentos y solicitudes de conexión peligrosos.
Mantener los equipos siempre actualizados
Por supuesto algo que no puede faltar es tener siempre los sistemas y equipos actualizados. El
firmware del router, por ejemplo, debe estar siempre con la última versión y parchear posibles
vulnerabilidades que existan.
Son muchos los fallos de seguridad que puede haber y que podrían ser utilizados por los piratas
informáticos para llevar a cabo sus ataques. Necesitamos contar siempre con todos los parches y
actualizaciones que haya disponibles para corregir esos problemas.
En definitiva, los ataques de escaneo de puertos pueden comprometer la seguridad de la red.
Debemos tomar medidas de precaución para no exponer nuestros datos.
Para qué escanear puertos
Como veremos con más detalle en las siguientes líneas, con nmap tenemos una herramienta
especializada en analizar los puertos de los sistemas informáticos, obteniendo información sobre si están
abiertos, cerrados o protegidos con cortafuegos.
Esto se puede hacer con multitud de finalidades, como saber qué servicios se están ofreciendo
desde un equipo por los administradores o por seguridad, buscando solventar algún problema que pueda
llegar en forma de vulnerabilidad. Pero esto también se puede utilizar con fines maliciosos. Igual que los
Administradores pueden analizarlos para buscar posibles vulnerabilidades, un atacante puede hacerlo por
exactamente lo mismo, pero con la intención de aprovecharse de ello para infiltrarse en la red
aprovechando una brecha en la seguridad.
Por lo tanto, hay diferentes beneficios que nos llevan a tener que usar este tipo de herramientas
adicionales con las que podemos conocer el estado de los puertos. Una parte vital en una gran multitud de
ocasiones. Especialmente por cuestión de mantener protegida la seguridad de los sistemas y encontrar, si
es que hay, vulnerabilidades como mencionábamos anteriormente.
Cómo funciona Nmap
Nmap es una utilidad completamente gratuita y de código abierto, nos permite descubrir redes y
host, así como realizar auditoría de seguridad. Este programa es compatible con sistemas operativos Linux,
Windows y también macOS, pero en todos ellos se utiliza a través de la línea de comandos, aunque tenemos
la posibilidad de instalar ZenMap que es la utilidad gráfica de Nmap para hacer los escaneos de puertos a
través de la interfaz gráfica de usuario. Si no quieres pelearte con comandos a través de consola, esta
interfaz gráfica de usuario te podría ser útil para los primeros pasos con este gran programa, no obstante,
cuando tengas más experiencia seguramente ejecutes todas las órdenes directamente desde terminal.
Nmap nos permite detectar hosts de una red local, y también a través de Internet, de esta forma,
podremos saber si dichos hosts (ordenadores, servidores, routers, switches, dispositivos IoT) están
actualmente conectados a Internet o a la red local. Esta herramienta también permite realizar un escaneo
de puertos a los diferentes hosts, ver qué servicios tenemos activos en dichos hosts gracias a que nos dirá
el estado de sus puertos, podremos saber qué sistema operativo está utilizando un determinado equipo, e
incluso podremos automatizar diferentes pruebas de pentesting para comprobar la seguridad de los
equipos.
Nmap tiene diferentes tipos de escaneo de puertos, pueden ser a través de segmentos TCP,
datagramas UDP o paquetes ICMP, además, permite realizar escaneos de forma oculta para que sean
difíciles de detectar por los firewalls. Por supuesto, podremos hacer escaneo de puertos sobre ciertos
puertos en concreto, entre rangos de puertos, rangos de direcciones IP, posibilidad de usar paquetes TCP
null, FIN, Xmas y ACK además de SYN, para localizar los puertos TCP abiertos.
Otras características que nos brinda esta herramienta, es la posibilidad de hacer un completo
inventario de red, e incluso comprobar si un determinado host o servicio sigue levantado y funcionando.
Este programa fue diseñado para escanear una gran cantidad de hosts, por tanto, si necesitas escanear
múltiples objetivos no tendrás problemas. Este programe es muy flexible, incorpora decenas de técnicas
avanzadas para escanear hosts y puertos, además, también permite realizar auditorías a través de NSE
(Nmap Search Engine), por lo que es realmente potente.
Nmap tiene varios estados en los puertos que aparecerán cuando hagamos un escaneo de puertos.
Es fundamental saber qué significa cada estado de Nmap, porque con cualquier escaneo de puertos, nos
devolverá diferentes estados.
Principales usos de Nmap
Como has podido ver, Nmap es una herramienta muy versátil. Esta se puede utilizar para gran
variedad de tareas, sobre todo relacionadas con la seguridad de la información. Pero también nos permite
realizar administración de redes. Algunos de los usos más comunes para Nmap son:
• Escaneo de puertos: Se puede utilizar para realizar el escaneo de puertos abiertos en la red. Lo cual
nos da la posibilidad de identificar posibles puntos en los que un atacante puede atacar nuestra
red. También se pueden realizar escaneos de puertos específicos, o un rango de puertos. Lo cual
nos dice los que están abiertos, y como tal, con posibilidad de ser atacados.
• Detección de sistemas: Nmap se puede utilizar para encontrar sistemas activos en una red. Esto
puede incluir servidores y dispositivos de red. Esto se hace escaneando una dirección IP, o un rango
de direcciones para identificar los dispositivos en la red.
• Detección de servicios: Con Nmap es posible detectar los servicios que se están ejecutando en la
red, lo cual nos ayuda en muchos casos a detectar vulnerabilidades. Podremos identificar servicios
como HTTP, Telnet, FTP, SSH, entre otros muchos. Esto lo que permite es proporcionar información
muy detallada sobre los softwares que están siendo ejecutados, incluso las versiones de estos.
• Mapeo de redes: Se puede utilizar para mapear redes. Esto puede incluir varios factores como la
ubicación de un dispositivo o la topología de la propia red. Así será mucho más sencillo crear un
mapa visual de toda la infraestructura, identificando los dispositivos y como están conectados.
• Pruebas de seguridad: Con Nmap se pueden realizar pruebas de penetración y evaluaciones de
seguridad. Esto nos permite identificar vulnerabilidades en los sistemas o la red. Esto está
directamente ligado al escaneo de puertos.
• Monitorización: Nmap tiene la capacidad de realizar una monitorización de la disponibilidad de los
servidores o dispositivos de la red. Lo cual nos ayuda a ver si están funcionando de la forma
correcta.
Estado de los puertos con Nmap
Con esta herramienta especializada, tenemos la oportunidad de conocer al detalle cuál es el estado
de los puertos. Hay diferentes opciones que se deben conocer, ya que el estado actual en el momento de
realizar el escaneo puede variar. Por lo tanto, te pueden aparecer las siguientes alternativas:
• Open: una aplicación está activamente aceptando conexiones TCP o UDP. El puerto está abierto y
se puede utilizar, los pentesters podrán utilizar este puerto abierto para explotar el sistema. Es el
estado por defecto si no tenemos ningún firewall bloqueando accesos.
• Closed: un puerto que está cerrado es accesible porque responde a Nmap, sin embargo, no hay
ninguna aplicación funcionando en dicho puerto. Es útil para descubrir que un host está levantado,
o como parte de la detección de un sistema operativo. De cara al administrador del sistema, es
recomendable filtrar estos puertos con el firewall para que no sean accesibles. De cara al pentester,
es recomendable dejar estos puertos “cerrados” para analizar más tarde, por si ponen algún servicio
nuevo.
• Filtered: en este estado Nmap no puede determinar si el puerto está abierto, porque hay un firewall
filtrando los paquetes de Nmap en dicho puerto. Estos puertos filtrados son los que aparecerán
cuando tengamos un firewall activado. Nmap intentará en varias ocasiones intentar conectar, lo
que hace que el escaneo de puertos sea bastante lento.
• Open| Filtered: Nmap no sabe si el puerto está abierto o filtrado. Esto ocurre porque el puerto
abierto no envía ninguna respuesta, y dicha falta de respuesta podría ser por el firewall. Este estado
aparece cuando usamos UDP y IP, y utilizamos escaneos FIN, NULL y Xmas.
• Closed | Filtered: en este estado no se sabe si el puerto está cerrado o filtrado. Solo se usa este
estado en el IP Idle Scan.
Tipos de escaneos
A la hora de utilizar este software de código abierto hay que tener en cuenta que es una de las
herramientas más utilizadas para escanear una red, además de sus puertos. De esta forma se consigue
obtener diferentes datos sobre esta para así gestionar su seguridad. Ahora bien, en el momento de
monitorizar o llevar a cabo una auditoría de seguridad se pueden dar diferentes tipos de escaneos desde
Nmap que son interesantes conocer. Y los cuales son los siguientes tipos:
• FIN: este tipo de escaneo te ayudará a saber si el host está tras un firewall.
• Ping-Arp: en este caso, estamos ante una opción más útil con la que se puede saber si el host está
activo en la red mediante Ping o incluso para conseguir algún dato más específico sobre los host
que están activos con Arp.
• TCP Connect: este escaneo desde Nmap te puede servir para llegar a realizar con éxito una conexión
completa de todos los puertos.
• Sondeo de lista: esta alternativa tiene como objetivo el de conseguir los nombres de equipo de los
diferentes dispositivos que están conectados a una red en concreto, y sin que sea necesario enviar
un paquete para conseguir este propósito, ya que lleva a cabo resolución inversa de DNS.
Efectividad de Nmap
Nmap es una herramienta que se considera altamente efectiva. Esto se debe a una combinación de
funcionalidad y características avanzadas, que hace de esta solución una de las mejores que podemos
encontrarnos. Esta cuenta con la capacidad de realizar escaneos de vulnerabilidades, para identificar
posibles debilidades en las configuraciones de los sistemas de seguridad. En el caso de no ser efectiva, no
sería una herramienta tan conocida. Por lo cual podríamos decir, que la propia fama de Nmap es un buen
identificativo para la calidad que puede proporcionarnos en una gran variedad de situaciones diferentes.
Por otro lado, más allá de su eficacia en identificación de dispositivos, servicios y vulnerabilidades,
está su capacidad para trabajar con diferentes protocolos de red. Entre otros, TCP, UDP, ICMP e IP. Todo lo
cual, se puede integrar con otras herramientas de seguridad y análisis. Pueden ser herramientas como
Metasploit o incluso Wireshark. Lo cual hace de Nmap una herramienta muy versátil para todo tipo de
sistemas.
En cambio, no estamos ante una solución que sea perfecta, ni que represente una medida de
seguridad ante problemas. A pesar de que es muy efectiva y poderosa, requiere de cierto conocimiento por
parte de los usuarios que la utilicen. Así como la disposición de las habilidades necesarias para darle uso
con todas las garantías, y aprovechando su rendimiento y funciones al máximo. También debemos pensar
que muchos dispositivos pueden contar con algún tipo de protección contra los escaneos de las
aplicaciones como Nmap, o pueden incluso ser complicados de detectar. Pero en estos casos, ya no sería
un problema de la eficiencia de Nmap ni de sus funciones, sino de las medidas de protección establecidas
en esos dispositivos. En todo caso, si buscamos una solución efectiva, fiable y con buena trayectoria, Nmap
es una de las mejores soluciones actualmente.
Personalización de NMAP
Como puedes ver, con NMAP estamos ante una herramienta de código abierto, por lo cual tiene una
alta capacidad de personalización. Lo cual la lleva a ser una solución altamente adaptable a las
necesidades de cada usuario, en todo tipo de escenarios. Pero esto es algo que no se realiza a la ligera,
sino que hay algunos factores que destacan por encima de otros. Empezando por las opciones de escaneo,
donde la gama de opciones es muy amplia. Esta permite gestionar muchos parámetros y opciones
avanzadas, que modifican por completo el funcionamiento de NMAP. El escaneo personalizado, permite
disponer de información muy valiosa, y de todo tipo al realizar análisis de puertos, por ejemplo.
Por otro lado, están los scripts NSE (Nmap Scripting Engine). Esta es una de las características más
potentes de NMAP, la cual permite ejecutar scripts muy personalizados durante el tiempo de escaneo. Al
poder crear los scripts por nuestra parte, pueden ser todo lo complejos que sea necesario. Y como tal nos
da ese añadido en personalización, el cual no tendríamos sin esta sección de NMAP. Todo se hace buscando
la salida personalizada de datos, donde se pueden establecer muchos parámetros. Desde el formato de
salida, generar informes HTML, y los resultados que vamos a necesitar que incluya el análisis que se realiza
en la red.
Por último, NMAP cuenta con una gran capacidad de integración con otras herramientas. Una de
las características más llamativas, es el poder establecer NMAP como entrada para otras herramientas de
seguridad que utilicemos, o incluso para detección de intrusos. Lo cual, de nuevo, se puede combinar con
los scripts que mencionamos previamente.
Una vez que hemos visto las principales características de Nmap, y el estado de los puertos que
tenemos disponibles, vamos a instalarlo y utilizarlo.
Descarga e instalación de Nmap en cualquier sistema
Una vez que ya tenemos claro cómo funciona al detalle esta herramienta en concreto, hay que
pasar a conocer qué hay que hacer para descargarla e instalarla en el sistema de nuestro equipo. Por lo
tanto, lo primero que tenemos que hacer para utilizar este programa tan potente, es descargarlo y
posteriormente instalarlo. Para cumplir con este paso, hay que ir a la sección de descargas de Nmap donde
podéis encontrar todos los enlaces, binarios y código fuente para su instalación en sistemas operativos
Windows, Linux y MacOS.
Este programa, actualmente lo tenemos disponible en todos los repositorios de los sistemas
operativos basados en Linux, por lo que su instalación es realmente sencilla. Nosotros hemos instalado
este programa en Ubuntu, pero simplemente ejecutando la orden de instalación de vuestro sistema
operativo seguido de «nmap», instalaréis el programa sin dificultades.
sudo apt install nmap
Una vez instalado ya podemos utilizarlo desde un terminal, ya sea en Windows, Linux o macOS. En
todos los ejemplos que os pondremos a continuación, hemos utilizado el sistema operativo Ubuntu, pero
los mismos comandos los tenemos disponibles para Windows y macOS, sin ningún cambio. Por lo que se
puede usar en diferentes sistemas sin inconvenientes. Y lo mejor de todo es que podéis seguir de guía los
siguientes ejemplos de uso en caso de que no tengaís una idea clara de cómo se puede utilizar esta
herramienta.
Ejemplos de uso de Nmap
Nmap es un programa muy avanzado y complejo, con decenas de comandos y ataques que vamos
a poder realizar, con el objetivo de descubrir todos los hosts que tengamos en una red local doméstica o
profesional, además, también es capaz de detectar hosts en Internet, es decir, vamos a poder escanear uno
a uno cualquier dirección IP de Internet e incluso subredes que sean públicas.
Una vez que hemos descubierto que el host está online, se le puede realizar un escaneo rápido de
puertos y comprobar si tiene un firewall filtrando todos los paquetes, o bien tenemos un puerto abierto
para poder explotar alguna vulnerabilidad. Nmap permite utilizar tanto direcciones IPv4 privadas y
públicas, como también direcciones IPv6, con el objetivo de poder escanear los puertos de cualquier host.
A continuación, os mostramos algunos ejemplos de cómo se utiliza Nmap a nivel usuario, y también
con comandos algo más avanzados, y es que este programa nos permitirá descubrir con cierta exactitud
qué sistema operativo está utilizando el host remoto, ideal para obtener la máxima información posible.
Escaneo rápido de puertos
Si quieres realizar un escaneo rápido de puertos a un determinado host, debemos teclear el
siguiente comando. Este comando básico se encargará de escanear los principales puertos a la dirección
IP privada o pública definida, un detalle muy importante es que no escaneará todos los puertos, sino los
más utilizados habitualmente.
nmap [ip]
Por ejemplo, si queremos realizar un escaneo rápido de los principales puertos a un host con
dirección IP [Link], la orden sería la siguiente:
nmap [Link]
El programa nos devolverá los puertos que se encuentran abiertos en el equipo objetivo.
En el caso de querer escanear todos y cada uno de los puertos, entonces tendremos que recurrir al
siguiente comando, y poner un rango desde el puerto 1 hasta el 65535, de esta forma estaremos
comprobando si todos y cada uno de los puertos están abiertos, cerrados o filtrados.
Realizar escaneo de un rango de puertos
En lugar de realizar un escaneo de todos los puertos, podemos establecer un rango de puertos a
comprobar. Para ello ejecutaremos:
nmap -p [rango] [ip]
Si queremos realizar un escaneo de puertos desde el 20 TCP hasta el 200 TCP en la dirección IP
[Link], basta con ejecutar la siguiente orden:
nmap -p 20-200 [Link]
El programa nos indicará dentro de ese rango qué puertos están abiertos.
Dependiendo de la latencia de la conexión entre nuestro equipo y el host remoto, y también el
número de puertos a analizar, este proceso podría durar desde varios segundos hasta unos 10 minutos
aproximadamente.
Detectar el sistema operativo y más datos del host
Podemos indicar a Nmap que detecte el sistema operativo. Esto lo realiza enviando paquetes y
analizando la forma en que los devuelve, siendo en cada sistema totalmente diferente. Junto a esto,
realizará una exploración de puertos y de los servicios en busca de vulnerabilidades. Asimismo, el escaneo
devolverá información útil. Para ello debemos ejecutar:
nmap -A -v [ip]
Si queremos realizar este escaneo a la dirección IP [Link] podemos ejecutar la siguiente orden:
nmap -A -v [Link]
Esta prueba de detección del sistema operativo no es del todo fiable porque depende de muchos
parámetros, en algunos casos la exactitud es muy buena, sobre todo en diferenciar si es Windows o Linux,
pero dentro del mundo Linux es realmente complicado conocer qué sistema operativo es en concreto.
Listado de todos los comandos
Este programa es realmente completo, hasta el momento hemos utilizado los comandos básicos
para descubrir hosts y también para ver si tiene los puertos abiertos, sin embargo, esto no se queda así, y
tenemos un gran listado de comandos para exprimir al máximo esta herramienta.
Seleccionar objetivos
Direcciones o rangos IP, nombres de sistemas, redes, etc.
• Ejemplo: [Link], [Link]/24, [Link], 10.0.0-255.1-254
• -iL fichero lista en fichero -iR n elegir objetivos aleatoriamente, 0 nunca acaba
• –exclude –excludefile fichero excluir sistemas desde fichero
Descubrir sistemas
• -PS n tcp syn ping
• -PA n ping TCP ACK
• -PU n ping UDP
• -PM Netmask Req
• -PP Timestamp Req
• -PE Echo Req
• -sL análisis de listado
• -PO ping por protocolo
• -PN No hacer ping
• -n no hacer DNS
• -R Resolver DNS en todos los sistemas objetivo
• –traceroute: trazar ruta al sistema (para topologías de red)
• -sP realizar ping, igual que con –PP –PM –PS443 –PA80
Técnicas de análisis de puertos
En la mayoría de las ocasiones, cuando los usuarios están empezando a utilizar esta herramienta,
lo más probable es que intenten la resolución de la mayoría de los problemas con el tipo de escaneo SYN
porque es uno de los más versátiles. Pero, a medida que avanzan y conocen la herramienta en profundidad,
se darán cuenta de que ampliarán su abanico de soluciones y aquí abajo os explicamos un poco algunos
de los comandos que resultan más útiles al momento de analizar puertos.
• -sS análisis utilizando TCP SYN: Este tipo de escaneo, está basado en la velocidad de escaneo, de
ahí la versatilidad que mencionamos anteriormente, ya que permite escanear miles de puertos por
segundo en una red que se encuentre desprotegida o carezca de un firewall. Además, en lo que a
términos de privacidad se refiere, es una excelente técnica, ya que no llega a completar las
conexiones TCP y por lo tanto no llama la atención.
• -sT análisis utilizando TCP CONNECT: Este tipo de exploración, podríamos decir que es la que se
utiliza principalmente, sobre todo cuando no podemos ejecutar un escaneo tipo SYN, este tipo de
análisis de conexión, lo que hace es realizar o emitir una llamada al sistema de conexión para que
se establezca una conexión con la red que estamos analizando. Luego, Nmap lo que hace es utilizar
esta llamada para analizar la información sobre cada intento de conexión, la principal desventaja
de este tipo de análisis es que nos toma un poco más de tiempo identificar los puertos que están
abiertos que nos llevaría por ejemplo con el SYN.
• -sU análisis utilizando UDP: Este tipo de escaneo es bastante simple, suele utilizarse sobre todo
cuando queremos realizar un seguimiento de puertos como los DNS, SNMP y DHCP en nuestra red.
Por supuesto, que sea sencillo no quita que son puertos bastante importantes, ya que suelen ser
las áreas por donde suelen haber atacantes buscando vulnerabilidades para explotar.
• -sY análisis utilizando SCTP INIT
• -sZ utilizando COOKIE ECHO de SCTP
• -sO protocolo IP
• -sW ventana TCP -sN
• –sF -sX NULL, FIN, XMAS
• –sA TCP ACK
Puertos a analizar y orden de análisis
• -p n-mrango
• -p– todos los puertos
• -p n,m,z especificados
• -p U:n-m,z T:n,m U para UDP, T para TCP
• -F rápido, los 100 comunes
• –top-ports n analizar los puertos más utilizados
• -r no aleatorio
Duración y ejecución:
• -T0 paranoico
• -T1 sigiloso
• -T2 sofisticado
• -T3 normal
• -T4 agresivo
• -T5 locura
• –min-hostgroup
• –max-hostgroup
• –min-rate
• –max-rate
• –min-parallelism
• –max-parallelism
• –min-rtt-timeout
• –max-rtt-timeout
• –initial-rtt-timeout
• –max-retries
• –host-timeout –scan-delay
Detección de servicios y versiones
• -sV: detección de la versión de servicios
• –all-ports no excluir puertos
• –version-all probar cada exploración
• –version-trace rastrear la actividad del análisis de versión
• -O activar detección del S. Operativo
• –fuzzy adivinar detección del SO
• –max-os-tries establecer número máximo de intentos contra el sistema objetivo
Evasión de Firewalls/IDS
• -f fragmentar paquetes
• -D d1,d2 encubrir análisis con señuelos
• -S ip falsear dirección origen
• –g source falsear puerto origen
• –randomize-hosts orden
• –spoof-mac mac cambiar MAC de origen
Parámetros de nivel de detalle y depuración
• -v Incrementar el nivel de detalle
• –reason motivos por sistema y puerto
• -d (1-9) establecer nivel de depuración
• –packet-trace ruta de paquetes
Otras opciones
• –resume file continuar análisis abortado (tomando formatos de salida con -oN o -oG)
• -6 activar análisis IPV6
• -A agresivo, igual que con -O -sV -sC –traceroute
Opciones interactivas
• v/V aumentar/disminuir nivel de detalle del análisis
• d/D aumentar/disminuir nivel de depuración
• p/P activar/desactivar traza de paquetes
Scripts
• -sC realizar análisis con los scripts por defecto
• –script file ejecutar script (o todos)
• –script-args n=v proporcionar argumentos
• –script-trace mostrar comunicación entrante y saliente
Formatos de salida
• -oN guardar en formato normal
• -oX guardar en formato XML
• -oG guardar en formato para posteriormente usar Grep
• -oA guardar en todos los formatos anteriores
Principalmente estos son los comandos de que dispone Nmap. Antes de terminar, debemos decir
que Nmap dispone de multitud de opciones con las que poder realizar completos análisis de redes.
Podemos consultar todas las opciones disponibles tecleando:
nmap --help
Nmap es sin duda una herramienta muy sencilla y completa para realizar auditorías de redes, pero
esto no acaba aquí, también tenemos disponible Nmap NSE para realizar pentesting avanzados.
Otras técnicas de escaneo
Como hemos visto, nmap ofrece muchos parámetros para realizar un escaneo más a medida, pero
actualmente existen otros métodos para realizar esta tarea los cuales pueden ser interesantes. Cada uno
de ellos tiene sus propias características, y pueden variar en efectividad.
• TCP connect()scanning: Es una de las formas de escaneo más comunes, porque es rápido y no son
necesarios demasiados privilegios en el equipo.
• TCP SYN scanning: También conocido como «half-open». Este no llega a crear una conexión TCP, si
no que utiliza el envío de paquetes SYN. Puede obtener dos respuestas diferentes, un SYN-ACK que
indica que el puerto está abierto, y un RST que está cerrado.
• TCP FIN scanning: Permite realizar escaneos de puertos en aquellos sistemas que cuentan con
firewalls o filtros de paquetes SYN.
• Fragmentation Scanning: Aquí no estamos ante un escaneo como tal, sino que está para modificar
las técnicas anteriores mediante la división o fragmentación de paquetes SYN o FIN. Esto se hace
para que no sean detectados por firewall o filtros de paquetes.
• TCP reverse ident scanning: Con este identificador, es posible conocer datos sobre el responsable
de los servicios que están usando una determinada conexión TCP. Requiere una conexión completa.
Gracias a estas técnicas de escaneo avanzadas, podemos determinar si los puertos están abiertos
o cerrados.
Uso de Nmap en redes inalámbricas
Pese a que Nmap se asocia principalmente a redes cableadas, también es una herramienta muy
interesante para comprobar la seguridad de redes WiFi, identificando las posibles vulnerabilidades de esta
y ayudándonos a protegernos.
Cuando utilizamos esta herramienta con redes inalámbricas, el escaneo de puertos puede
identificar servicios abiertos en dispositivos móviles, routers o dispositivos IoT, los cuales podrían estar
expuestos. En este tipo de red, es fundamental conocer el rango dinámico de IPs asignadas por el servidor
DHCP y el tipo de cifrado utilizado. A esto, podemos sumarle herramientas como Aircrack-ng, con la que
Nmap se convertiría en algo más poderoso ayudando a evaluar la robustez de la red ante los posibles
ataques.
Un uso común de Nmap en redes inalámbricas es verificar qué dispositivos están conectados al
router, algo que no sería necesario en redes cableadas, ya que solamente tendríamos que analizar, de forma
visual, qué cables están conectados, y a dónde se dirigen. Esto nos permitiría conocer si algún intruso se
está conectando a nuestra red sin permiso, aunque luego veremos alternativas que incluso nos permitirán
analizarlo desde un móvil.
Del mismo modo, como ya dijimos, es ideal para conocer si hay puertos abiertos que no deberían
estar (del mismo modo que las redes cableadas), así como configuraciones de red incorrectas que podrían
facilitar ataques como el «Man in the Middle». Es cierto que existen muchas otras herramientas que hacen
todo esto, pero no podemos dejar a Nmap como algo que solo funcione en redes cableadas, pues también
tiene su uso, como hemos podido comprobar, en las inalámbricas.
Nmap NSE: qué es y para qué sirve
Nmap Search Engine o también conocido como Nmap NSE, es una gran base de datos con miles de
scripts que nos permitirá automatizar la realización de pentesting a sistemas y redes. El primer paso de
cualquier pentesting es realizar un escaneo de puertos, una vez realizado este escaneo de puertos,
podremos intentar explotar vulnerabilidades en los servicios que hay funcionando detrás de un
determinado puerto, por ejemplo, podríamos atacar servidores web, servidores Samba, FTP, servidores SSH,
servidores DNS, comprobar si los diferentes servicios tienen vulnerabilidades conocidas o directamente
intentar autenticarnos en ellos, si es que tienen autenticación como en el FTP o SSH.
NMAP NSE es un conjunto de scripts que nos permitirá automatizar muchas acciones, como
realizar ataques de fuerza bruta a servidores Samba, con el objetivo de intentar acceder a ellos y hacernos
con el control, aunque también podríamos atacarlo para realizarle un ataque de denegación de servicio y
que el servicio no esté disponible. Lo mismo podríamos hacer con los servidores FTP, servidores SSH y
mucho más, sobre todo, los servidores web que deben tener un puerto abierto en el firewall son los que
más se deben proteger para evitar o mitigar los ataques que nos puedan realizar.
Por ejemplo, si queremos realizar un ataque de fuerza bruta, basado en un listado de usuarios (con
un archivo que se llame [Link]) y con un listado de contraseñas a probar (con un archivo que se llame
[Link]) a un servidor SSH de un determinado equipo que tiene la IP [Link], podemos poner el
siguiente comando:
nmap -p 22 --script ssh-brute --script-args userdb=[Link],passdb=[Link] --script-args ssh-
[Link]=4s [Link]
Si queremos saber si un servidor FTP tiene habilitado la autenticación anónima, podremos hacerlo
fácilmente poniendo la siguiente orden:
nmap -sV -sC -p21 [Link]
si queremos realizar un ataque de fuerza bruta a un servidor FTP a un servidor con la IP [Link],
podemos poner el siguiente comando:
nmap -p 21 --script ftp-brute [Link]
Disponemos de una grandísima cantidad de scripts dentro de Nmap NSE con el objetivo de
comprobar la seguridad de decenas de servicios, porque no solamente tendremos los típicos de servidores
Samba, FTP, SSH y más, sino que también podremos atacar de forma muy concreta un servidor web con
cabeceras HTTP especiales para ver si hay vulnerabilidades, por supuesto, tendremos scripts específicos
que nos permitirá explotar vulnerabilidades al PHP de los servidores web, por supuesto, también podremos
explotar vulnerabilidades a los diferentes servidores Samba, FTP y SSH, es decir, vulnerabilidades
conocidas que ya han sido solucionadas, pero que es posible que todavía el objetivo las tenga operativas.
Por este motivo es tan importante actualizar cuanto antes todos los servicios que tengamos expuestos a
Internet, y también servicios que tegnamos expuestos a la red local, porque con un malware podría explotar
una vulnerabilidad y convertirse el ataque de penetración en un ataque de ransomware para cifrar todos
los archivos y carpetas.
Os recomendamos visitar la web oficial de uso de NSE donde encontraréis todos los scripts que hay
actualmente en esta gran base de datos, además, tendréis ejemplos de cómo utilizarlos.
Ventajas y desventajas de NMAP
Con Nmap podemos obtener una serie de ventajas, las cuales no solo nos ayudarán a tener más
funcionalidades, sino que también nos puede influir en su facilidad de uso. Algunas de ellas pueden ser:
• El sistema operativo determina cuándo Nmap puede escanear los puertos abiertos. Al menos uno
de ellos tiene que estar abierto en el sistema cuando se está escaneando.
• Se pueden determinar los puertos abiertos que están a la escucha, pero es posible que a menudo
este puerto no identifique al sistema operativo.
• Si se trata de identificar la generación del sistema operativo mediante un sondeo, es posible que se
cree una superposición basada en la información determinada a partir de la propia sonda, y esta no
se considerará autorizada. Al fin y al cabo, la identificación del sistema operativo está determinada
por un algoritmo que realiza un análisis de los puertos abiertos. Muchos elementos pueden hacer
que esta identificación sea errónea.
Pero como en todo, encontraremos algunos inconvenientes, los cuales nos puede hacer cambiar
de opinión sobre si usar o no. Como, por ejemplo:
• Nmap se puede utilizar como una herramienta para hackers. En todo caso, es posible que la
seguridad de los equipos no lo permita.
• Se requiere NCAP e instalar un controlador de filtro para la red. NCAP puede interactuar con otros
softwares, y a su vez causar problemas por excesos operacionales.
• NCAP y NMAP están pensados para ser transparentes, en cambio pueden tener interacciones con
software instalado en el entorno. Esto puede ser una preocupación de cualquier administrador, por
lo cual se recomienda realizar los testeos oportunos para utilizarlo.
• Los dispositivos escaneados, puede darse el caso de que respondan de forma inesperada, sobre
todo si son máquinas muy diferentes a lo habitual, como un equipo médico, por ejemplo.
• Puede ser bloqueado por cortafuegos locales, tanto en el sistema que realiza el análisis como el
del sistema al cual analiza. Esto puede limitar los datos disponibles considerablemente.
• Es posible bloquearlo por software como un antivirus, por ejemplo. Esto puede afectar a la
profundidad y precisión de todos los datos que proporciona Nmap.
• La metodología de Nmap, trata de ser lo más eficiente posible, pero es posible que no pueda realizar
escaneos en determinados puntos de la red local donde está llevando a cabo análisis.
Zenmap, la interfaz gráfica de Nmap
Zenmap es una herramienta gratuita que podemos utilizar para escanear los puertos. Podemos
saber cuáles tenemos abiertos, para evitar problemas a la hora de usar algunos programas o acceder a un
servidor. Se trata de la interfaz gráfica del popular programa de código abierto Nmap, que permite hacer
un escaneo de puertos completo de cualquier equipo conectado.
Hay que indicar que esta herramienta, que es totalmente gratuita, está disponible para diferentes
sistemas operativos como Microsoft Windows, Linux o macOS. Permite a los usuarios ejecutar diferentes
tipos de análisis de puertos. Es ideal tanto para usuarios menos experimentados como también para los
más avanzados.
Para comenzar a utilizar Zenmap lo primero que tenemos que hacer es descargarlo. Podemos
hacerlo desde la página oficial de Nmap. Allí encontraremos las diferentes versiones, según el sistema
operativo que estemos utilizando. El proceso de instalación es sencillo, rápido e intuitivo. En unos
segundos lo tendremos listo para utilizar.
Cuando lo hayamos instalado simplemente tendremos que ejecutarlo. Nos encontraremos con una
imagen como la de arriba. Podemos elegir un escaneo de puertos a fondo, escaneo rápido, puertos TCP,
UDP, etc.
Con Zenmap podemos ver qué puertos hay abiertos en cualquier dispositivo. En el apartado de
Objetivo tenemos que poner la dirección IP que corresponde a ese equipo para, posteriormente, realizar el
escaneo para que muestre cuáles están abiertos.
Por tanto, lo primero que tenemos que hacer es saber cuál es la dirección IP de nuestro equipo. En
Windows este proceso es muy sencillo. Simplemente tenemos que ir a Inicio, ejecutamos el Símbolo del
sistema y posteriormente ipconfig. Nos mostrará una serie de información entre las que podemos ver la
puerta de enlace predeterminada (generalmente [Link]) así como la dirección IP de ese equipo.
Cuando sepamos cuál es la dirección tendremos que ponerla en el apartado de Objetivo, en Zenmap.
Posteriormente tendremos que elegir el tipo de escaneo que queremos realizar, como podría ser por
ejemplo un escaneo completo de todos los puertos TCP.
En Zenmap, en la parte de arriba, encontraremos diferentes pestañas. Veremos Salida Nmap,
Puertos/Servidores, Topología, Detalles del servidor y Escaneos. Todos ellos nos aportan información, así
como poder elegir el tipo de servicio en la parte de la izquierda.
Cuando le damos a Puertos/Servidores nos aparecerá una recopilación de todos los puertos
abiertos y filtrados que hay en ese host. Hay que tener en cuenta que nos aparecerán más o menos puertos
en función del tipo de escaneo que hayamos realizado.
Si pinchamos en Escaneos nos aparecerán todos los escaneos que hemos realizado. Los podemos
guardar para poder analizar los datos en otra ocasión, así como también eliminarlos y que no aparezcan
ahí.
Esto lo podemos hacer con cualquier otro equipo que tengamos conectado a la red. Por ejemplo,
podemos comprobar también los puertos abiertos y hacer un escaneo a nuestro teléfono móvil.
Únicamente vamos a necesitar conocer cuál es la dirección IP. Eso sí, hay que tener en cuenta que este
proceso puede tardar más o menos según el tipo de dispositivo.
En definitiva, Zenmap es un programa interesante con el que podemos hacer escaneos de puertos.
Lo podemos usar en Windows, que es el sistema operativo más utilizado en equipos de escritorio, así como
en Linux y macOS. Su uso es sencillo e intuitivo y podremos tener un mayor control sobre qué puertos
tenemos abiertos, especialmente cuando necesitamos conocer si un equipo va a funcionar correctamente
al hacer uso de alguna aplicación que requiera de ciertos puertos abiertos.
Alternativas a NMAP
NMAP no es la única herramienta que podemos encontrar. En internet hay muchas que pueden
hacer la función de forma correcta, incluso algunas con nuevas características. Por ejemplo:
• FING: Es una opción orientada a dispositivos móviles. Nos permite realizar un análisis de forma
rápida de la red donde estamos conectados. Con facilidades para detectar intrusos y realizar un
control sobre la actividad que se lleva a cabo en la red. Es decir, podremos conocer todos los
dispositivos que están conectados a un router, así como su MAC o IP, y expulsarlos si notamos un
intruso.
• Masscan: Es una herramienta diseñada para realizar escaneos de puertos de manera muy rápida y
eficiente. Su enfoque se centra en la velocidad, permitiendo escanear grandes rangos de
direcciones IP en un corto periodo de tiempo. Utiliza técnicas de escaneo asíncrono y paralelo para
lograr velocidades altas. Funciona con un método de escaneo conocido como escaneo de
dispersión, que implica el envío de paquetes de manera no secuencial y en paralelo. Esto le permite
identificar puertos abiertos y dispositivos activos en la red de manera rápida y efectiva. Su enfoque
en la velocidad, lo convierte en una opción muy popular para tareas donde la rapidez es
[Link] otro lado, su interfaz está orientada a la línea de comandos, lo que la hace muy
simple y directa. Los usuarios especifican los parámetros, como el rango de direcciones IP y los
puertos a escanear, directamente en la línea de comandos. Los resultados se presentan también
en la misma línea, mostrando información sobre los puertos abiertos y los dispositivos
[Link] captura y analiza los paquetes de datos que fluyen a través de una red. Al
examinar estos paquetes, puede identificar direcciones IP, protocolos utilizados y dispositivos
activos en la [Link] otro lado, cuenta con una interfaz muy intuitiva. Los usuarios pueden
seleccionar la interfaz de red a capturar, aplicar filtros para centrarse en datos específicos y
visualizar los paquetes de manera detallada.
• Wireshark: Otra de las herramientas más utilizadas que se centra en la captura y análisis de tráfico
de red es Wireshark. Aunque no es una herramienta exclusivamente de escaneo, puede utilizarse
para descubrir dispositivos en la red a través del análisis de paquetes y la identificación de patrones
de tráfico.
• Angry IP Scanner: De nuevo nos encontramos ante un programa multiplataforma. Gratuito y con la
posibilidad de realizar un análisis de varias interfaces de red. Este resulta muy rápido al escanear
los puertos.
• WinMTR: En este caso estamos ante un ejemplo que es muy sencillo de utilizar y también gratuito.
Pero solo está disponible para Windows, lo cual limita un poco. Esta puede diagnosticar problemas
en las conexiones, a la vez que nos da opciones de ping y traceroute. De todos modos, resulta una
de las más básicas.
• Skipfish: Esta herramienta es un poco más compleja de utilizar, debido a que es muy técnica. El
mayor problema que presenta es que está descontinuado desde el 2010. En todo caso sigue siendo
accesible mediante su código. Es gratuita, y funciona en todas las plataformas más conocidas.
• Scapy: Aquí no encontramos un analizador de red. Pero si nos permite manipular paquetes, y actuar
como un sniffer. Esto hace que sea posible descifrar paquetes WEB, analizar VLANs y revisar redes
VoIP. Resulta una de las más complejas de todo el listado.
• Fingbox: Es una buena opción tanto para móviles como para equipos de escritorio. Tiene una versión
gratuita, pero la más completa es de pago.
Implementación en empresas
Muchas empresas deciden implementar estos sistemas para tener un poco más de control sobre
sus redes. Pero esto es algo que se debe estudiar de forma detenida, y siguiendo unos pasos para que todo
el proceso sea totalmente eficiente. Estos pasos son:
• Evaluación de necesidades: Siempre y cuando se implemente un nuevo sistema en una empresa,
es necesario realizar una evaluación de las necesidades que vamos a tener dentro de la
organización. Tendremos que identificar los objetivos, los activos críticos de la red, y todos y cada
uno de los requisitos de seguridad que vamos a necesitar solucionar con NMAP.
• Instalación y configuración: En cualquier entorno, lo más recomendable es acudir siempre a los
sitios oficiales para obtener la herramienta. Esto hará que el proceso sea totalmente seguro. Una
vez disponemos de ella, tendremos que configurar correctamente los ajustes y opciones en NMAP
para que esta cumpla con los requisitos específicos.
• Políticas y procedimientos: Las políticas que se establezcan en NMAP, deben ser claras y concisas.
Aquí podremos configurar los escaneos y los tipos, así como los protocolos de notificación y reporte
de hallazgos.
• Capacitación: Todo el personal que utilice NMAP, debe estar correctamente formado y capacitado
para utilizarlo. Será necesario comprender cómo se utiliza la herramienta de forma segura y
efectiva, y que siempre deben estar al tanto de todas las políticas y procedimientos.
• Análisis: Como es normal, NMAP nos va a dar unos resultados. Estos deben ser analizados, y como
tal será necesario tener un procedimiento para ello. Esto hará que el análisis sea mucho más
efectivo, y tengamos la información adecuada en todo momento.
• Actualizaciones: Una vez disponemos de la herramienta instalada y configurada, tendremos que
establecer la forma en la cual vamos a mantenerla actualizada. Esto es algo crítico, ya que será
necesario para que todo se mantenga lo más segura posible y con el funcionamiento más óptimo.
Como podemos ver, Nmap es una herramienta tremendamente útil, que nos puede dar muchas
facilidades a la hora de gestionar redes. Por lo que resulta, en muchos casos, una de esas aplicaciones
necesarias en caso de que se quiera llevar un control al mílimetro de los puertos.