El otro dia un miembro de la comunidad de KumbiaPHP Framework me estaba ayudando a resolver un problema y en eso me presento la herramienta Nmap. Investigue un poco y me encontre con todo un mundo alrededor de esta herramienta, aplicacion, comando o como quieran llamarle.

En muchos artículos, libros y películas de seguridad informática se encuentra mencionada la herramienta Nmap como una de las mas importantes en las utilidades de seguridad que existen. Nmap (de Network Mapper) es una utilidad de software libre para explorar, administrar y auditar la seguridad de redes de ordenadores. Detecta hosts online, sus puertos abiertos, servicios y aplicaciones corriendo en ellos, su sistema operativo, que firwalls/filtros corren en una red y de que tipo son. Es excelente para hacer trabajos de auditoria de res y fue diseñado para llevar acabo escaneos rápidos en una gran cantidad de redes, pero es igualmente usable en hosts individuales. Es reconocido como el scanner de puertos mas poderoso. Y se lo usa basicamente para 3 cosas:

  • Auditorias de seguridad.
  • Pruebas rutinarias de redes.
  • Recolector de informacion para futuros ataques. (hackers)

Nmap es software libre y por lo tanto gratuito. Y basicamente existe una version para cada sistema operativo que conozcas: MacOSX, Microsoft Windows, GNU/Linux, OpenBSD, Solaris, etc.

Funcionamiento de Nmap

Es capaz se utilizar diferentes técnicas de evasión de detección como escaneo sealth. Soporta escaneos sobre ciertos puertos específicos, entre rangos IP específicos, uso se paquetes Null, FIN, Xmas y ACK, además SYN que es el paquete por defecto. Esto significa que se mandan cierto tipo de paquetes a cada puerto y estos responderán con alguna señal que permitirá a scanner encontrar versiones y servicios.

Conceptos importantes

¿Que es un puerto?: Un puerto es una zona en la que dos ordenadores (hosts) intercambian información

¿Que es un servicio?: Un servicio es el tipo de información que se intercambia con una utilidad determinada como ssh o telnet.

¿Que es un Firewall?: Un firewall acepta o no el trafico entrante o saliente de un ordenador.

¿Que son paquetes SYN?: Así por encima, pueden ser paquetes que abren un intento de establecer una conexión TCP.

Debemos tener en cuenta que para Nmap 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 firewall filtra el puerto.


Instalacion en Linux

Siempre que este basado en Debian o Ubuntu se instala con un simple comando:

sudo apt-get install nmap

Si usas otra distro podes buscarlo en los repositorios de tu distro y 100% seguro que esta. Y si usas algun otro sistema operativo entra a esta pagina y bajalo.

Como usar Nmap

La forma mas basica de usarlo es escribir en una consola algo como:

nmap 192.168.1.1

Es decir el comando nmap seguido de una ip o dominio. Este uso tan basico solo nos devuelve que puertos estan 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 asi:

nmap –sS 192.168.1.1

Cabe resaltar que existen varios tipos de modificadores de scan lo mas importante es lograr identificar la combinación mas apropiada, los modificadores que se pueden utilizar para realizar el scan son los siguientes:

sT se intenta hacer un barrido de puertos por TCP la ventaja de esta técnica es que no requiere usuarios privilegiados, opuesto a sS

sU se intenta hacer un barrido de puertos por UDP, es útil cuando se intentan descubrir puertos de nivel superior que pueden estar detrás de un firewall, lenta pero permite hacer auditorias mas exactas.

sA se usan mensajes de ACK para lograr que sistema responda y así dterminar si el puerto esta abierto algunos Firewall no filtran estos Mensajes y por ello puede ser efectivo en algunos casos.

sX puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red

sN puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red

sF puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red

sP este modificador ayuda a identificar que sistemas están arriba en la red (en funcionamiento) para luego poder hacer pruebas mas especificas, similar a Ping.

sV intenta identificar 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 que 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.

Adicionalmente a las opciones de scan se pueden especificar opciones que permiten explotar mas aun 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 hacer la salida de la herramienta detallada en pantalla

f habilita la fracmentacion 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 bloque en algunos Firewall

p se usa para especificar puertos de análisis o rango de puertos.

T se usa para especificar la velocidad general del scan de esta forma se puede pasar inadvertido en algunos sistemas que detectan la velocidad de los paquetes entrantes.

Veamos algunos ejemplos:

nmap –sV –P0 –O –vv –o archivo.txt 192.168.1.1

El anterior comando ejecuta un barrido (scan) de puertos sobre la IP seleccionada, evita que se ejecute Ping sobre la maquina, además de esto intenta detectar el sistema operativo, para cada puerto según las cabeceras que se retornan se detecten los servicios ejecutándose y la información se dejara en el archivo.txt

nmap 192.168.1.0/24

El anterior comando escanea una red completa

nmap 192.168.1.100 -p 10-200

El anterior comando escanea un rango de puertos

Interfaces graficas

Para esta herramienta existen un monton de interfaces graficas, en linux la mayoria se instala con un simple sudo apt-get install asi que solo se las voy a nombrar y Ustedes encarguense de probarlas. Yo aun prefiero la consola :)

Nmapsi4 : Interface completa basada en QT. Website. KNmap : Otra mas para KDE basada en QT. Website. ZenMap : interfaz grafica oficial para nmap, multiplataforma. Website. Umit : Otro mas y este en español. Website. NmapFe y otras.

Chuleta de Nmap

Si, hay una chuleta, la encontre en el sitio elcodigok. Para bajarla solo hagan click aqui.

Libro de Nmap

Pues si….les dije al principio que hay mucha info al respecto. Para ver y bajar el manual de Nmap solo hagan click aqui.

Video y Presentacion de Nmap

Por ultimo un video sobre el tema, es una exposicion que hizo un tipo argentino. Dura 1 hora!! Puede resultar un poco aburrido por la manera de hablar del tipo pero aun asi esta muy muy interesante, lo recomiendo altamente.

Y si quieren la presentacion click aqui.

Fuentes: mardelbit y creangel