Qué es Nmap (Network Mapper)

Artículo creado por: Sheyla Leacock | Embajadora Dojo

Para: https://backtrackacademy.com/

Link: https://backtrackacademy.com/articulo/introduccion-al-escaneo-de-red-y-vulnerabilidades-con-nmap

Nmap es una herramienta opensource utilizada para el escaneo de redes, puertos y vulnerabilidades de servicios que pueden servir como punto de entrada a los sistemas.

Utilizada comúnmente en auditorías de seguridad y monitoreo de redes.

Qué cosas podemos realizar con Nmap

  • Identificar los dispositivos conectados a la red que queremos estudiar.
  • Conocer los puertos abiertos, el sistema operativo o aplicación  en ejecución y su versión. Todo esto mediante estándares de uso de puertos.
  • Encontrar servicios vulnerables en la red.

Clasificación general de escaneos:

  • Activos: con los escaneos activos los resultados son más precisos pero dejamos huellas que pueden ser detectadas por firewalls o IDS activos.
  • Pasivos:  con los escaneos pasivos obtenemos resultados no tan precisos, pero es más difícil que seamos detectados.

Tipos de escaneos

Escaneo Ping / Escaneo ARP: Utiles para conocer qué servidores se encuentran activos. Cuando nos encontramos en una red local se ejecuta un escaneo ARP para obtener información de los servidores activos.

Sondeo de lista: Se realiza una resolución inversa de DNS para obtener los nombres de los equipos. A diferencia del escaneo Ping, con este escaneo no se envía ningún tipo de paquete hacia el objetivo.

Escaneo TCP connect: Realiza una conexión completa con los puertos que están a la escucha (3 way hand shake). Es el escaneo por defecto sino se utilizan privilegios de administrador para ejecutar el TCP SYN.

Comando

nmap -sT 192.168.1.2

Resultado de imagen para 3 way handshake active/passive

Escaneo TCP SYN (half open): Esta es la opción de escaneo por defecto en Nmap. Consiste en  enviar un paquete SYN y dependiendo del tipo de respuesta del servidor, se determina el estado del mismo. Si el servidor responde con SYN/ACK significa que se encuentra abierto, si responde con un RST significa que está cerrado y si no se obtiene respuesta se deduce que el puerto está filtrado por un firewall.

Cuando la respuesta del servidor es SYN/ACK, nmap envía un paquete RST para cortar la conexión. Este escaneo es útil cuando el servidor bloquea los paquetes ping. Se requieren privilegios de usuario root o administrador para ejecutar este escaneo.

Comando:

 nmap -sS 192.168.1.2

Resultado de imagen para SYN (half open)

Escaneo TCP ACK: Los paquetes TCP se envían con la bandera ACK, si el servidor responde con un RST significa que el puerto puede estar abierto o cerrado, si no se obtiene respuesta significa que existe un firewall de por medio.

Comando:

nmap -sA 192.168.1.2

Escaneo a nivel de puertos (UDP): Se utiliza el escaneo UDP para enviar paquetes a cada uno de los puertos de un servidor para conocer cuales están abiertos. Si se recibe un mensaje ICMP de puerto inalcanzable significa que el puerto está cerrado, si no se obtiene respuesta el puerto se encuentra abierto.

El escaneo UDP es lento debido a las limitaciones de mensajes de error ICMP de algunos sistemas operativos (Windows no limita la frecuencia de mensajes ICMP para sus dispositivos).

Otros tipos de escaneo:

Escaneo FIN: Envía paquetes TCP con bandera FIN. El objetivo es saber si el servidor se encuentra filtrado por un firewall. Si el servidor responde con RST significa que el servidor no está filtrado y si no se recibe respuesta se asume como filtrado.

nmap -sF 192.168.1.2

Escaneo Xmas: Envía las banderas FIN, PSH, URG de la cabecera TCP.

nmap -sX 192.168.1.2

Escaneo Null: No se envía ninguna bandera en la cabecera. Si se obtiene una respuesta RST significa que el puerto está cerrado, si no se obtiene respuesta el puerto está abierto.

nmap -sF 192.168.1.2

Aunque el propósito de estos escaneos es saltarse la protección del firewall, basándose en que el firewall al no saber cómo tratar estos paquetes podría dejarlos pasar, muchos de éstos escaneos son detectados fácilmente hoy en día.

Configuraciones y escaneos personalizados

Modificación de banderas: Podemos crear nuestros escaneos personalizados modificando detalles como las banderas que utilizaremos durante el escaneo.

nmap –scanflags  192.168.1.2

Detección de sistema operativo:  Analiza la huella TCP/IP que generan los servidores y la compara con su archivo nmap-os-fingerprints para determinar qué sistema operativo está siendo escaneado. Para ejecutar este escaneo se necesita tener un puerto abierto y uno cerrado en el servidor objetivo.

Identidad: identifica el usuario del proceso en la conexión TCP (conexión completa).

Opción -I

Fragmentación de paquetes: Divide la cabecera TCP en pequeños paquetes. Útil para evadir algunos IDS y firewalls. Algunos firewalls como el kernel de linux ponen en cola los fragmentos y este método no funciona.

Opción -f

Almacenamiento de resultados: Guarda resultados de escaneos en formato legible para humanos en un archivo especificado.

Opción -o

Guarda resultados de escaneo en formato máquina en un archivo especificado.

Opcion -m

Señuelos: Los señuelos permiten utilizar direcciones ip falsas para engañar la procedencia del escaneo. Genera direcciones ip únicas para que no se detecte que todo el escaneo procede de una misma ip. Coloca la ip real en una posición aleatoria, pero podemos especificar la posición en la que queremos que aparezca nuestra IP con la opción ME. Los servidores señuelos utilizados deben estar activos.

Opción -D

Algunos firewalls implementan la opción de denegar la ruta a servidores que intentan escanear los puertos, por lo que se pierde el señuelo y se tiene problema si las direcciones son el gateway  o host local.

Escaneo Idle (Zombie): escaneo en el cual los paquetes al servidor objetivo no se envían con nuestra ip real, sino que se envían mediante un servidor “zombie”.

nmap -sI   

Timmings (0-5): Permiten controlar los tiempos de envío y respuesta de paquetes al servidor. Un timming seteado en 5 (intenso) será un escaneo más rápido y agresivo, lo que dejará muchos rastros.

Un escaneo en 0 (paranóico) tratará de no dejar rastro, por lo que resulta uno de los escaneos más lentos (horas o días).

Por defecto en Nmap se maneja el timming 3 (normal).

Otras configuraciones:

  • Max & Min RTT: controla el tiempo máximo y mínimo de espera de respuesta del servidor.
  • Host timeout: tiempo máximo que se escaneará un servidor.
  • Paralelism: Número de escaneos que se ejecutarán en paralelo.
  • Scan delay: tiempo mínimo de espera entre cada escaneo para evitar ser detectado por algunos IDS/IPS.

Trabajando con scripts en Nmap

Una de las características que le brinda fortaleza y a la vez  flexibilidad a Nmap es su motor de scripting (NSE).

Nmap cuenta con unos scripts predefinidos que podremos utilizar para obtener información sobre la vulnerabilidad de los sistemas ante algunos ataques, además de personalizar la ejecución de los scripts mediante los argumentos que le pasemos durante un escaneo e incluso tenemos la posibilidad de escribir scripts propios que se ajusten a nuestras necesidades mediante el lenguaje LUA.

Además Nmap permite que se puedan añadir scripts personalizados para explotar las vulnerabilidades encontradas.

Podemos ejecutar los scripts ya sea indicando una categoría de scripts, el nombre del script específico o el directorio en donde se almacena el o los scripts que queremos utilizar.

Categorías de scripts de Nmap:

Nmap relaciona sus scripts en diferentes categorías, lo que nos permite en un momento ejecutar todos los scripts relacionados a una categoría que sea de nuestro interés.

Vln: Permite identificar si el equipo está expuesto a alguna vulnerabilidad conocida. Esto es útil en auditoría de sistemas para posteriormente aplicar las correcciones necesarias al sistema.

Auth: En esta categoría se agrupan los scripts utilizados para la autenticación o bypass de autenticación en los sistemas.

Brute: Estos scripts están relacionados con la ejecución de ataques de fuerza bruta para la autenticación en los sistemas.

Discovery: Estos scripts se utilizan para obtener mayor información de la red mediante el acceso a registros públicos, directorios de servicios, entre otros.

External: Scripts que por su naturaleza de ejecución pueden compartir o consultar datos con terceros, ya sea datos del propio sistema o del sistema objetivo.

Exploit: Scripts que se utilizan para la explotación de vulnerabilidades.

DOS: Scripts utilizados para causar ataques de denegación de servicio a los sistemas.

Version: Estos scripts son una extensión a la características de reconocimiento de versión de Nmap.

Intrusive: Scripts intrusivos que utilizan muchos recursos en el sistema objetivo y pueden dejar logs o rastros de nuestro escaneo a los administradores del sistema.

Malware: Scripts que pueden indicar si el sistema está infectado con algún tipo de malware mediante el escaneo de servicios ejecutándose en puertos no comunes y la identificación de respuestas falsas por el sistema.

Safe: En esta categoría se incluyen scripts no intrusivos, es decir scripts seguros que no generan logs o rastros y que no realicen un escaneo agresivo contra el sistema.

Script all: Ejecuta todos los scripts disponibles, lo que puede generar logs en el sistema.

Default: Scripts por defecto de Nmap. Para decidir qué scripts deben ejecutarse como default se consideran varias métricas como la velocidad, confiabilidad, nivel de intrusión, privacidad, entre otros.