Escaneando con Nmap

nmap

Desde hace muchos años Nmap es la herramienta por excelencia para diversos menesteres. Es una herramienta que podemos usar en una fase de fingerprinting o de auditoría y exploiting.

 

Si queremos tener la ultima versión de la herramienta solo debemos bajarla de su repositorio oficial:

svn co https://svn.nmap.org/nmap
cd nmap
./configure
make
make install

Vamos a ver algunos ejemplos de uso de la herramienta, la sintaxis es muy sencilla de usar.

Escaneando un puerto con Nmap

darkmac:~ marc$ nmap -p 80 www.dragonjar.org

Starting Nmap 6.25 ( http://nmap.org ) at 2013-06-12 22:33 CEST
Nmap scan report for www.dragonjar.org (108.162.207.118)
Host is up (0.076s latency).
Other addresses for www.dragonjar.org (not scanned): 141.101.124.118
PORT   STATE SERVICE
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.30 seconds
darkmac:~ marc$

Como véis sale el puerto 80 abierto. La sintaxis es muy sencilla, ¿Y si necesitamos escanear dos puertos?

darkmac:~ marc$ nmap -p 80,443 www.dragonjar.org

Starting Nmap 6.25 ( http://nmap.org ) at 2013-06-12 23:16 CEST
Nmap scan report for www.dragonjar.org (141.101.124.118)
Host is up (0.077s latency).
Other addresses for www.dragonjar.org (not scanned): 108.162.207.118
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https

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

Es muy sencillo ¿No? Pero que pasaría si necesitamos escanear de un rango a otro?

Como véis el hacer el escaneo de puertos con nmap es muy trivial.

darkmac:~ marc$ nmap -p 80-85 www.securitybydefault.com

Starting Nmap 6.25 ( http://nmap.org ) at 2013-06-12 23:15 CEST
Nmap scan report for www.securitybydefault.com (74.125.132.121)
Host is up (0.092s latency).
rDNS record for 74.125.132.121: wb-in-f121.1e100.net
PORT   STATE    SERVICE
80/tcp open     http
81/tcp filtered hosts2-ns
82/tcp filtered xfer
83/tcp filtered mit-ml-dev
84/tcp filtered ctf
85/tcp filtered mit-ml-dev

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

Nmap por defecto nos permite hacer sacar los servicios, además lleva opciones para escanear una serie de puertos determinados.

darkmac:~ marc$ sudo nmap www.securiza.me

Starting Nmap 6.25 ( http://nmap.org ) at 2013-06-12 23:07 CEST
Nmap scan report for www.securiza.me (88.12.11.36)
Host is up (0.13s latency).
rDNS record for 88.12.11.36: 36.Red-88-12-11.staticIP.rima-tde.net
Not shown: 987 filtered ports
PORT     STATE  SERVICE
22/tcp   open   ssh
25/tcp   open   smtp
80/tcp   open   http
110/tcp  open   pop3
443/tcp  open   https
993/tcp  open   imaps
2601/tcp open   zebra
2602/tcp open   ripd
4242/tcp closed vrml-multi-use
4662/tcp open   edonkey
5222/tcp open   xmpp-client
6881/tcp open   bittorrent-tracker
8088/tcp open   radan-http

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

Las opciones en nmap son muy variables y pueden ser combinadas, aqui veremos un pequeño listado de ellas:

  • Escaneo por defecto : “nmap direccionip”
  • Escaneo utilizando ping : “nmap -sP direccionip”
  • Escaneo ignorando el ping : “nmap -Pn direccionip”
  • Modo silencioso : “nmap -sS direccionip”
  • Descubrir servicios y versiones : “nmap -sV direccionip”
  • Detectar el Sistema operativo : “nmap -O direccionip”
  • Detectar el SO Forzado : “nmap -O –osscan-guess direccionip”
  • Escanear solo puerto X : “nmap -pX direccionip”
  • Escanear varios puertos X : “nmap -pX,Y,Z direccionip”
  • Escanear los 100 (f) 1000 (F) puertos más comunes : “nmap -F direccionip”
  • Escanear todos los puertos “*” : “nmap -p* direccionip” //tambien sirve “-p-”
  • Escanear Rango de puertos : “nmap -p[1-65535] ip”
  • Definir protocolo de escaneo : “nmap -pT:80,U:53 direccionip”
  • Buscar puerto 80 abierto : “nmap -sT -p 80 -oG – 192.168.1.1/24”
  • Escanear IP-A haciéndose pasar por IP-B : “nmap -sS direccionipA -D direccionipB”

Desde que NMap integrara un motor de scripting a su funcionamiento, las características y funcionalidades de la herramienta han crecido en gran medida, dejando de ser solo un escáner de puertos y pasar a ser un completo escáner de vulnerabilidades, un detector de incidencias, una herramienta de ataque y un escáner de aplicaciones web entre otras muchas funciones.

Los scripts en nmap son simples de desarrollar, utilizan lenguaje lúa y podemos tomar cualquier parámetro o componente de salida de nmap como parte del mismo, por tanto su flexibilidad esta garantizada.

Los scripts oficiales integrados con nmap se encuentran por lo general en la carpeta /usr/local/share/nmap/scripts y para llamar cualquiera de ellos solo debemos ejecutar

nmap --script=nombredescript

Algunos de los scripts oficiales mas utilizados son los siguientes

  • Script para mostrar el titulo de una web : “nmap –script=http-title direccionip”
  • Mostrar titulo y cabeceras de un sitio web : “nmap –script=http-title,http-headers ip”
  • Enumerando directorios : “ nmap –script http-enum direccionip”
  • Haciendo Whois con Nmap : “ nmap –script whois direccionip”
  • Geo localización de IPS desde nmap : “ nmap –script ip-geolocation-* direccionip”
  • Detectar si un sitio web tiene un WAF : nmap -p80 –script=http-waf-fingerprint,http-waf-detect –script-args=”http-waf-detect.detectBodyChanges” direccionip

Ya que los scripts han crecido rápidamente ha sido necesario agruparlos en categorías, actualmente tenemos las siguientes:

Cada una de ellas agrupan una serie de scripts que cumplen funciones de enumeración ataques de fuerza bruta, detección de malware, etc…, si queremos ejecutar una categoría entera contra una dirección ip o un rango de ellas, solo debemos realizar lo siguiente:

nmap --script CATEGORIA ip/o/rangodeips

Tambien podemos utilizar comodines o excluir ciertos scripts de una categoría especifica que queramos ejecutar.

  • Ejecutando categorías : “ nmap –script CATEGORIA direccionip”
  • Ejecutando con comodines : “ nmap –script http-* direccionip”
  • Todos los http- menos enum : “ nmap –script=”http-* and not http-enum”

Espero que disfrutaran de esta entrega, pronto profundizaremos un poco mas en algunos aspectos de esta gran herramienta.


Autor: Seifreed

Formado en un equipo de lucha contra el fraude. He trabajado implementando la protección y prevención del fraude en varios clientes dentro del sector bancario nacional e internacioal. Mi trabajo consiste en encontrar soluciones a los problemas actuales y futuros de las entidades financieras respecto al código malicioso y el fraude. Especialidades como el análisis de malware, análisis forense, ingeniería inversa o tareas de hacking ético, forman parte de mis tareas diarias. Soy ponente ien eventos nacionales (No cON Name, Owasp, Navaja Negra) e internacionales (DraonJAR CON - Colombia). Soy profesor asociado en La Salle enseñando el curso MPWAR (Master in High Performance Web Programming) y el máster de ciberseguridad de La Salle (MCS. Master in Cybersecurity) Miembro de asociaciones y grupos de research como la HoneyNet Project, Owasp, SySsec etc.. También soy el organizador de las conferencias Hack&Beers en Barcelona

Compartir este Artículo
  • ramoncin

    espero que la segunda parte del post no sea muy compleja, no sea que perdamos el hilo

  • Wen

    No hace falta el -sS nmap ya efectúa un SYN scan por defecto. Los puertos determinados son 1000. Los 1000 más comunes y equivalentes a la opción –top-ports 1000. Ojo, no incluye puertos comunes UDP lo cual es/puede ser motivo de olvido.

  • Pingback: Bitacoras.com()

  • Andres

    Excelente herramienta, es muy util

  • Buenas:

    Solamente quería aclarar algo: Con la opción -sP y en versiones posteriores a la versión (si mal no recuerdo) 6.00 de Nmap, opción -sn.

    Puede existir una confusión, cuando se usa quiere decir que no verifique el estado de los puertos del objetivo, solamente que verifique si el objetivo está activo en la red, cosa muy diferente a realizar un Ping usando el protocolo ICMP, mediante un Echo Request y espera un paquete Echo Reply.

    Se podría decir que en el contexto de Nmap hacer ping en saber si el objetivo está activo y respondiendo a los paquetes que se le envían, los cuales pueden ser de mucho tipos, no necesariamente ICMP.

    Saludos!

Siguenos!

O Puedes Subscribete

ANTES DE

SALIRTE ...

NO TE

ARREPENTIRÁS

!Gracias¡

NO OLVIDES NUESTRAS REDES SOCIALES