Nmap es uno de los escáneres de red más usados en la actualidad , por su eficacia, sencillez de uso y los escasos recursos que necesita para realizar su función. Principalmente realiza escaneos de puertos abiertos en un sistema, pero no es su única función como veremos a continuación.

Será un pilar fundamental si estamos al cargo de un servidor y queremos ver por dónde podría accederse, o lo que viene siendo lo mismo, si somos responsables de la seguridad del éste. Se trata de una de las primeras herramientas que se usan al realizar una auditoría, ya que es rápida y fiable para una valoración inicial.

Para estas pruebas he preparado tres equipos (Ubuntu server 15.04, CentOS 7 y Ubuntu 15.10), siendo Ubuntu 15.10 la distribución desde la que instale Nmap y realice los escaneos.

Ubuntu Server 15.04 > Hostname = gotei13 > IP = 192.168.1.135

CentOS 7 > Hostname = rukongai = IP = 192.168.1.136

Ubuntu Desktop 15.10 > Hostname = seretei > IP = 192.168.1. 139

Intentaré abarcar todo lo posible de esta utilidad en las siguientes líneas, así que vamos a ello.

Instalación de Nmap

Existente en la mayoría de repositorios de las distribuciones más extendidas, no es que tenga una nomenclatura muy compleja para ubicar su paquetería:

sudo yum install nmap à Para sistemas basados en Red Hat.

Imagen 0 en Nmap, uso básico para rastreo de puertos

sudo apt-get install nmap à Para sistemas basados en Debian

Imagen 1 en Nmap, uso básico para rastreo de puertos

Usabilidad

Como decía y veréis, una de las principales razones del éxito de esta herramienta es su sencillez de uso, y aquí un ejemplo de cómo se conforma un escaneo:

nmap [tipo de escaneo] [opciones] {objetivo, dirección o rango}

Escaneo con Hostname o IP

La versatilidad de Nmap nos ofrece la opción de realizar el escaneo tanto mediante hostname como por IP, por lo que las dos líneas de comando siguiente tendrán el mismo resultado:

nmap gotei13

nmap 192.168.1.135

Imagen 2 en Nmap, uso básico para rastreo de puertos

Opción ‘-v’

Para obtener más información o detalle en el resultado del escaneo, usaremos el argumento u opción ‘-v’:

nmap –v 192.168.1.135

Imagen 3 en Nmap, uso básico para rastreo de puertos

Escaeneo Multiobjetivo

Para recopilar información de varios objetivos a la vez sólo deberemos pasarle al comando dichos objetivos separados por espacios:

nmap 192.168.1.135 192.168.1.136 192.168.1.139

Imagen 4 en Nmap, uso básico para rastreo de puertos

Escanear Subred

Podremos obtener los puertos abiertos de cada equipo (encendido, se entiende) de una subred mediante el siguiente comando:

nmap 192.168.1.*

Imagen 5 en Nmap, uso básico para rastreo de puertos

Escaneo Multiobjetivo con octetos

Otro ejemplo de la versatilidad de esta herramienta es el hecho de poder realizar un escaneo a varios equipos objetivos únicamente usando el último octeto de su dirección IP. En este caso la separación de estos octetos se realizará mediante comas:

nmap 192.168.1.135,136,139

Imagen 6 en Nmap, uso básico para rastreo de puertos

Escaneo desde un archivo

Mediante una de las opciones que nos ofrece nmap, podremos realizar el escaneo de varios host o equipos desde un fichero en el que los tenemos almacenados. Muy útil si vamos tomando notas de varios equipos que queremos escanear y realizar dicho escaneo en un momento determinado (por ejemplo en un momento de máxima actividad o por el contrario en un momento donde la carga de trabajo sea mínima).

cat > objetivosnmap.txt

nmap –iL objetivosnmap.txt

Imagen 7 en Nmap, uso básico para rastreo de puertos

Escanear un rango de IPs

En el siguiente ejemplo escanearemos un rango de direcciones, establecidos de la siguiente forma:

nmap 192.168.1.135-140

Imagen 8 en Nmap, uso básico para rastreo de puertos

Escaneo con exclusión de una subred

Realizando el escaneo de una subred completa tal y como vimos anteriormente, podemos excluir algunos equipos de dicho mapeado usando el argumento ‘- - exclude’.

nmap 192.168.1.* --exclude 192.168.1.137

Imagen 9 en Nmap, uso básico para rastreo de puertos

Obtener S.O. del objetivo

Para obtener información del sistema operativo de un host usaremos la opción –O (también podemos usar --osscan-guess):

nmap –O 192.168.1.135

Imagen 10 en Nmap, uso básico para rastreo de puertos

Con Nmap también podremos saber qué sistema operativo gobierna el equipo objetivo así como el traceroute de sus paquetes.

nmap –A 192.168.1.136

Imagen 11 en Nmap, uso básico para rastreo de puertos

Comprobación de Firewall

Con el siguiente comando comprobaremos si el objetivo tiene activo algún filtrado de paquetes o Firewall:

nmap –sA 192.168.1.136

Imagen 12 en Nmap, uso básico para rastreo de puertos

Listar equipos activos en la red.

Con Nmap podemos encontrar qué equipos están encendidos en nuestra red, evitando (en caso de tratarse una red muy extensa) largas esperas si aplicásemos el mapeado a toda la red o que incluyese otras características.

nmap –sP 192.168.1.*

Imagen 13 en Nmap, uso básico para rastreo de puertos

Escaneo Rápido

La opción ‘-F’ nos permitirá realizar un escaneo rápido por los puertos más usados comúnmente.

nmap  -F 19.168.1.136

Imagen 14 en Nmap, uso básico para rastreo de puertos

Escaneo ordenado.

Si por alguna razón queremos obtener la lista de puertos ordenados en orden creciente, usaremos la opción ‘-r’ sobre el escaneo:

nmap –r 192.168.1.136

Imagen 15 en Nmap, uso básico para rastreo de puertos

Ver las interfaces de red

Con Nmap podemos listar todas las interfaces de red del equipo desde el que realizamos el mapeado, así como las rutas que siguie:

nmap --iflist

Imagen 16 en Nmap, uso básico para rastreo de puertos

Escanear un puerto específico

Con la opción –p podemos decirle a Nmap qué puerto queremos mapear sobre el / los objetivo / s.

nmap –p 80 192.168.1.135

Imagen 17 en Nmap, uso básico para rastreo de puertos

También podemos pasar en lugar del número de puerto, el tipo de puerto o número. En el siguiente ejemplo escaneamos dos puertos TCP:

nmap –p T:8888,21 192.168.1.136

Imagen 18 en Nmap, uso básico para rastreo de puertos

Al igual que usamos el protocolo TCP en el comando anterior, podemos especificar usar UDP de la siguiente forma:

nmap  -p U:21,80 seretei

Escanear un puerto UDP

Otra forma de especificar un escaneo haciendo uso de UDP es aplicando el siguiente comando:

nmap –sU 21 seretei

Imagen 19 en Nmap, uso básico para rastreo de puertos

Escanear varios puertos

La sintaxis para definir varios puertos sobre los que centrar el mapeado ya la hemos visto en ejemplos anteriores, indicándolos antes del target u objetivo, separados por comas.

nmap –p 22,80,443 192.168.1.135

Imagen 20 en Nmap, uso básico para rastreo de puertos

Escanear rango de puertos

En lugar de especificar unos puertos en concreto, podemos escanear un rango de los mismos, por si algún servicio ha sido redirigido por un puerto diferente al que se define por defecto para un servicio.

nmap –p 21-450 192.168.1.136

Imagen 21 en Nmap, uso básico para rastreo de puertos

Obtener versiones de servicios

Con el siguiente comando obtendremos la versión actual del servicio que corre por cada puerto que encontremos que responda. Muy útil si estamos realizando un escáner de vulnerabilidades o un control de versiones para implantar la misma versión de un servicio o aplicación en todos los equipos de la red.

nmap –sV 192.168.1.136

Imagen 22 en Nmap, uso básico para rastreo de puertos

Escanear usando TCP ACK (PA) y TCP Syn (PS)

Cuando se realiza una comunicación cliente servidor, se produce la denominada negociación en tres pasos. De inicio el cliente envía un paquete Syn al servidor a un puerto determinado. Si este puerto está abierto y tiene un servicio corriendo detrás éste responderá con un paquete Syn/ACK. Para terminar de establecer la comunicación el cliente devolverá al servidor otro paquete, en esta ocasión ACK.

Pues dependiendo de qué “lado” queremos realizar el mapeado usaremos TCP ACK (PA) o TCP Syn (Ps), para hacernos pasar por servidor o cliente, respectivamente.

nmap –PA 192.168.1.136

nmap –PS 192.168.1.135

Imagen 23 en Nmap, uso básico para rastreo de puertos

Escanear puertos específicos con TCP ACK / Syn

Al igual que usamos el comando anterior para escanear todos los puertos, podemos aplicarlo a lo visto anteriormente para obtener resultados únicamente de puertos específicos.

nmap –PA –p 21,22,125 192.168.1.139

Imagen 24 en Nmap, uso básico para rastreo de puertos

nmap –PS –p 21,22,8080 192.168.1.135

Imagen 25 en Nmap, uso básico para rastreo de puertos

Ejecutar un escaneo seguro

Con la siguiente línea de comando realizaremos un examen exhaustivo sobre el objetivo, aplicando todos los tipos de mapeado que contiene la aplicación para un informe detallado. La desventaja es la lentitud al tener que probar todas las combinaciones.

nmap –sS 192.168.1.136

Imagen 26 en Nmap, uso básico para rastreo de puertos

Comprobar con TCP Syn los puertos más usados

Para enviar un paquete de solicitud de respuesta (Syn) a todos los puertos de un objetivo, con lo que obtendremos respuesta incluso de aquellos puertos que mediante firewall rechazasen contestar a un paquete ping, por ejemplo, usaremos la siguiente orden:

nmap –sT 192.168.1.136

Imagen 27 en Nmap, uso básico para rastreo de puertos

Escaner Ping ARP

También podremos realizar un mapeado ARP a base de usar el protocolo ping sobre la IP objetivo, mediante la siguiente línea:

nmap –PR 192.168.1.136

Imagen 28 en Nmap, uso básico para rastreo de puertos

Ejecutar análisis a prueba de Firewalls

Considerado uno de los métodos de mapeado más intrusivos, se centra primeramente en escanear la red en busca de equipos activos, tras lo que realizará diversas peticiones, ajustándolas en tipo a los servicios más usados en cada puerto, para obtener mayor probabilidad de respuesta y un informe más completo y detallado de los equipos objetivo.

nmap –sN 192.168.1.135

Imagen 29 en Nmap, uso básico para rastreo de puertos

Escáner de escáneres

A continuación os dejo uno de los mapeados que se pueden realizar sobre una instalación, abarcando todas las redes (de una instalación por defecto con IPs de clase C), equipos y puertos que se encuentren activos:

nmap –sS –n –v –O –p 1-65535 192.168.1.0/24

Imagen 30 en Nmap, uso básico para rastreo de puertos

Almacenar resultado

Si el resultado obtenido es demasiado extenso para revisarlo sobre la consola o si queremos almacenarlo para comparar con anteriores o posteriores escaneos, podemos pasar la salida a un archivo para tenerlo disponible sin necesidad de sobrecargar la red con nuevas peticiones llendo y viniendo.

nmap 192.168.1.135 192.168.1.136 > nmap01.txt

Imagen 31 en Nmap, uso básico para rastreo de puertos

Comprobar versión

Para comprobar qué versión de Nmap tenemos instalada y estamos usando, podemos emplear la opción ‘–V’:

nmap –V

Imagen 32 en Nmap, uso básico para rastreo de puertos

Estos son los comandos más usados a la hora de realizar escaneos de puertos y servicios en equipos y redes. Por supuesto no son todos, os animo a que reviséis el manual de la aplicación (man nmap) para que busquéis las opciones que mejor se ajusten a lo que buscáis encontrar. Recordad suscribiros y seguirnos en las redes sociales .