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

Logo oficial del proyecto Nmap

¿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

Hackertarget.com – Nmap Cheat Sheet

Searchnetworking.techtarget.com – What is SYN scanning?