Nmap

Nmap Security Scanner
Información sobre la plantilla
Nmap.JPG
Herramienta de exploración de redes y de sondeo de seguridad / puertos
DesarrolladorGordon Lyon
Última versión estable5.51 12 de Febrero del 2011
GéneroSeguridad informática, administración de redes
Sistemas Operativos compatiblesUnix (Solaris, Mac OS X, y BSD), GNU/Linux, Microsoft Windows y AmigaOS.
IdiomaInglés
LicenciaLicencia pública GNU
Sitio web
insecure.org

Nmap

Nmap ("mapeador de redes") es una herramienta de código abierto para exploración de red y auditoría de seguridad. Se diseñó para analizar rápidamente grandes redes, aunque funciona muy bien contra equipos individuales. Nmap utiliza paquetes IP "crudos" («raw», N. del T.) en formas originales para determinar qué equipos se encuentran disponibles en una red, qué servicios (nombre y versión de la aplicación) ofrecen, qué sistemas operativos (y sus versiones) ejecutan, qué tipo de filtros de paquetes o cortafuegos se están utilizando así como docenas de otras características. Aunque generalmente se utiliza Nmap en auditorías de seguridad, muchos administradores de redes y sistemas lo encuentran útil para realizar tareas rutinarias, como puede ser el inventariado de la red, la planificación de actualización de servicios y la monitorización del tiempo que los equipos o servicios se mantiene activos.

La salida de Nmap es un listado de objetivos analizados, con información adicional para cada uno dependiente de las opciones utilizadas. La información primordial es la "tabla de puertos interesantes". Dicha tabla lista el número de puerto y protocolo, el nombre más común del servicio, y su estado. El estado puede ser open (abierto), filtered (filtrado), closed (cerrado), o unfiltered (no filtrado). Abierto significa que la aplicación en la máquina destino se encuentra esperando conexiones o paquetes en ese puerto. Filtrado indica que un cortafuegos, filtro, u otro obstáculo en la red está bloqueando el acceso a ese puerto, por lo que Nmap no puede saber si se encuentra abierto o cerrado. Los puertos cerrados no tienen ninguna aplicación escuchando en los mismos, aunque podrían abrirse en cualquier momento. Los clasificados como no filtrados son aquellos que responden a los sondeos de Nmap, pero para los que que Nmap no puede determinar si se encuentran abiertos o cerrados. Nmap informa de las combinaciones de estado open|filtered y closed|filtered cuando no puede determinar en cual de los dos estados está un puerto. La tabla de puertos también puede incluir detalles de la versión de la aplicación cuando se ha solicitado detección de versiones. Nmap ofrece información de los protocolos IP soportados, en vez de puertos abiertos, cuando se solicita un análisis de protocolo IP con la opción (-sO). Además de la tabla de puertos interesantes, Nmap puede dar información adicional sobre los objetivos, incluyendo el nombre de DNS según la resolución inversa de la IP, un listado de sistemas operativos posibles, los tipos de dispositivo, y direcciones MAC.

Sinopsis

nmap [ <Tipo de sondeo> ...] [ <Opciones> ] { <especificación de objetivo> }

Características

  • Descubrimiento de servidores: Identifica computadoras en una red, por ejemplo listando aquellas que responden ping.
  • Identifica puertos abiertos en una computadora objetivo.
  • Determina qué servicios está ejecutando la misma.
  • Determinar qué sistema operativo y versión utiliza dicha computadora, (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.

Aplicaciones típicas

Ha llegado a ser uno de las herramientas imprescindibles para todo administrador de sistema, 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 hacking. Los administradores de sistema pueden utilizarlo para verificar la presencia de posibles aplicaciones no autorizadas ejecutándose en el servidor, así como los crackers pueden usarlo para descubrir objetivos potenciales. Nmap permite hacer el inventario y el mantenimiento del inventario de computadores 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. Nmap es a menudo confundido con herramientas para verificación de vulnerabilidades como Nessus. Nmap es difícilmente detectable, ha sido creado para evadir los Sistema de detección de intrusos (IDS) e interfiere lo menos posible con las operaciones normales de las redes y de las computadoras que son analizadas.

Especificación de objetivos

Todo lo que se escriba en la línea de parámetros de Nmap que no sea una opción se considera una especificación de sistema objetivo. El caso más sencillo es la indicación de sólo una IP, o nombre de sistema, para que sea analizado.

Con Nmap puede especificar múltiples sistemas en la línea de órdenes y no tienen por qué ser del mismo tipo. Por ejemplo, la orden nmap scanme.nmap.org 192.168.0.0/16 10.0.0,1,3-7.0-255 hace lo que uno esperaría. Aunque habitualmente se especifican los objetivos en la línea de órdenes puede utilizar las siguientes opciones para controlar la selección de objetivos:

  • -iL <archivo_entrada> (Entrada de una lista)

Toma la especificación de objetivos del archivo <archivo_entrada>. Habitualmente es un tanto molesto especificar una lista de sistemas muy grande en la línea de órdenes, pero es algo que también uno quiere hacer. Por ejemplo, si tu servidor DHCP puede exportar un listado de las 10.000 direcciones entregadas IP que querría analizar. O tal vez quiera analizar todas las direcciones IP excepto esas mismas direcciones, para así localizar sistemas que estén utilizando direcciones IP estáticas sin autorización. Para sondear un número elevado de objetivos sólo tiene que generar la lista en un archivo, y entregárselo a Nmap con la opción -iL. Las entradas de ese archivo pueden estar en cualquiera de los formatos aceptados por Nmap en la línea de órdenes (direcciones IP, nombres de sistema, CIDR, IPv6 o rangos de octeto). Cada elemento debe estar separado por uno o más espacios, tabuladores, o por líneas. Si quiere leer el archivo de la entrada estándar puede especificar un guión (-) como nombre de archivo.

  • -iR <cant. sistemas> (Elegir objetivos al azar)

Cuando se quieren realizar encuestas que cubran toda Internet uno puede querer elegir objetivos al azar. La opción <cant. sistemas> indica a Nmap cuántas direcciones IP debe generar aleatoriamente. Se filtran de forma automática las direcciones no deseables, incluyendo las direcciones privadas, de multicast o direccionamiento no asignado. Si se utiliza el valor 0, Nmap realizará un análisis que no acabará nunca. Hay que tener en cuenta que a algunos administradores de red puede no gustarle que les analicen sus redes, y pueden llegar a quejarse ¡Utilice esta opción bajo su propia responsabilidad! Si está realmente aburrido un día de tarde lluviosa, puede intentar la orden nmap -sS -PS80 -iR 0 -p 80 para encontrar servidores web al azar para navegar.

  • --exclude <equipo1[,equipo2][,equipo3],...> (Excluir equipo o redes)

Indica con una lista separada por comas los objetivos que deben excluirse del análisis. Se excluirán aunque se encuentren dentro de un rango especificado en la línea de órdenes. La lista que se indica utiliza la sintaxis normal de Nmap, por lo que puede incluir nombres de equipo, rangos de red CIDR, rangos de octeto, etc. Esto puede ser útil cuando la red a analizar tiene objetivos que no se deben tocar, como puedan ser servidores de misión crítica, que pueden reaccionar adversamente a un análisis de puertos, o si la red incluye subredes administradas por otras personas.

  • --excludefile <archivo> (Excluir desde una Lista)

Al igual que --exclude, esta función permite excluir objetivos, pero en lugar de utilizar la línea de órdenes toma el listado de un <archivo>, que utiliza la misma sintaxis que la opción -iL.

Descubriendo sistemas

Uno de los primeros pasos en cualquier misión de reconocimiento de red es el de reducir un (muchas veces enorme) conjunto de rangos de direcciones IP en una lista de equipos activos o interesantes. Analizar cada puerto de cada una de las direcciones IP es lento, y usualmente innecesario. Por supuesto, lo que hace a un sistema interesante depende ampliamente del propósito del análisis. Los administradores de red pueden interesarse sólo en equipos que estén ejecutando un cierto servicio, mientras que los auditores de seguridad pueden interesarse en todos y cada uno de los dispositivos que tengan una dirección IP. Un administrador puede sentirse cómodo con obtener un listado de equipos en su red interna mediante un ping ICMP, mientras que un consultor en seguridad realizando un ataque externo puede llegar a utilizar un conjunto de docenas de sondas en su intento de saltarse las restricciones de los cortafuegos. Las siguientes opciones controlan el descubrimiento de sistemas.

Introducción al análisis de puertos

Nmap comenzó como un analizador de puertos eficiente, aunque ha aumentado su funcionalidad a través de los años, aquella sigue siendo su función primaria. La sencilla orden nmap <objetivo> analiza más de 1660 puertos TCP del equipo <objetivo>. Aunque muchos analizadores de puertos han agrupado tradicionalmente los puertos en dos estados: abierto o cerrado, Nmap es mucho más descriptivo. Se dividen a los puertos en seis estados distintos: abierto, cerrado, filtrado, no filtrado, abierto|filtrado, o cerrado|filtrado. Estos estados no son propiedades intrínsecas del puerto en sí, pero describen como los ve Nmap. Por ejemplo, un análisis con Nmap desde la misma red en la que se encuentra el objetivo puede mostrar el puerto 135/tcp como abierto, mientras que un análisis realizado al mismo tiempo y con las mismas opciones, pero desde Internet, puede presentarlo como filtrado.

Los seis estados de un puerto, según Nmap

  • abierto

Una aplicación acepta conexiones TCP o paquetes UDP en este puerto. El encontrar esta clase de puertos es generalmente el objetivo primario de realizar un sondeo de puertos. Las personas orientadas a la seguridad saben que cada puerto abierto es un vector de ataque. Los atacantes y las personas que realizan pruebas de intrusión intentan aprovechar puertos abiertos, por lo que los administradores intentan cerrarlos, o protegerlos con cortafuegos, pero sin que los usuarios legítimos pierdan acceso al servicio. Los puertos abiertos también son interesantes en sondeos que no están relacionados con la seguridad porque indican qué servicios están disponibles para ser utilizados en una red.

  • cerrado

Un puerto cerrado es accesible: recibe y responde a las sondas de Nmap, pero no tiene una aplicación escuchando en él. Pueden ser útiles para determinar si un equipo está activo en cierta dirección IP (mediante descubrimiento de sistemas, o sondeo ping), y es parte del proceso de detección de sistema operativo. Como los puertos cerrados son alcanzables, o sea, no se encuentran filtrados, puede merecer la pena analizarlos pasado un tiempo, en caso de que alguno se abra. Los administradores pueden querer considerar bloquear estos puertos con un cortafuegos. Si se bloquean aparecerían filtrados, como se discute a continuación.

  • filtrado

Nmap no puede determinar si el puerto se encuentra abierto porque un filtrado de paquetes previene que sus sondas alcancen el puerto. El filtrado puede provenir de un dispositivo de cortafuegos dedicado, de las reglas de un enrutador, o por una aplicación de cortafuegos instalada en el propio equipo. Estos puertos suelen frustrar a los atacantes, porque proporcionan muy poca información. A veces responden con mensajes de error ICMP del tipo 3, código 13 (destino inalcanzable: comunicación prohibida por administradores), pero los filtros que sencillamente descartan las sondas sin responder son mucho más comunes. Esto fuerza a Nmap a reintentar varias veces, considerando que la sonda pueda haberse descartado por congestión en la red en vez de haberse filtrado. Esto ralentiza drásticamente los sondeos.

  • no filtrado

Este estado indica que el puerto es accesible, pero que Nmap no puede determinar si se encuentra abierto o cerrado. Solamente el sondeo ACK, utilizado para determinar las reglas de un cortafuegos, clasifica a los puertos según este estado. El analizar puertos no filtrados con otros tipos de análisis, como el sondeo Window, SYN o FIN, pueden ayudar a determinar si el puerto se encuentra abierto.

  • abierto|filtrado

Nmap marca a los puertos en este estado cuando no puede determinar si el puerto se encuentra abierto o filtrado. Esto ocurre para tipos de análisis donde no responden los puertos abiertos. La ausencia de respuesta puede también significar que un filtro de paquetes ha descartado la sonda, o que se elimina cualquier respuesta asociada. De esta forma, Nmap no puede saber con certeza si el puerto se encuentra abierto o filtrado. Los sondeos UDP, protocolo IP, FIN, Null y Xmas clasifican a los puertos de esta manera.

  • cerrado|filtrado

Este estado se utiliza cuando Nmap no puede determinar si un puerto se encuentra cerrado o filtrado, y puede aparecer aparecer sólo durante un sondeo IPID pasivo.

Entornos de trabajo

Nmap puede funcionar en sistemas operativos como las diversas variables de Unix (Solaris, Mac OS X, y BSD), GNU/Linux y también en otros OS como Microsoft Windows y AmigaOS.

Referencias

Sitio web oficial de Nmap

Documentación oficial de Nmap en español

Utilidades de Nmap en español