Mapeo de redes con Nmap

Iniciado por ANTRAX, Marzo 26, 2012, 12:59:59 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


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í:

Código: php
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:

Código: php
Nmap –p [Puertos] [Host]


Ejemplo:

Código: php
Nmap –p 80,135,2000,8080 192.168.1.3



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

Código: php
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...?


Código: php
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:

Código: php
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:

Código: php
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:

Código: php
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:

Código: php
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:

Código: php
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:

Código: php
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í:


Código: php
# 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:

Código: php
nmap –sV –D [host1],[host2] [host]


Ejemplo:

Código: php
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.


Espero que les sea útil!


Buenísimo,gracias.Así dà gusto leer y probar.Gracias. ;D

gracias, excelente tutorial, podrias explicar algo mas sobre eld ecoy scan? q otros metodos hay? saludos

Exelente, muy bien explicado. Tenia pensando publicar algo similar escrito por mi pero este esta mejor xD!

Saludos!

Siempre es una buena herramienta a utilizar. Saludos


Muy buen tutorial amigo! Pero hay una pregunta que siempre me hago..

Partiendo de la base de que analizar puertos es algo ilegal. Hasta que punto puede una persona (con pocos conocimientos de sistemas e informática) darse cuenta de que le estan realizando un escaner de puertos?
Como medida de prevención, como puedo hacer yo para saber si alguien esta escaneandome?

Saludos y gracias! ;)

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muy buen tutorial amigo! Pero hay una pregunta que siempre me hago..

Partiendo de la base de que analizar puertos es algo ilegal. Hasta que punto puede una persona (con pocos conocimientos de sistemas e informática) darse cuenta de que le estan realizando un escaner de puertos?
Como medida de prevención, como puedo hacer yo para saber si alguien esta escaneandome?

Saludos y gracias! ;)

En el campo de la seguridad, todo se puede decir que tiene su parte ilegal, realmente, nadie va a juzgar a una persona por haber lanzado nmap. (Es más, también existen las auditorias donde se lanzan este tipo de apps totalmente legal ¬¬).

Sinceramente, si no quieres que nadie te scanneé tu sitio, directamente no lo subas.

Básicamente puedes revisar los logs, así podrás conocer que peticiones ha hecho.

Saludos.



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En el campo de la seguridad, todo se puede decir que tiene su parte ilegal, realmente, nadie va a juzgar a una persona por haber lanzado nmap. (Es más, también existen las auditorias donde se lanzan este tipo de apps totalmente legal ¬¬).

Sinceramente, si no quieres que nadie te scanneé tu sitio, directamente no lo subas.

Básicamente puedes revisar los logs, así podrás conocer que peticiones ha hecho.

Saludos.

Es a lo que me refería. Sé que es un proceso aparentemente ilegal, pero no se hasta que punto es penado. En las auditorias como bien dices, se hacen escaneos a puertos (entre otras cosas), pero normalmente siempre se firma un contrato entre la empresa que audita y la empresa auditada donde se establecen las condiciones de la misma.


Buenas.

Estoy probando nmap y con el comando
Código: php
nmap -sP 192.168.1.1-254
solo me encuentra el router y el propio pc, pero tengo 7 dispositivos más conectados y no los encuentra.
Sin embargo, con
Código: php
nmap -sn 192.168.1.1-254
si que los encuentra.

¿A que es debido? ¿Estoy haciendo algo mal?

Gracias.

Hola,

Podrías copiar el resultado de ambos comandos?

Saludos,
ANTRAX