Principales usos de Nmap
Os explico los principales usos de la potente herramienta Nmap, dedicada al escaneo de redes y puertos, desde sistemas GNU/Linux. No soy para nada un experto en seguridad, pero siempre viene bien tener cerca una hoja de referencia, de los principales usos de esta popular herramienta de ciberseguridad
¿Qué es Nmap y para qué sirve?
Se trata un programa que sigue la filosofía de desarrollo de código abierto, que tiene como principal función el escaneo de puertos en una red dada. Aunque se creo únicamente para GNU/Linux, actualmente, gracias al trabajo de la comunidad que tiene detrás, es multiplataforma. Se suele utilizar dentro del ámbito de la seguridad, así como para descrubir servicios o equipos en una red informática.
Nmap envía paquetes definidos a otros equipos dentro de una red y analiza las respuestas. También existe la posibilidad de hacer un uso avanzado mediante una serie de guiones, para proveer servicios de detección avanzados, detección de vulnerabilidades y otras aplicaciones
Para más información sobre Nmap podéis consultar su portal web: Documentación de Nmap
De esta herramienta ya os hable en la entrada: Las mejores herramientas DNS en Linux
Seleccionado el objetivo
Cuál ave de presa, veamos como podemos seleccionar nuestros objetivos, mediante esta serie de parámetros:
Uso básico contra una IP en particular | nmap 192.168.0.1 |
Escaneo de un host | nmap www.webobjetivo.com |
Escaneo de un rango de IPs | nmap 192.168.0.1-100 |
Escanear toda una subnet | nmap 192.168.0.1/24 |
Escaner desde un fichero de texto | nmap -iL fichero.txt |
Por defecto se encarga de escanear los 1000 primeros puertos.
Un ejemplo de su uso sin parámetros:
[root@servcentos01 ~]# nmap 192.168.0.20 Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-21 19:16 CEST Nmap scan report for raspberrypi (192.168.0.20) Host is up (0.0013s latency). Not shown: 998 closed ports PORT STATE SERVICE 53/tcp open domain 80/tcp open http MAC Address: ....... (Raspberry Pi Foundation) Nmap done: 1 IP address (1 host up) scanned in 18.88 seconds
En el caso del fichero.txt podría contener un contenido como este:
192.168.1.100 ochobitshacenunbyte.com colaboratorio.net hola.com
Selección de puertos con Nmap
Escanear un puerto en concreto | nmap -p 21 192.168.0.1 |
Escanear un rango de puertos | nmap -p 201-300 192.168.0.1 |
Escanear los puertos más utilizados (modo rápido) | nmap -F 192.168.0.1 |
Escanear un número dado de los puertos más importantes | nmap –top-ports 20 192.168.0.1 |
Escanear los 65535 puertos (todos) | nmap -p- 192.168.0.1 |
Diferentes tipos de escaneo
Escanear utilizando una conexión TCP | nmap -sT 192.168.0.1 |
Escanear utilizando una escan SYN (por defecto) | nmap -sS 192.168.1.1 |
Escanear los puertos UDP | nmap -sU -p 123,161,162 192.168.0.1 |
Escanear puertos ignorando el discovery | nmap -Pn -F 192.168.0.1 |
Se requiere acceso privilegiado para realizar los análisis SYN predeterminados. Si los privilegios son insuficientes, se utilizará un escaneo de conexión TCP. Una conexión TCP requiere que se establezca una conexión TCP completa y, por lo tanto, es una exploración más lenta.
Si no sabes que significan las siglas SYN, yo te explico. El escaneo SYN es una táctica que un hacker malicioso (o cracker) puede usar para determinar el estado de un puerto de comunicaciones sin establecer una conexión completa. Este enfoque, uno de los más antiguos en el repertorio de crackers, a veces se usa para realizar ataques de denegación de servicio (DDoS). El escaneo SYN también se conoce como escaneo medio abierto.
A menudo se requiere ignorar el descubrimiento ya que muchos servidores de seguridad o hosts no responderán a PING, por lo que podría perderse a menos que seleccione el parámetro -Pn
. Por supuesto, esto puede hacer que los tiempos de escaneo sean mucho más largos, ya que podría terminar enviando sondas de escaneo a hosts que no están allí.
Detección de servicios y sistema operativo
Detectar servicios y sistema operativo | nmap -A 192.168.0.1 |
Detección de los servicios standard | nmap -sV 192.168.0.1 |
Detección en modo agresivo | nmap -sV –version-intensity 5 192.168.0.1 |
Detección en modo ligera | nmap -sV –version-intensity 0 192.168.0.1 |
El servicio y la detección del sistema operativo se basan en diferentes métodos para determinar el sistema operativo o servicio que se ejecuta en un puerto en particular. La detección de servicio más agresiva a menudo es útil si hay servicios que se ejecutan en puertos inusuales. Por otro lado, la versión más ligera del servicio será mucho más rápida, ya que en realidad no intenta detectar el servicio simplemente agarrando el banner del servicio abierto.
Formatos de salida en Nmap
Salida por defecto | nmap -oN ficherodesalida.txt 192.168.0.1 |
Guardar en formato XML | nmap -oX ficherodesalida.xml 192.168.0.1 |
Guarda en formato con grep | nmap -oG ficherodesalida.txt 192.168.0.1 |
Guardar en todos los formatos | nmap -oA fichero de salida 192.168.0.1 |
El formato predeterminado también se puede guardar en un archivo mediante un comando simple de redirección de archivos El uso de la opción -oN
permite guardar los resultados, pero también se puede monitorear en el terminal mientras se realiza el escaneo.
Guiones avanzados de NSE
¿Qué son los guiones NSE?
El Nmap Scripting Engine (NSE) es una potente funcionalidad del Nmap que permite la ejecución de scripts, que además permite que los usuarios puedan escribir y compartir scripts para realizar multitud de tareas.
Escanear utilizando los scripts predeterminados | nmap -sV -sC 192.168.0.1 |
Obtener ayuda para un guión | nmap –script-help=ssl-heartbleed |
Escanear utilizando un guión NSE en concreto | nmap -sV -p 443 –script=ssl-heartbleed.nse 192.168.0.1 |
Escanear utilizando un set de guiones | nmap -sV –script=smb* 192.168.0.1 |
Los scripts pueden realizar una amplia gama de pruebas relacionadas con la seguridad y funciones de descubrimiento. Si nos tomamos en serio el escaneo de nuestra red, deberíamos conocer algunos de ellos.
La opción --script-help = $ scriptname
mostrará la ayuda para los scripts individuales. Para obtener una lista fácil de los scripts instalados, intente localizar nse | grep script
Hemos utilizado el parámetro de detección del servicio -sV. En general, la mayoría de los scripts de NSE serán más efectivos y obtendrá una mejor cobertura al incluir la detección de servicios.
En este enlace podéis consultar la lista disponible de guiones NSE para NMAP : NSE Scripts
Deshabilitar la resolución DNS
Si necesitamos acelerar un poco los escaneos, siempre podemos optar por desactivar la resolución inversa de DNS para todos los escaneos. Simplemente agregando el parámetro «-n«.
Por ejemplo:
nmap -p 80 -n 192.168.0.20
Información servicio web HTTP
Recopilar títulos de página de servicios HTTP | nmap –script=http-title 192.168.1.0/24 |
Obtener encabezados HTTP de servicios web | nmap –script=http-headers 192.168.1.0/24 |
Encuentra aplicaciones web de rutas conocidas | nmap –script=http-enum 192.168.1.0/24 |
Hay muchos scripts de recopilación de información HTTP, aquí vemos algunos ejemplos. Ayuda a identificar rápidamente qué servicio HTTP se está ejecutando en el puerto abierto. Hay que tener en cuenta que el script http-enum
es particularmente ruidoso. Es similar a Nikto
en que intentará enumerar rutas conocidas de aplicaciones web y scripts. Esto inevitablemente generará cientos de respuestas HTTP 404 en el error del servidor web y en los registros de acceso.
Y esto es todo. La verdad que es un resumen y seguro que tu tienes alguna otra fórmula de parámetros y opciones, ¿la quieres compartir en los comentarios? Y nada, espero que esta entrada os sea de utilidad en algún momento. He consultado bastante documentación para realizar esta entrada, la podéis consultar al final de la entrada. Nos vamos leyendo.
Fuentes consultadas
Securityartwork.es – Nmap Scripting Engine