El programa Nmap


  Nmap es un programa de código abierto que sirve para efectuar rastreo de puertos.
  Fue creado originalmente para Linux aunque actualmente es multiplataforma. Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o servidores en una red informática, para ello Nmap envía unos paquetes definidos a otros equipos y analiza sus respuestas.
  Este programa posee varias funciones para sondear redes de ordenadores, incluyendo detección de equipos, servicios y sistemas operativos. Estas funciones son extensibles mediante el uso de guiones para proveer servicios de detección avanzados, detección de vulnerabilidades y otras aplicaciones. Además, durante un escaneo, es capaz de adaptarse a las condiciones de la red incluyendo latencia y congestión de la misma.
  En general, es una buena alternativa al programa Wireshark.

  Entre las características más relevantes de Nmap se encuentran las siguientes:
  •   Descubrimiento de servidores: Identifica ordenadores en una red, por ejemplo listando aquellos que responden ping.
  •   Identifica puertos abiertos en un ordenador objetivo.
  •   Determina qué servicios está ejecutando la misma.
  •   Determinar qué sistema operativo y versión utiliza dicho ordenador (esta técnica es también conocida como "fingerprinting").
  •   Obtiene algunas características del hardware de red de la máquina objeto de la prueba.

  Nmap ha llegado a ser una de las herramientas imprescindibles para todo administrador de sistemas, y es usado para pruebas de penetración y tareas de seguridad informática en general.
  Como muchas herramientas usadas en el campo de la seguridad informática, es también una herramienta muy utilizada para piratear sistemas informáticos.
  Los administradores de sistemas pueden utilizarlo para verificar la presencia de posibles aplicaciones no autorizadas ejecutándose en el servidor, así como los delincuentes informáticos pueden usarlo para descubrir objetivos potenciales.
  Este programa permite hacer el inventario y el mantenimiento del inventario de ordenadores de una red. Se puede usar entonces para auditar la seguridad de una red, mediante la identificación de todo nuevo servidor que se conecte.
 No obstante, Nmap es a menudo confundido con herramientas para verificación de vulnerabilidades como Nessus. Este programa es difícilmente detectable, ya que ha sido creado para evadir el Sistema de detección de intrusos ["Intrusion Detection System" ("IDS"), en inglés] e interfiere lo menos posible con las operaciones normales de las redes y de los ordenadores que son analizados.
  Nmap suele funcionar en sistemas operativos basados en Unix (GNU/Linux, Solaris, BSD y Mac OS X), y también en otros sistemas operativos como Windows y AmigaOS.
  Zenmap es la interfaz gráfica oficial para sistemas operativos GNU/Linux, Windows, Mac OS X, etc.
  Para este programa, un puerto puede estar de tres maneras:
  • open: El puerto es accesible y hay un demonio escuchando. 
  • closed: El puerto es accesible pero no hay un demonio escuchando. 
  • filtered: El puerto no es accesible, un cortafuegos filtra el puerto.


INSTALACIÓN

  Este programa se encuentra en los repositorios de la mayoría de las distribuciones de Linux, por lo que, para instalarlo en estas sólo hay que utilizar los siguientes comandos:
  •   apt update (anteponiendo sudo si no se está como administrador): Actualiza la lista de paquetes.
  •   apt upgrade (anteponiendo sudo si no se está como administrador): Actualiza los paquetes instalados.
  •   apt install nmap: Instala Nmap.
    En el caso de Windows y MacOS, el programa debe descargarse de su página web oficial (ver en este enlace), ejecutarlo, y seguir las instrucciones del asistente de instalación.


USOS MÁS TÍPICOS DE NMAP

  En primer lugar, si, desde un terminal, se utiliza el comando nmap <dirección IP> mostrará los puertos que están abiertos tras un escaneo simple.
  El siguiente comando (nmap -Pn <dirección IP>) examina los puertos directamente, sin utilizar ping.

  Este otro (nmap -sP <direción IP/máscara de red>), comúnmente denominado “exploración de ping”, indica al programa que envíe una solicitud de eco icmp, TCP SYN al puerto 443, TCP ACK al puerto 80 y la solicitud de marca de tiempo icmp a todos los hosts en la subred especificada. Básicamente, descubre las direcciones IP de una subred.

  Si se emplea el comando nmap -O <dirección IP> (anteponiendo sudo si no se es administrador), se puede identificar el sistema operativo de un anfitrión. 

  Por su parte, el comando nmap -sL <dirección IP>, identifica los nombres de anfitrión de todas las direcciones IP de una subred.

  Otro comando interesante es nmap -sS -sU -Pn <dirección IP> (anteponiendo sudo si no se es administrador), que permite escanear puertos TCP y UDP comunes para ver si responden.

  También es posible encontrar los puertos TCP y UDP empleando el comando nmap -sS -sU -Pn -p <rango de puertos> <dirección IP> (anteponiendo sudo si no se es administrador).

  Si se pretenden escanear 1000 puertos comunes de la conexión TCP, se utilizará el comando nmap -sT <dirección IP>.

  Si se desea un escaneo rápido de 100 puertos, el comando a utilizar será nmap -T4 -F <dirección IP>. El parámetro "-T4" es para la plantilla de velocidad, estas plantillas son lo que le dice a Nmap lo rápido que debe realizar el escaneo.


  En el caso de querer realizar un escaneo más agresivo y molesto, se empleará el comando nmap -T4 -A <dirección IP>. El parámetro "-A" indicará al programa que realice la comprobación del sistema operativo y la verificación de versiones.

  Si se desea tener la información de Nmap de un modo más elaborado, se puede utilizar el parámetro "-v". Por ejemplo, utilizado en el comando anterior quedaría nmap -T4 -A -v <dirección IP>.

OTROS PARÁMETROS

Especificacion de objetivo:
  Se pueden indicar nombres de sistema, direcciones IP, redes, etc.  
  Ej: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
  -iL <archivo_entrada>: Lee una lista de sistemas/redes del archivo.
  -iR <número de sistemas>: Selecciona objetivos al azar.
  --exclude <sist1, [sist2], [sist3], ...>: Excluye ciertos sistemas o redes. 
  --excludefile <fichero_exclusión>: Excluye los sistemas indicados en el fichero.

Descubrimiento de anfitriones: 
  -P0: Asume que todos los objetivos están vivos. 
  -PS/PA/PU [listadepuertos]: Análisis TCP SYN, ACK o UDP de los puertos indicados.
  -PE/PP/PM: Solicita un análisis ICMP del tipo echo, marca de fecha y máscara de red.
  -n/-R: No hacer resolución DNS / Siempre resolver [por omisión: a veces].
  --dns-servers <serv1, [serv2],...>: Especificar servidores DNS específicos.
  --system-dns: Utilizar la resolución del sistema operativo.

Técnicas de análisis: 
  -sA/sW/sM: Análisis ACK/Window/Maimon. 
  -sN/sF/sX: Análisis TCP Null, FIN, y Xmas. 
  --scanflags <indicador>: Personalizar los indicadores TCP a utilizar
  -sI <sistema zombi[:puerto_sonda]>: Análisis pasivo ("Idle", en inglés).
  -sO: Análisis de protocolo IP. 
  -b <servidor ftp rebote>: Análisis por rebote FTP.

Especificación de puertos y orden de análisis:  
  -F: Rápido (analizar sólo los puertos listados en el archivo "nmap-services"). 
  -r: Analizar los puertos secuencialmente, no al azar.

Detección de servicio/versión: 
  -sV: Sondear puertos abiertos, para obtener información de servicio/versión.
  --version-intensity <nivel>: Fijar de 0 (ligero) a 9 (probar todas las sondas).
  --version-light: Limitar a las sondas más probables (intensidad 2).
  --version-all: Utilizar todas las sondas (intensidad 9).
  --version-trace: Presentar actividad detallada del análisis (para depurar).

 Detección del sistema operativo: 
  --osscan-limit: Limitar la detección de SO a objetivos prometedores. 
  --osscan-guess: Adivinar el SO de la forma más agresiva.

Temporizado y rendimiento:
  --min-hostgroup/max-hostgroup <tamaño>: Paralelizar los sondeos.
  --min-parallelism/max-parallelism <msegs>: Paralelización de sondeos.
  --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msegs>: Indica el tiempo de ida y vuelta de la sonda.
  --max-retries <reintentos>: Limita el número máximo de retransmisiones de las sondas de análisis de puertos.
  --host-timeout <msegs>: Abandonar un objetivo pasado este tiempo.
  --scan-delay/--max-scan-delay <msegs>: Ajusta el retraso entre sondas.

Evasión y falsificación para cortafuegos/IDs:
  -f; --mtu <valor>: fragmentar paquetes (opc. con el MTU indicado) 
 -D <señuelo1, señuelo2, [ME], ...>: Disimular el análisis con señuelos ("ME»" es "YO" mismo).
  -S <Dirección_IP>: Falsificar la dirección IP origen. 
  -e <interfaz>: Utilizar la interfaz indicada. 
  -g/--source-port <numpuerto>: Utilizar el número de puerto dado. 
  --data-length <num>: Agregar datos al azar a los paquetes enviados. 
  --ttl <val>: Fijar el valor del campo time-to-live (TTL) de IP.
  --spoof-mac <dirección mac/prefijo/nombre de fabricante>: Falsificar la dirección MAC.
  --badsum: Enviar paquetes con una suma de comprobación TCP/UDP falsa.

Salida: 
 -oN/-oX/-oS/-oG <file>: Guardar el sondeo en formato normal, XML, s|<rIpt kIddi3 (n3n3b4n4n4), y grepeable (para usar con grep), respectivamente, al archivo indicado. 
  -oA <nombre_base>: Guardar en los tres formatos principales al mismo tiempo.
  -vv: Aumentar el efecto del parámetro "-v".
  -d[nivel]: Fijar o incrementar el nivel de depuración (tiene sentido hasta 9).
  --packet-trace: Mostrar todos los paquetes enviados y recibidos. 
  --iflist: Mostrar interfaces y rutas (para depurar). 
  --append-output: Agregar, en vez de sobreescribir, a los archivos indicados con "-o". 
  --resume <archivo>: Retomar un análisis abortado/detenido.
 --stylesheet <ruta/URL>: Convertir la salida XML a HTML según la hoja de estilo XSL indicada.
  --webxml: Referenciar a la hoja de estilo de "Insecure.Org" para tener un XML más portable.
  --no-stylesheet: No asociar la salida XML con ninguna hoja de estilos XSL.

Miscelánea:
   -6: Habilitar análisis IPv6. 
  --datadir <nombre de directorio>: Indicar la ubicación de los archivos de datos Nmap personalizados.
   --send-eth/--send-ip: Enviar paquetes utilizando tramas Ethernet o paquetes IP "crudos".
   --privileged: Asumir que el usuario tiene todos los privilegios. 
   -V: Muestra el número de versión 
   -h: Muestra la página resumen de la ayuda. 

  Por último indicar, como detalle curioso, que este programa se ha utilizado en numerosas películas y series, siendo la más relevante Matrix Reloaded, donde aparece en la escena en la que el personaje Trinity piratea el sistema de la central eléctrica mediante la explotación de vulnerabilidades en el servidor SSH y en el control de redundancia cíclica.


  Espero que la presente entrada haya sido del gusto del lector. En caso afirmativo, aguardo que el lector la comparta y/o la comente, por favor.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.