Curso de nmap - actualizacion [26-8-2012]

Iniciado por D4rck4r, 13 Agosto 2012, 10:44 AM

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

D4rck4r

Citarhola,
hoy comenzare un curso en esta comunidad.
que enseñare como utilizar una herramienta muy conocida
por black hat, white hat ,gray hat, para hacer audirotiassobre una red y es nada mas que nmap
espero que la disfruten a medida que avanze el curso lo ire publicando en este mismo post para no estar llenando de foro de muchos post innecesarios ok sin mas nada que decirle comienzo. para los intersados en mejorar el curso mandeme un MP

                                 
Introduccion a nmap

 

Nmap se desarrolló como un escáner para redes básico, pero incluye una gran cantidad de características que podrían usarse en pruebas de penetración y análisis de vulnerabilidades y con cada nueva versión añade aún más funciones:

Es capaz de determinar el sistema operativo del host que estamos escaneando.
Puede decirnos los servicios activos y las versiones instaladas de los mismos.
Incluye facilidades para esquivar cortafuegos y para ocultar la dirección IP de origen del equipo desde el que se lleva a cabo el proceso.
Puede integrarse con otras herramientas para aumentar su funcionalidad.
Podemos desarrollar nuestros propios scripts para personalizar la herramienta y añadir nuevas funciones.
...

A lo largo de estos posts veremos estas y otras características de Nmap.

Para realizar demostraciones utilizaremos la siguiente topología creada con máquinas virtuales:


La distribución BackTrack ya tiene instalado Nmap y otras muchas más herramientas de seguridad. La máquina CentOS 5.5 y Windows 7 están instaladas con las opciones por defecto.

Escaneo Basico con Nmap

Empezaremos con el escaneo más básico de Nmap, en el que no usaremos ninguna de sus muchas opciones, simplemente indicaremos cuál es la máquina objetivo.

La instalación por defecto de Windows 7 activa el cortafuegos del sistema operativo, por lo que si intentamos hacer un ping veremos que no responde:



Aunque podemos comprobar que la máquina sí está activa consultando la caché ARP de BackTrack:



Lanzamos Nmap:



Y vemos que los puertos aparecen filtrados al estar activo el cortafuegos de Windows 7. Más adelante veremos cómo podemos solucionarlo.

También podemos escanear varias máquinas a la vez



Donde vemos que CentOS tiene abiertos los puertos 22 y 111.

O una red o subred completa:



Como vemos es muy fácil lanzar un escaneo básico, pero también es muy sencillo para un firewall pararlo y evitar que consigamos la información que estamos buscando. A partir de aquí tenemos que utilizar las múltiples características que nos ofrece Nmap para saltarnos esas medidas de seguridad y hacer un análisis más profundo y más realista de la seguridad de nuestra red.

En el próximo post hablaremos sobre diferentes tipos de escaneos basados en los protocolos TCP y UDP. Esto nos servirá para ir conociendo algunas de las muchas posibilidades que nos ofrece esta herramienta y nos permitirá ir adquiriendo la base necesaria para después llevar a cabo tareas más complejas.

mi twitter es @D4rck4r
porfavor comenten y envien MP sobre dudas y recomendaciones :)

Danirs

Esta bien el tutorial pero lo veo demasiado basico, podrias indagar mas en los distintos comandos de nmap y lo que pueden hacer. Y profundizar un poquillo en la flags y las distintos tipos de paquetes que se envian y las respuestas.
Algo asi pero menos avanzado http://thehackerway.com/2011/03/07/nmap-para-escaneo-de-puertos-parte-i/ (Escrito por nuestro compañero adastra)

Y si que hay manuales  en internet solo hay que buscarlos un poco.
Qué es la vida un frenesí. Qué es la vida una ilusión, una sombra, una ficción. Que todo en la vida es sueño y los sueños, sueños son.

D4rck4r

Cita de: Danirs en 13 Agosto 2012, 20:50 PM
Esta bien el tutorial pero lo veo demasiado basico, podrias indagar mas en los distintos comandos de nmap y lo que pueden hacer. Y profundizar un poquillo en la flags y las distintos tipos de paquetes que se envian y las respuestas.
Algo asi pero menos avanzado http://thehackerway.com/2011/03/07/nmap-para-escaneo-de-puertos-parte-i/ (Escrito por nuestro compañero adastra)

Y si que hay manuales  en internet solo hay que buscarlos un poco.

hola gracias por el por verlo desde otro putnto de vista
el tutorial estara en varias lecciones hoy termino la segunda parte que abarca sobre los flags y como
funciona la conexiones tcp y  como podemos emplearlos con nmap

Danirs

#3
Espero con ganas a ver que tal se te da.

Edito: No habia visto el mensaje este esta bastante mejor la verdad aqui profundizas mas y dejas claro el conceptos de paquetes enviados y recibidos. Tambien esta muy bien la parte de intentar evadir el firewall. Bastante mejor. Ademas el aporte del SO Centos esta muy bien

Suerte! ;D
Qué es la vida un frenesí. Qué es la vida una ilusión, una sombra, una ficción. Que todo en la vida es sueño y los sueños, sueños son.

D4rck4r

Cita de: Danirs en 13 Agosto 2012, 23:49 PM
Espero con ganas a ver que tal se te da.

Edito: No habia visto el mensaje este esta bastante mejor la verdad aqui profundizas mas y dejas claro el conceptos de paquetes enviados y recibidos. Tambien esta muy bien la parte de intentar evadir el firewall. Bastante mejor. Ademas el aporte del SO Centos esta muy bien

Suerte! ;D

Gracias

D4rck4r

#5
Descubrimiento y Sondeo Red Básico con Nmap


Muchas de las técnicas de escaneo que incluye Nmap están basadas en el protocolo TCP. Como sabemos, este es un protocolo orientado a conexión que se usa para ofrecer servicios de red y una buena parte de su funcionalidad se debe a los flags que podemos encontrar en los segmentos TCP:


Los pasos que se siguen en un establecimiento de sesión TCP son los siguientes:


Donde el host que inicia la sesión envía un segmento con el flag SYN activo. El receptor, si está a la escucha, devolverá un segmento con los flags SYN y ACK activos, a lo que el emisor responderá con un segmento con el flag ACK activo. Durante estos pasos, los dos extremos habrán negociado diferentes parámetros de la comunicación, como el tamaño de ventana que van a usar.

Según cómo responda una máquina, Nmap puede usar la información recibida para obtener mucha información sobre el host de destino. Cuando escaneamos un puerto, Nmap no se limita a darnos los dos resultados habituales que nos dan otras herramientas, que son abierto o cerrado, sino que es más detallado y puede darnos hasta 6 resultados diferentes:

-Abierto: La aplicación que está a la escucha en el puerto acepta conexiones que pueden ser TCP o UDP, y en el primer caso devuelve un paquete SYN-ACK. Encontrar un puerto en este estado es el objetivo habitual de un atacante.
-Cerrado: El puerto recibe paquetes de Nmap y responde con un paquete RST, pero no hay ninguna aplicación a la escucha. Detectar un puerto abierto y otro cerrado en una máquina puede ayudar a determinar el sistema operativo que se está ejecutando.
-Filtrado: Los paquetes que envía Nmap no llegan al puerto y por lo tanto no puede decidir si está abierto o cerrado. Este estado nos indica que tenemos delante algún tipo de cortafuegos.
-No filtrado: Nmap sólo marca un puerto en este estado cuando está usando un escaneo ACK, que veremos más adelante. No hay cortafuegos, pero el escaneo no ofrece información suficiente para determinar si el puerto está abierto o cerrado.
-Abierto|filtrado: Los escaneos UDP, IP, FIN, Null y Xmas pueden darnos este resultado al no poder determinar si el puerto está abierto o filtrado.

-Cerrado|filtrado: Nmap sólo nos da este resultado cuando realizamos un escaneo IPID pasivo y se debe a que no puede determinar si el puerto está cerrado o filtrado. Veremos este tipo de escaneo más adelante.

La gran mayoría de los cortafuegos están configurados para bloquear los segmentos SYN salvo para aquellos servicios que sean públicos, lo que hace que el escaneo básico que hemos hecho hasta ahora no haya dado un buen resultado.

Cuando Nmap sigue los mismos pasos que en un establecimiento de conexión TCP (SYN, SYN-ACK, ACK), decimos que el escaneo es del tipo TCP Connect y estamos dando a la máquina objetivo todas las facilidades para que registre nuestra actividad, ya que hemos completado el proceso de inicio de sesión TCP. Un escaneo un poco más elaborado es el escaneo TCP Syn.

Escaneo TCP Syn

No se completa todo el proceso, por lo que también se denomina escaneo semi-abierto. La idea es evitar que quede registrado el escaneo en la máquina objetivo. Para esto, Nmap envía un segmento SYN y queda a la espera de recibir el SYN-ACK, pero aunque lo reciba no devolverá el segmento ACK que cerraría el saludo (handshake). De esta forma no se inicia sesión y es probable que la máquina destino no guarde un registro.

Vamos a probarlo con la máquina Windows:



Como vemos, Nmap tampoco nos da mucha información en este caso, ya que el cortafuegos de Windows sigue cortando el paso de los paquetes sonda. Este es el tipo de escaneo que usa Nmap por defecto cuando se ejecuta con permisos de root. Veamos el resultado si lo lanzamos contra CentOS:



Escaneo TCP Connect



Que nos da la misma información, pero nos arriesgamos mucho más a que nuestra actividad quede registrada. Además, bastaría con cambiar la política de entrada por defecto en CentOS para que dejara de responder:




De momento, volvemos a dejar CentOS con la política de entrada por defecto como estaba para ver cómo funcionan el resto de tipos de escaneos:


Escaneo FIN

Si el cortafuegos está configurado para interceptar los paquetes SYN, bloquearía los dos escaneos que hemos hecho hasta ahora. Una posibilidad de saltar el cortafuegos o un sistema IDS es usar el escaneo FIN, en el que Nmap envía paquetes en los que sólo el flag FIN está activo:



Y si capturamos estos paquetes con Wireshark podemos ver los flags:



Escaneo Null y del Árbol de Navidad

Otras opciones que nos ofrece Nmap son los escaneos Null y Xmas. Vamos a lanzarlos y a capturar uno de los paquetes que enviamos para ver sus características:

Empezamos con el escaneo Null:



Y vemos que ningún flag está activo:



Y el Xmas:



En el que se activan los flags FIN, PUSH y URG:



El objetivo de estos tipos de escaneos es saltarse la protección de un cortafuegos básico. Si el cortafuegos no espera la llegada de estos paquetes, que no son paquetes "legales" según el protocolo, podría ocurrir que no supiera lo que hacer con ellos y los dejara pasar. Afortunadamente, la gran mayoría de los cortafuegos actuales saben tratar con este tipo de paquetes y no caerán en la "trampa". Esto no significa que Nmap no tenga utilidad, sino que tendremos que aprender bastante más para poder obtener la información que andamos buscando, pero esto lo trataremos en otro post.

twitter @D4rck4r
para recomendaciones enviame un MP y comenten

PD. pueden comentar los comandos que son utiles para esquivar cortafuegos y algunas combinaciones

ralymontes


D4rck4r

Citarhola bueno perdonen por la demora
ya esta aki la segunda parte que tiene muchas cosas curiosas,
para los interzados en mejorar en curso o agregar cosas nuevas al curso
me envia un MP , porfavor comenten sobre experencias y comandos que a muchos nos
puedan servir, Saludos desde Panama

Descubrimiento y Sondeo de red Basico con nmap  Parte de 2

Los escaneos que hemos visto hasta ahora nos permiten hacer un descubrimiento básico de la red, pero si queremos obtener más detalles sobre las máquinas o si estas están protegidas por cortafuegos, tenemos que avanzar un poco más en el uso de Nmap.

Vamos a ver otros modos de escaneo que, si bien por si solos no nos darán un resultado espectacular, podremos combinar más adelante para llevar a cabo un análisis más profundo.

Escaneo UDP

Un tipo de escaneo que suele dar resultado es el escaneo UDP. Cambiamos de protocolo, ya que hasta ahora sólo habíamos usado TCP, y los cortafuegos no siempre lo bloquean. Cualquiera de los escaneos anteriores falla al lanzarlos contra la máquina Windows 7 con el cortafuegos activo, pero ahora vamos a intentarlo con el UDP



Ahora aparece un puerto abierto, el 137 correspondiente al servicio Netbios, que suele ser indicativo de una máquina de Microsoft, aunque no aún no podamos determinarlo con seguridad.

Hay que tener en cuenta que es habitual que los hosts abran y cierren puertos en determinados momentos, por lo que es una buena idea hacer el escaneo en diferentes momentos y podríamos obtener diferentes resultados. Por ejemplo, si repetimos el escaneo anterior en otro momento, obtenemos



Escaneo TCP ACK

Este escaneo no intenta determinar si los puertos están abiertos. De hecho, nunca nos dará como resultado para un puerto "open" ni "open|filtered". El objetivo de este escaneo es detectar el tipo de cortafuegos que tenemos delante, si es stateful o stateless.

La sonda que se envía sólo tiene el flag ACK activo. Si el puerto no responde o devuelve un paquete ICMP "destination unreachable", se considera que el puerto está filtrado por el cortafuegos. Si el puerto devuelve un paquete RST, se clasificará como "unfiltered", es decir, es alcanzable.

Vamos a lanzar este escaneo y también vamos a introducir la opción "-vv" que aumenta el nivel de detalle de la salida y "-n" que evita el intento de resolución DNS inversa para acelerar el proceso.

En un primer intento usaremos como objetivo nuestra máquina CentOS, que no tiene el cortafuegos habilitado y tiene el puerto 22 a la escucha:



Aparece el puerto como "unfiltered".

Si ahora lo intentamos con Windows 7, que sí tiene el cortafuegos activo, hacia el puerto 135 que está a la escucha. Este puerto es usando por muchos protocolos de nivel superior, como DCOM en el caso de Microsoft e históricamente ha sido uno de los más atacados en Internet. De hecho, el famoso Blaster lo utilizaba para lleva a cabo su ataque:



Obtenemos:



Escaneo TCP Window

La idea de este escaneo es igual a la del ACK, estudiar el cortafuegos que tenemos delante, pero intenta explotar detalles de implementación de determinados sistemas para diferenciar un puerto abierto de otro cerrado (ACK no hace esta diferencia). El flag ACK se envía activo en la sonda y se analiza el campo del tamaño de ventana de la respuesta. En algunos sistemas, este campo tiene un valor positivo si el puerto está abierto y cero si está cerrado.

Como decíamos, este escaneo se basa en un detalle de implementación de una minoría de sistemas, por lo que no siempre podemos confiar en él.

Veamos la respuesta si lo lanzamos contra nuestro CentOS:




El puerto aparece como cerrado cuando sabemos que en realidad está abierto. En la siguiente imagen tenemos un detalle del paquete enviado:



Donde vemos el flag ACK activo. Y la respuesta desde CentOS cuando el puerto escaneado está abierto:



Con un segmento RST y el tamaño de ventana a 0. Si hacemos lo mismo con un puerto que está realmente cerrado en CentOS, como el 23 (Telnet):



Vemos que la respuesta es igual y con esta sonda lanzada contra CentOS, Nmap no puede saber si el puerto está abierto o cerrado.

Si se lanza contra la máquina Windows 7, esta no responde y Nmap determina que el puerto esta filtrado:



Escaneo IP Protocol

Este escaneo está orientado a determinar los protocolos IP (ICMP, TCP, UDP, IGMP, IPv4, IPv6,...) que están soportados por la máquina objetivo, lo que nos puede dar una idea del tipo de máquina que es (Servidor, PC, Router,...).

A diferencia de un escaneo de puertos, lo que hace es utilizar el campo IP Protocol del paquete IP:



Veamos el resultado contra CentOS:





Como hemos visto, Nmap dispone de un enorme arsenal de herramientas para llevar a cabo escaneos de puertos y máquinas. De momento sólo hemos visto una mínima parte de ellas y estamos sentando las bases para después pasar a tareas más complejas.

En el próximo post hablaremos sobre cómo podemos detectar los servicios e incluso las versiones de las aplicaciones que están a la escucha en un determinado puerto. Esto forma parte de un proceso conocido como fingerprinting, que es una de las etapas iniciales en cualquier proceso de pen testing y análisis de vulnerabilidades.

D4rck4r

OS Fingerprinting con Nmap

Un paso fundamental en un análisis de vulnerabilidades es determinar qué sistema operativo y versión está instalado en la máquina objetivo. Conociendo algunos puertos abiertos podríamos hacer suposiciones, pero Nmap pone a nuestro alcance técnicas que nos permiten afinar más y, en algunos casos, obtener con una fiabilidad del 100% la información que buscamos. El proceso de analizar la máquina objetivo para conocer el sistema operativo y la versión que tiene instalada se denomina OS Fingerprinting.



Este proceso se basa en analizar las ambigüedades en la definición de los protocolos estándar que rigen los servicios de red. Cada uno de estos protocolos incluye una serie de reglas de obligado cumplimiento y que podemos encontrar en su RFC correspondiente. Por ejemplo:

* Protocolo SSH: RFC 4251, 4252 y 4253
            http://www.ietf.org/rfc/rfc4251.txt
            http://www.ietf.org/rfc/rfc4252.txt
            http://tools.ietf.org/html/rfc4253
* Protocolo HTTP: RFC 2616 y actualizaciones posteriores
            http://tools.ietf.org/html/rfc2616

Estos documentos definen las reglas de comportamiento para que un servicio cumpla con el estándar y diferentes máquinas puedan interoperar entre sí. En cualquier caso, es posible que algunos detalles menores no fundamentales para el funcionamiento del protocolo no estén definidos y se dejen a criterio del fabricante. Veamos un ejemplo para un paquete ping. En primer lugar un ping enviado desde nuestra máquina CentOS:



Y ahora un ping enviado desde Windows 7:

[/img]

En ambos casos se envía un paquete ping dentro del protocolo ICMP que cumple con el estándar, pero con diferencias. En principio, el contenido del campo de datos de un paquete ping es irrelevante, ya que sólo queremos enviar un paquete al que la máquina destino responderá si está allí. Al no ser útil para el funcionamiento, este campo de datos no está definido en el RFC correspondiente y cada fabricante incluye en él lo que considera conveniente. En CentOS vemos un conjunto de caracteres que terminan con los dígitos del 0 al 7, mientras que en Windows 7 tenemos el abecedario. Este tipo de detalles de implementación serán los que analizará Nmap para determinar el sistema operativo y la versión de la máquina que tenemos enfrente.

Nmap envía 16 sondas TCP, UDP e ICMP para analizar decenas de parámetros que le permitan "adivinar" cuál es el sistema operativo que está respondiendo. Esto no es una ciencia exacta, ya que depende de diversos factores, y el propio Nmap nos informará de la fiabilidad aproximada con la que ha determinado el sistema operativo. Para obtener más información al respecto podemos visitar el siguiente enlace:
           
                   
La forma básica de iniciar un OS fingerprinting con Nmap es la siguiente:



Donde usamos CentOS como objetivo y añadimos la opción "-v" para que nos de información extra. El resultado es:



donde nos dice que se trata de un sistema Linux basado en la versión 2.6.X del kernel, concretamente entre 2.6.9 y 2.6.30. Si comprobamos esto en CentOS:



Vemos que es correcto el resultado que nos ha dado Nmap.
De esta forma seguimos avanzando en nuestro aprendizaje de Nmap, aunque nos falta bastante para poder sacar todo su jugo a esta herramienta.

@D4rck4r Twitter

Belial & Grimoire

hola

muy buen curso, tiene muchas cosas nmap espero lo termines, pero es muy bueno y bien explicado

salu2  ;-)
.