Nmap, herramienta de escaneo de puertos y monitoreo de red
Nmap es una herramienta, de código abierto, de escaneo de puertos y monitoreo de la red para encontrar hosts y servicios en un equipo. Funciona enviando paquetes al host de destino para descubrir la red y hacer una auditoría de seguridad.
Sumario
- Que son los puertos
- Que es nmap
- Instalacion de nmap
- Características de nmap
- Uso de la herramienta
- Conclusión
Que son los puertos
Para comprender como funciona esta herramienta, primero debemos saber que es un puerto de comunicación.
En las comunicaciones entre equipos informáticos, siempre encontramos el concepto de puerto. Pero, ¿qué es un puerto de comunicaciones?
Los puertos de comunicaciones, o puertos lógicos, son las interfaces que utilizan las aplicaciones para realizar la conexión con otra aplicación u otro equipo, y enviar y recibir paquetes de datos. Son tanto el punto inicial como el final a través de los cuales fluye la información.
Podemos decir que se trata de una puerta de entrada, o salida, específica que permite que múltiples servicios se ejecuten en el mismo equipo, o en uno remoto, sin entrar en conflicto. Para que los paquetes de datos puedan dar con una entrada en el cliente o servidor del otro lado de la conexión, debe haber puertas abiertas. Este tipo de entradas al sistema se denominan puertos.
Están definidos por un número entero entre 0 y 65535. Son un número de identificación que se utiliza para distinguir diferentes canales de comunicación en una misma máquina o entre equipos en una red.
Los puertos se dividen en tres categorías, puertos bien conocidos «well-known port», que incluyen el rango entre el 0 y el 1023, también denominados puertos del sistema, y que se utilizan para protocolos determinados como: ftp (20 y 21), ssh (22), telnet (23), smtp (25), http (80), POP3 (110), IMAP (143), HTTPS (443), etc…
Los puertos comprendidos entre el 1024 y 49151, se denominan puertos registrados y son utilizados por determinadas aplicaciones como, por ejemplo, el 1194/udp para OpenVPN, 1812 y 1813/udp y tcp para RADIUS, 2049/tcp para NFS, 3306/tcp para MySQL, 3389/tcp para escritorio remoto, 4662/tcp y 4672/udp para eMule, 10000/tcp para Webmin, etc…
Al tercer tipo de puertos, que cubren el rango entre 49152 y 65535 se les denomina puertos dinámicos o privados, ya que no están registrados por la IANA, y los podemos utilizar para servicios privados o personalizados.
Estos puertos se utilizan para crear los sockets de comunicación, que son un mecanismo de comunicación entre procesos para permitir la comunicación bidireccional, tanto entre procesos que se ejecutan en una misma máquina, como entre procesos lanzados en diferentes máquinas. Esto último se consigue combinándolos con las direcciones IPs.
No obstante también te encontraras con que se denomina puerto hardware a las conexiones físicas para conectar dispositivos a tu equipo como: PS/2, VGA, Firewire, RJ-45, ranuras PCI, DVI, HDMI, eSATA, USB, S/PDIF, RCA, etc… y aunque sería más preciso referirse a estas interfaces como conectores, también se les llama puertos.
Que es nmap
Ahora que sabemos lo que es un puerto, vamos a ver que es nmap y cual es su función. Tienes toda la información que necesites en su página oficial.
Nmap es una herramienta de escaneo de puertos y monitoreo de red.
Nmap es un programa escrito originalmente por Gordon Lyon, más conocido por su alias Fyodor Vaskovich y liberado, en su primera versión, el 1 de septiembre de 1997. Creado originalmente para Linux, actualmente es multiplataforma y es usado para pruebas de penetración y tareas de seguridad informática en general. Es mantenido por la comunidad.
La herramienta nmap puede usarse para bien o para mal. Puede usarse solo o para preparar otro ataque, con otra herramienta de intrusión, pero los administradores de sistemas lo utilizamos para buscar fallos en nuestras propias redes, o bien para detectar equipos que no cumplen con los requisitos mínimos de seguridad.
Nos permite escanear rápidamente redes grandes, pero funciona perfectamente bien contra hosts individuales. Se ejecuta en todos los principales sistemas operativos y hay paquetes binarios oficiales disponibles para Linux, MacOS y Windows.
Resulta muy útil para tareas como el inventario de la red y el seguimiento del tiempo de actividad del host.
Nmap es una herramienta de escaneo de puertos y monitoreo de red que utiliza paquetes IP sin procesar para determinar qué equipos están disponibles en la red, qué servicios (nombre y versión de la aplicación) ofrecen esos hosts, qué sistemas operativos (y versiones de SO) están ejecutando y qué tipo de filtros/cortafuegos de paquetes están en uso, entre otras muchas características.
Está disponible para su descarga gratuita y también dispones del código fuente completo, que puedes modificar y redistribuir según los términos de la licencia Nmap Public Source License, basada en GNU GPLv2.
Características de nmap
La última versión de nmap es la 7.94, liberada el día de su 26 cumpleaños.
Además del ejecutable en línea de comandos nmap, que vamos a ver, la suite Nmap incluye una GUI avanzada «Zenmap», una herramienta flexible de transferencia, redirección y depuración de datos «Ncat», una utilidad para comparar resultados de escaneo «Ndiff» y una herramienta de generación de paquetes y análisis de respuestas «Nping», que en esta versión han migrado de Python 2 a Python 3.
Entre las principales características de nmap, una herramienta de escaneo de puertos y monitoreo de red son,
- Flexible: admite docenas de técnicas avanzadas para mapear redes llenas de filtros IP, firewalls, enrutadores y otros elementos de interconexión. Incluye mecanismos de escaneo de puertos, tanto TCP como UDP, detección de sistema operativo y versión del mismo, barridos de ping y alguna función más.
- Potente: Nmap se ha utilizado para escanear enormes redes de literalmente cientos de miles de máquinas.
- Portátil: ofrece compatibilidad con la mayoría de los sistemas operativos, incluidos Linux, FreeBSD, OpenBSD, Solaris, Windows, IRIX, MacOS, HP-UX, NetBSD, Sun OS, Amiga y alguno más.
- Fácil: aunque nmap nos brinda funciones avanzadas para usuarios avanzados, puedes comenzar con algo tan simple como ejecutar nmap IP_del_host_objetivo.
- Gratis: El objetivo principal del Proyecto NMAP es proporcionar una herramienta para que Internet sea un poco más seguro creando una herramienta avanzada que permita a los administradores, auditores y hackers explorar sus redes.
- Bien documentado: se ha realizado un esfuerzo significativo para crear páginas de manual (https://nmap.org/man/es/index.html), documentos técnicos, tutoriales e incluso un libro completo y actualizado.
- Compatible: si bien no incluye garantía, cuenta con el respaldo de una gran comunidad de desarrolladores y usuarios.
- Aclamado: Nmap ha ganado varios premios, incluido el de “Producto de seguridad de la información del año” por Linux Journal, Info World y Codetalker Digest. Se ha incluido en muchos artículos de revistas, películas (Matrix Reloaded, Oceans 8, Snowden, Los 4 fantásticos, The Bourne Ultimatum y más), libros e incluso en un cómic.
- Popular: tiene miles de descargas diarias y está incluido, por defecto, en muchos sistemas operativos como Redhat, Debian, Gentoo, FreeBSD, OpenBSD, etc… Se encuentra entre los diez mejores programas, de una lista de 30.000, en el repositorio Freshmeat.Net.
Instalación de Nmap
Si no la tienes disponible en tu sistema la instalas con
sudo apt install nmap
En Debian, como vemos en la siguiente captura, instala la versión 7.93 desde los repositorios oficiales.
Puedes consultar el manual en linea de la herramienta con el siguiente comando
man nmap
Para ver las opciones del comando ejecutarlo sin opciones ni argumentos
nmap
Uso de la herramienta
Si quieres escanear una dirección IP de un host concreto ejecuta la opción con la IP correspondiente
nmap 192.168.1.14
Nos dice que se han escaneado 1000 puertos y están todos cerrados.
Si lo que quieres es escanear el equipo que estas usando
nmap localhost
Como vemos están abiertos los puertos 22/tcp para ssh, el 514/tcp para shell y el 631/tcp para ipp. Nos dice que la dirección IPv6 de localhost no ha sido escaneada y que hay 997 puertos tcp cerrados.
Para obtener información sobre un sistema remoto tenemos que añadir las opciones -v y -A.
nmap -v -A 192.168.1.14
También podemos hacerlo con un dominio como objetivo
nmap -v -A scanme.nmap.org
Como puedes ver la información es muy completa. Están abiertos los puertos 22, 80,135, 139, 445, 9929 y 31337. Nos da las claves públicas de ssh, las versiones de los programas y el SO, que en este caso es Ubuntu.
También podemos escanear múltiples direcciones IP.
nmap 192.168.1.10 192.168.1.14 192.168.1.1
Esto mismo lo podríamos hacer ejecutando
nmap 192.168.1,10,14
O para un rango de IPs
nmap 192.168.1-25
Para escanear una red completa usamos la notación CIDR
nmap 192.168.1.0/24
Podemos escanear un rango de IPs usando wildcards
nmap 192.168.1.*
Y obtenemos el mismo resultado
Para saber si un host o red está protegida por un cortafuegos necesitarás los privilegios de root, ejecuta
sudo nmap -sA 192.168.1.254
Para activar el script de escaneo de detección de versión y sistema operativo utilizamos la opción -A
nmap -A 192.168.1.14
Con la opción -v aumenta el nivel de detalle de los mensajes.
Nmap-v.png
Nmap es una herramienta de escaneo de puertos y monitoreo de red muy potente, con otras opciones interesantes.
- -iL : Lee una lista de sistemas/redes del fichero.
- -iR : Selecciona objetivos al azar
- -p hostname: Escanea un puerto especificado del host indicado
- -p T: hostname: Escanea un numero de puerto tcp del host indicado
- -p U: hostname: Escanea un numero de puerto udp del host indicado
Para escanear direcciones IPv6 tenemos que usar la opción -6
nmap -6 Dirección_IPv6
Y para hacer un escaneado rápido usa la opción -F
nmap -F 192.168.1.1
Para mostrar el motivo por el que un puerto se encuentra en un estado particular, disponemos de la opción –reason
nmap --reason 192.168.1.1
Disponemos de muchísimas opciones para mostrar los puertos abiertos, los paquetes enviados y recibidos, las interfaces, e incluso las tablas de enrutamiento.
Conclusión
Nmap es una herramienta que puede realizar múltiples operaciones que nos ayudarán a securizar nuestros equipos y redes. Ten en cuenta que tener puertos abiertos, puede suponer una brecha de seguridad. En algunos SO, tras eliminar del sistema algún programa, el puerto que este hubiera abierto no se cierra y podría ser una puerta abierta para los ciberdelincuentes. Con nmap lo puedes comprobar y actuar en consecuencia.
Es importante tener en cuenta que es imposible detener el acto de escaneo de puertos, ya que cualquiera puede seleccionar cualquier dirección IP y escanearla en busca de puertos abiertos.
Lo más normal, al escanear una IP, es encontrarse con un cortafuegos. Los cortafuegos pueden responder a un escaneo de puertos de tres maneras: abierto, cerrado o sin respuesta.
Si un puerto está abierto o escuchando, responderá a la solicitud.
Un puerto cerrado responderá con un mensaje que indica que recibió la solicitud pero la rechazó. De esta manera, cuando un sistema envía una solicitud, sabe que la solicitud se recibió, pero no hay necesidad de volver a intentarlo. Sin embargo, esta respuesta también revela que hay un equipo detrás de la dirección IP escaneada y, por seguridad, tenemos la tercera opción que es no responder a la solicitud.
En este caso, si un puerto está bloqueado o en modo oculto, el cortafuegos no responderá al escaneo de puertos.
Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en pie de la página o desde aquí mismo.