Auditando la seguridad de tus redes con el comando nmap

0 Flares Twitter 0 Facebook 0 Email -- Google+ 0 Reddit 0 StumbleUpon 0 LinkedIn 0 Buffer 0 0 Flares ×
Starting Nmap 7.40 ( https://nmap.org ) at 2019-01-10 10:51 CET
Nmap scan report for google.com (74.125.24.113)
Host is up (0.42s latency).
Other addresses for google.com (not scanned): 74.125.24.102 74.125.24.138 74.125.24.139 74.125.24.101 74.125.24.100 2404:6800:4003:c03::71
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https

Nmap done: 1 IP address (1 host up) scanned in 28.63 seconds


Nmap (acrónimo de Network Mapper) es comando que nos va a servir para explorar, administrar y auditar la seguridad de las redes de ordenadores o servidores. Su función es detectar alojamientos online, puertos abiertos, servicios y aplicaciones corriendo en ellos o su sistema operativo. En este post nos vamos a centrar en utilizarlo como una herramienta de auditoria, ya que fue diseñado para llevar acabo escaneos simultáneos en una gran cantidad de redes, pero también lo podremos utilizar en nuestro ordenador como una forma de preservar la seguridad de nuestro trabajo doméstico o analizar al objetivo de nuestro ataque.

Si bien existe una version para cada sistema operativo (MacOSX, Microsoft Windows, GNU/Linux, OpenBSD…), en este tutorial vamos a utilizar Debian Strecht. Una de las particularidades que más nos ha gustado a la hora de trabajar con él es la funcionalidad Stealth, que nos ha permitido eludir cortafuegos o listas de control de acceso, no ser registradas por sistemas de detección de intrusos o incluso simular tráfico normal y real para no levantar sospechas ante un analizador de red.

Como vamos a utilizar varios términos importantes, tengamos a mano los conceptos para que no se nos escape nada:

Partimos de que nmap nos va a dar tres estados posibles del puerto por el que vamos a ingresar al servidor a analizar:

  • open: el puerto es accesible y hay un demonio escuchando (es decir, un vigilante que registrará nuestra actividad de análisis).
  • closed: el puerto es accesible pero no hay un demonio escuchando.
  • filtered: el puerto no es accesible, un firewall filtra el puerto.

Instalación y uso común

Lo haremos desde la terminal:

sudo apt install nmap

Y haremos una prueba con nuestro propio ordenador. Ingresaremos en esta web para saber nuestra IP pública y escribiremos en la terminal lo siguiente:

nmap 120.32.45.189

Starting Nmap 7.40 ( https://nmap.org ) at 2019-01-10 11:18 CET
Stats: 0:05:48 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 72.57% done; ETC: 11:26 (0:02:11 remaining)
Stats: 0:06:01 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 73.83% done; ETC: 11:26 (0:02:08 remaining)
Stats: 0:07:27 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 81.97% done; ETC: 11:27 (0:01:38 remaining)
Nmap scan report for 112.pool85-49-65.dynamic.telefonica.net (85.49.65.112)
Host is up (0.0047s latency).
Not shown: 999 filtered ports
PORT     STATE SERVICE
8080/tcp open  http-proxy

Nmap done: 1 IP address (1 host up) scanned in 638.74 seconds


El resultado que nos describe es que estamos usando el puerto 8080 para comunicarnos con el exterior, que está abierto y que estamos usando un proxy (ver este artículo) como herramienta de privacidad. También, mientras se hacía el escaneo hemos hecho varias veces Enter para saber la evolución del proceso, que nos la comunica en porcentaje.

Este uso básico nos dirá qué puertos están abiertos tras un scan simple. Dependiendo de la seguridad de la ip que se escanee puede que nos bloquee el escaneo si lo hacemos de esa manera. Una forma mas discreta de hacerlo que no deja registros en el sistema es así:

nmap –sS 120.32.45.189

Usando modificadores

Existen varios tipos de modificadores de nmap. Lo más importante es lograr identificar la combinación mas apropiada. Los modificadores que se pueden utilizar para realizar el scan son los siguientes:

  • sT hace un barrido de puertos por TCP. La ventaja de esta técnica es que no requiere usuarios privilegiados, a diferencia de sS.
  • sU hace un barrido de puertos por UDP. Su utilidad radica en que permite descubrir puertos de nivel superior ocultos tras un cortafuegos, aunque es una auditoría más lenta.
  • sA usa mensajes de ACK para lograr que sistema responda y así determinar si el puerto esta abierto. Algunos cortafuegos no filtran estos mensajes y por ello puede ser efectivo en algunos casos.
  • sX, sN y sF pueden pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red.
  • sP ayuda a identificar que sistemas están en la red (en funcionamiento) para luego poder hacer pruebas mas especificas, similar a Ping.
  • sV identifica los servicios por los puertos abiertos en el sistema. Esto permite evaluar cada servicio de forma individual para intentar ubicar vulnerabilidades en los mismos.
  • sO con esta opción se identifica qué protocolos de nivel superior a capa tres (Red o Network) responden en el sistema, de esta manera es mas fácil saber las características de la red o el sistema que se intenta evaluar.

Hay opciones que permiten explotar todavía más la herramienta. Dentro de las opciones que mas frecuentemente se usan están las de evitar el Ping o mostrar todos los resultados en pantalla al máximo detalle, veamos cuales son estas opciones:

  • b para determinar si la victima es vulnerable al “bounce attack”.
  • n no hace conversiones DNS para hacer el -sP mas rapido.
  • vv hace la salida de la herramienta detallada en pantalla.
  • f habilita la fragmentación. De esta forma es mucho mas complejo para un un firewall u otro tipo de sistema lograr hacer el rastreo.
  • oN redirige la salida a un archivo.
  • oX redirige la salida a un archivo XML.
  • –stylesheet con esta opción se usa una hoja de estilo que hace mas fácil la lectura de la salida en XML.
  • P0 indica que no se debe hacer ping a los sistemas objetivo antes de iniciar el análisis útil para evitar el bloqueo en algunos cortafuegos.
  • p se usa para especificar puertos de análisis o rango de puertos.
  • T se usa para especificar la velocidad general del escaneo. De esta forma se puede pasar inadvertido en algunos sistemas que detectan la velocidad de los paquetes entrantes.

En el siguiente tutorial haremos una prueba en la que vamos a evitar ejecutar ping sobre un servidor objetivo, vamos a detectar su sistema operativo, detectaremos los servicios ejecutándose y vamos a obtener todos estos datos en un archivo de texto.

 

Diego Herchhoren