Realiza escaneos de puertos con Nmap
Realiza escaneos de puertos con Nmap – Si tienes alguna inquietud recuerda contactarnos a través de nuestras redes sociales, o regístrate y déjanos un comentario en esta página. También puedes participar en el WhatsApp. Si usas Telegram ingresa al siguiente enlace.
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. ¿Quieres saber todo sobre Nmap y cómo utilizarlo? En RedesZone te explicamos todo lo que debes saber sobre esta herramienta.
Principales características
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.
Además
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.
Para que 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 que 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.
Además
- 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.
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»»
Además
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.
Además
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.
Realiza escaneos de puertos con Nmap
Además
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″»
Además
El programa nos indicará dentro de ese rango qué puertos están abiertos.
Realiza escaneos de puertos con Nmap
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″»
Realiza escaneos de puertos con Nmap
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.
Realiza escaneos de puertos con Nmap
Además
- -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
Además
- –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»
Además
Realiza escaneos de puertos con Nmap
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.
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.
Realiza escaneos de puertos con Nmap
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.
Además
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:
Además
«»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″»
Realiza escaneos de puertos con Nmap
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.
Además
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.
Además
- 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.
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.
Además
- 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.
Como podemos ver, Nmap es una herramienta tremendamente útil, que nos puede dar muchas facilidades a la hora de gestionar redes.