Mapeo de redes con NMAP
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í:
En este caso no tenemos parámetros ya que es solo un simple mapeo a la IP para observer los puertos abiertos.
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í:
Nmap –O [HOST]
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:
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.
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.
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
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.
Espero que les sea útil!
Greets to: Sergio Alonso - Pablo Quesada