Introducción:
Antes
de comenzar, quiero resaltar que Zenmap es casi lo mismo que Nmap, la
única diferencia es que Nmap es por consola y Zenmap tiene entorno
grafico
NMAP
Zenmap
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 [Parametro] [Host]
En este caso no tenemos parámetros ya que es solo un simple mapeo a la IP para observer los puertos abiertos.
Tambien
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
Ahora bien, si queremos ver el sistema operativo que tiene el equipo seria así:
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…?
TCP/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
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]
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)
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
Y el texto en este caso quedaría en el Desktop y se vería así:
# 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
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.
Greets to: Sergio Alonso - Pablo Quesada