nmap.org logo 2013

Network Mapping

A continuación presentamos una herramienta ideal para administradores de sistemas que tiene como objetivo evaluar la seguridad en un servidor (ya sea cloud o dedicado) y descubrir servicios activos o caracteristicas del mismo.

Antes de comenzar, debemos resaltar que Zenmap es casi lo mismo que Nmap, la única diferencia es que Nmap es por consola y Zenmap posee un entorno gráfico.

nmap screen

Nmap en una consola Linux

zenmap user interfase

zenmap posee entorno gráfico.

Que es y para que sirve NMAP?

(Network Mapper o Mapeador de Redes) es una herramienta para scannear puertos abiertos. Se diseño para explorar grandes redes, aunque funciona a perfecto también para hacer mapeos a equipos individuales. A demás de puertos, también dice que servicio lo utiliza y sus versiones. Otra de las cosas que suele mostrar es que filtros o cortafuegos tiene, y a veces hasta el sistema operativo que tiene el equipo entre otras docenas de cosas.

Nmap es una herramienta que se usa mucho en auditorias de seguridad y a demás muchos la usan con fines delictivos. Lo primordial es su tabla de puertos con sus estados que son los siguientes:

  • Closed: Cerrado
  • Open: Abierto
  • Filtred: Filtrado
  • Unfiltred: 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 cortafuego, 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.

A lo largo de este tutorial se encontraran con parámetros en mayúsculas y minúsculas, es muy importante que los respeten ya que varia su función.

 

Primeros pasos con Nmap

Haremos un simple mapeo a una red e ip cualquiera, para saber que puertos tiene abiertos

La sintaxis del comando seria así:

nmap como root

 NMAP [Parametro] [Host]

En este caso no tenemos parámetros ya que es solo un simple mapeo a la IP para observar los puertos abiertos.

También podemos scannear puertos que nosotros queramos, para ello con el parámetro –p colocamos los puertos separándolos por coma

Sintaxis del comando:

 Nmap –p [Puertos] [Host]

Ejemplo:

 Nmap –p 80,135,2000,8080 192.168.1.3

nmap mac adress

Ahora bien, si queremos ver el sistema operativo que tiene el equipo seria así:

 Nmap –O [HOST]

nmap scan windows

Como se puede ver en el scanneo dice que resulta poco fiable la obtención del sistema operativo por qué no se encontró al menos un puerto abierto o cerrado del sistema operativo. Pero que según el Scanneo puede ser alguno de estos:

Running: Microsoft Windows 2000|XP|2003

Ahora les voy a mostrar algo que suele ocurrir no muy frecuente, pero que si es probable que les pase. Al tirar un mapeo a una pc a la cual no logre identificar su sistema operativo.

Pero que es esa cadena de texto dentro de TCP/IP Fingerprint…?

nmap tcp ip fingerprintTCP/IP fingerprint:

OS:SCAN(V=5.59BETA1%D=12/30%OT=21%CT=1%CU=30523%PV=Y%DS=1%DC=D%G=Y%M=0015F2
OS:%TM=4EFDC93D%P=i686-pc-linux-gnu)SEQ(SP=103%GCD=1%ISR=109%TI=Z%CI=Z%II=I
OS:%TS=8)OPS(O1=M5B4ST11NW6%O2=M5B4ST11NW6%O3=M5B4NNT11NW6%O4=M5B4ST11NW6%O
OS:5=M5B4ST11NW6%O6=M5B4ST11)WIN(W1=3890%W2=3890%W3=3890%W4=3890%W5=3890%W6
OS:=3890)ECN(R=Y%DF=Y%T=40%W=3908%O=M5B4NNSNW6%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O
OS:%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=Y%DF=Y%T=40%W=3890%S=O%A=S+%F=AS%O=M5B4ST
OS:11NW6%RD=0%Q=)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=
OS:40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0
OS:%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=40%IPL=1
OS:64%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)

 

Esa cadena es a lo que se llama Huella TCP/IP. NMAP reconoce a un sistema operativo porque cada uno responde de una forma diferente.

En este caso nos muestra esa cadena de texto por qué no logro identificarlo con exactitud.
Ahora veremos hosts activos en una red. Para ello debemos saber la puerta de enlace. En mi caso es 192.168.1.1. Como sabemos, una red puede alojar máximo 255 hosts.  Lo que haremos será un ping scan para saber cuántos hosts hay en mi red. Asi que el comando sería el siguiente:

 

Nmap –sP 192.168.1.1-255

obtener ip mac con nmap

Veremos un listado como el de la imagen, el cual nos mostrara IPs, MAC, etc…

 

Puertos y Servicios.

Ahora scannearemos un host, veremos sus puertos, servicios y la versión de sus servicios para saber si se pueden o no explotar.

Tipeamos lo siguiente:

 nmap –sV [HOST]

nmap host

Como se puede ver en la imagen, hay servicios activos en sus respectivos puertos, y en caso de existir un Exploit para explotar dicho servicio, se podría vulnerar y entrar a la pc.

Los comandos se pueden combinar como en el siguiente ejemplo:

 

Nmap –sV –O [HOST] (Para sacar Servicios, versiones y sistema operativo)

nmap services

También podemos encontrarnos con Firewalls. Y nmap cuenta con comandos para evadirlos. Uno de ellos es –f

La línea de comando nos quedaría asi:

 Nmap –sV –O –f [HOST]

(Para scannear puertos, servicios, versiones y sistema operativo de forma invisible)

 

Y el resultado sería igual a la imagen anterior.

Como venimos viendo no existe un parámetro mejor o peor que otro,  ya que cada uno de ellos realiza tareas distintas.

Yo les acabo de mostrar los más usuales y ahora veremos que a demás de colocar la ip, también podemos colocar un dominio. por ejemplo:

 nmap antrax-labs.org

 Evasion de Firewalls [Stealth Scans]

Nmap cuenta con comandos para evadir Firewalls que no estén bien configurados.

Los parámetros para esto son:

-sX (Stealth Xmas Tree Scan, este tipo de scan envía paquetes con los flag FIN, URG, y PUSH activados)

-sN (Stealth, Null Scan, este tipo de scan pone en off todos los flags)

-sF (Stealth FIN Scan, este tipo de scan usa paquetes con el flag FIN activado para las pruebas)
El resultado sera el mismo al scanneo de peurtos normal.

Realiza el scanneo evadiendo el Firewall y muestra los servicios activos y en que puertos están funcionando.

Otro parámetro útil es el -P0, lo que hace este parámetro no enviar ping al objetivo antes del scanneo. De esta manera, el Firewall no bloquea el scanneo.

 

Exportar Resultados de Scanneos

Nmap permite exportar scanneos en formato *.TXT o *.XML

Los parámetros para ello son: -oN (txt) –oX (xml)

La sintaxis seria:

 nmap –sV 192.168.1.1 –oN Desktop/test.txt

nmap desktop

Y el texto en este caso quedaría en el Desktop y se vería así:

nmap host senuelo

 # Nmap 5.59BETA1 scan initiated Thu Jan 5 20:14:06 2012 as: nmap -sV -oN Desktop/test.txt 192.168.1.1
Nmap scan report for 192.168.1.1<
Host is up (0.083s latency).
Not shown: 997 closed ports
PORT      STATE SERVICE VERSION
80/tcp    open  http    TP-LINK WR740N WAP http config
1900/tcp  open  upnp    TP-LINK TL-WR740N WAP UPnP 1.0 (ipos 7.0; UPnP 1.0)
49152/tcp open  unknown
1 service unrecognized despite returning data. If you know the service/version, 
please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi
SF-Port49152-TCP:V=5.59BETA1%I=7%D=1/5%Time=4F062EC6%P=x86_64-unknown-linu
SF:x-gnu%r(FourOhFourRequest,52,"HTTP/1\.1\x20404\x20Not\x20Found\r\nConne
SF:ction:\x20close\r\nDate:\x20Fri,\x2006\x20Jan\x202012\x2007:14:10\x20GM
SF:T\r\n\r\n")%r(GetRequest,52,"HTTP/1\.1\x20404\x20Not\x20Found\r\nConnec
SF:tion:\x20close\r\nDate:\x20Fri,\x2006\x20Jan\x202012\x2007:14:10\x20GMT
SF:\r\n\r\n")%r(SIPOptions,44,"HTTP/1\.1\x20501\x20Unimplimented\r\nConnec
SF:tion:\x20close\r\nContent-Length:\x200\r\n\r\n");
MAC Address: D8:5D:4C:C7:DC:EE (Tp-link Technologies Co.)
Service Info: Device: WAP
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
# Nmap done at Thu Jan  5 20:15:46 2012 -- 1 IP address (1 host up) scanned in 100.25 seconds

 

Despistando al Host con un señuelo (Decoy Scan)

Esto sirve de alguna forma para anonimizar el scanneo. Hace creer al host que lo scannean otros hosts que no es el nuestro.

Sintaxis de parámetros:

nmap –sV –D [host1],[host2] [host]

Ejemplo:

 nmap –sV –D 192.168.1.77,192.168.1.211 192.168.1.1

Y en ese caso, pensara que el que scannea es el host 192.168.1.77 y el 192.168.1.211
El resultado del scanneo sera el mismo al de Puertos y Servicios por el parametro -sV

 Puertos TCP y UDP

 Nmap permite filtrar puertos TCP y UDP. Los parámetros para ellos son:

TCP: -sT

UDP: -sU

nmap puertos tcp udp

Existen otros parámetros, que en este paper no explique, pero si les dejo junto a este paper una imagen que contiene todos los parámetros con una breve descripción de cada uno.

Parámetros nmap

Parámetros nmap

 

Leave a Comment