Realiza escaneos de puertos con Nmap a cualquier servidor o sistema

Realiza escaneos de puertos con Nmap a cualquier servidor o sistema

Sergio De Luz

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. ¿Quieres saber todo sobre Nmap y cómo utilizarlo? En RedesZone te explicamos todo lo que debes saber sobre esta herramienta.

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 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.

Ver puertos abiertos con Zenmap

Hemos visto qué son los ataques de escaneos de puerto. Ahora vamos a explicar algunas acciones que podemos llevar a cabo para evitar este problema. Como siempre, tenemos diferentes opciones para evitar que los piratas informáticos puedan acceder a nuestra red y poner en riesgo la seguridad.

 

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.

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.

 

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.

 

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 los mismos.
  • 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.
 

Para qué escanear puertos

Como hemos visto, 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.

 

Estado de los puertos con Nmap

  • 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:

  • 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íficos 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. Por lo cual, 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

Lo primero que tenemos que hacer para utilizar este programa tan potente, es descargarlo y posteriormente instalarlo. En la sección de descargas de Nmap 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.

 

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 192.168.1.2, la orden sería la siguiente:

nmap 192.168.1.2

El programa nos devolverá los puertos que se encuentran abiertos en el equipo objetivo.

puertosnmap_foto_2

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 192.168.1.2, basta con ejecutar la siguiente orden:

nmap -p 20-200 192.168.1.2

El programa nos indicará dentro de ese rango qué puertos están abiertos.

puertosnmap_foto_3

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 192.168.1.2 podemos ejecutar la siguiente orden:

nmap -A -v 192.168.1.2

puertosnmap_foto_4

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: scanme.nmap.org, microsoft.com/24, 192.168.0.1, 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 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 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

puertosnmap_foto_5

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 la 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, si no 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, pordemos determinar si los puertos están abiertos o cerrados.

 

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 usuarios.txt) y con un listado de contraseñas a probar (con un archivo que se llame claves.txt) a un servidor SSH de un determinado equipo que tiene la IP 99.99.99.99, podemos poner el siguiente comando:

nmap -p 22 --script ssh-brute --script-args userdb=usarios.txt,passdb=claves.txt --script-args ssh-brute.timeout=4s 99.99.99.99

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 99.99.99.99

si queremos realizar un ataque de fuerza bruta a un servidor FTP a un servidor con la IP 99.99.99.99, podemos poner el siguiente comando:

nmap -p 21 --script ftp-brute 99.99.99.99

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, si no 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 software, 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.

Pantalla de inicio Zenmap

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 192.168.1.1) 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.

Escaneo de 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 aporta 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.

Puertos servidores Zenmap

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.
  • 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 importante.Por 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 detectados.Wireshark 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 red.Por 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.

¡Sé el primero en comentar!