Metasploit: idle scanning y el IPID - Userlinux.net

Hoy intentaremos saltarnos un sistema de detección de intrusos (IDS), al menos en teoría, porque no tengo ninguna maqueta montada para probarlo realmente. A la hora de usar nmap para comprobar la disponibilidad de algunos puertos de una Red es muy posible que cualquier IDS detecte los escaneos y emprenda…

Metasploit: idle scanning y el IPID

05.Nov.2009 ~ 6 Comentarios ~ 2076 Lecturas
Hoy intentaremos saltarnos un sistema de detección de intrusos (IDS), al menos en teoría, porque no tengo ninguna maqueta montada para probarlo realmente. A la hora de usar nmap para comprobar la disponibilidad de algunos puertos de una Red es muy posible que cualquier IDS detecte los escaneos y emprenda algún tipo de acción.

El idle scanning se sirve del IPID para echarle el muerto del escaneo a otro ordenador zombie con lo que para hacerlo efectivo debemos -antes de nada- encontrar ese ordenador adecuado al que culpar.

Explicación del proceso

Para detectar si un puerto está abierto o cerrado, es necesario primero observar el IPID del zombie, enviar paquetes a la víctima haciéndole ver que realmente se los está enviando éste y, posteriormente, observar de nuevo el IPID utilizado por el intermediario. En función de los valores iniciales y finales obtenidos, se puede averiguar el estado del puerto destino.
  • El primer paso es enviar al zombie un paquete SYN+ACK, con objeto de que éste nos devuelva el paquete RST correspondiente, del cual tomaremos el IPID.
  • Acto seguido, se realiza una solicitud de conexión a la víctima, previa manipulación del paquete para que sea el zombie el que figure como origen del mismo. Al recibirlo, dado que estamos asumiendo que el puerto está abierto, la víctima envía de vuelta la confirmación de la conexión al que cree que es el solicitante, el zombie. Si el puerto estuviera cerrado la víctima devuelve al aparente emisor un paquete RST indicándole que no será posible establecer la conexión solicitada. El zombie recibe el paquete RST y lo ignora.
  • En caso de correcta conexión, el zombie recibe la confirmación de la conexión, pero como no es él el que la ha generado, responde a la víctima con una señal de reseteo (RST), incrementando su IPID.
  • De nuevo, pasado unos segundos, desde el atacante se vuelve a obtener el IPID del zombie de la misma forma que al comienzo, comprobando que ha sido incrementado en 2 unidades. De esta forma, se determina que el puerto destino del escaneo estaba abierto.
Teóricamente puede parecer algo lioso, aunque si se entiende el proceso el juego se vuelve mucho más divertido. Por suerte -o desgracia- todos estos pasos los podemos automatizar con Metasploit.

Encontrar un zombie

Pasando a la práctica, si queremos encontrar un zombie y utilizamos Metasploit es tan sencillo como usar el scanner que trae para ello:
msf auxiliary(writable) > use scanner/ip/ipidseq
msf auxiliary(ipidseq) > show options

Module options:

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target address range or CIDR identifier
   RPORT    80               yes       The target port
   THREADS  1                yes       The number of concurrent threads
   TIMEOUT  500              yes       The reply read timeout in milliseconds

msf auxiliary(ipidseq) > set RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
msf auxiliary(ipidseq) > set THREADS 50
THREADS => 50
msf auxiliary(ipidseq) > run

[*] 192.168.1.1's IPID sequence class: All zeros
[*] 192.168.1.2's IPID sequence class: Incremental!
[*] 192.168.1.10's IPID sequence class: Incremental!
[*] 192.168.1.104's IPID sequence class: Randomized
[*] 192.168.1.109's IPID sequence class: Incremental!
[*] 192.168.1.111's IPID sequence class: Incremental!
[*] 192.168.1.114's IPID sequence class: Incremental!
[*] 192.168.1.116's IPID sequence class: All zeros
[*] 192.168.1.124's IPID sequence class: Incremental!
[*] 192.168.1.123's IPID sequence class: Incremental!
[*] 192.168.1.137's IPID sequence class: All zeros
[*] 192.168.1.150's IPID sequence class: All zeros
[*] 192.168.1.151's IPID sequence class: Incremental!
[*] Auxiliary module execution completed
Dentro de esa red local que hemos escaneado todas las máquinas etiquetadas como Incremental! son ordenadores zombie que podremos utilizar para hacer el escaneo silencioso.

Escaneo silencioso o invisible

Ya hemos hecho lo más complicado, seleccionar la máquina que cargará con nuestras culpas, el resto es cosa de nmap, tan solo hemos de utilizar cualquier ordenador de los etiquetados como Incremental! anteriormente como argumento -sI de nmap:
# nmap -P0 -p- -sI 192.168.1.2 192.168.1.150
Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-05 01:51 CET
Idle scan using zombie 192.168.1.2 (192.168.1.2:80); Class: Incremental
Interesting ports on 192.168.1.150:
Not shown: 996 closed|filtered ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3389/tcp open ms-term-serv
MAC Address: 00:0C:29:41:F2:E8 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 5.56 seconds
La opción -P0 previene que nmap envíe un ping incial a la máquina destino. Esto disminuye la velocidad del escaneo (hay menos información disponible sobre los tiempos), pero asegura que ningún paquete sea enviado al destino desde nuestra verdadera dirección de IP.

La opción -p- se usa para escanear todos los puertos, no solo los "conocidos", pero el escaneo será más lento. El -sI es obvio, para usar el zombie en las peticiones.

Y teóricamente -ya os digo que no he probado con ningún IDS activo- deberíamos estar protegidos contra los detectores de escaneos. Aún sabiendo que la curiosidad mató al gato... hacía tiempo que no me divertía tanto.
}:)

Referencias

Categorías: sistemas

Comentarios


gravatar
ClaytoN
05.Nov.2009
Muy bueno r0skilla :)

Veo que te me has adelantado en la lectura del metasploit-unleashed, y no conocía el módulo de metasploit para detectar hosts válidos para un iddle scan.

Por cierto, acostúmbrate a usar -PN ya que -P0 está "deprecated" y puede que lo acaben quitando.

+1 para tí :)

gravatar
05.Nov.2009
Es tan solo una de las tropecientas features de Metasploit pero me lo he pasado como un niño con zapatos nuevos. Intentaré seguir escribiendo de este tipo de cosillas que -a fin de cuentas- son las que me ponen los pelos de punta ;).

gravatar
05.Nov.2009
Pues si, muy interesante, queda pendiente entonces que hagamos la prueba en un bunkercillo con un IDS (y tal vez un sniffer para ver que se puede ver "mas en detalle"?)

+1 para el post de mi parte tb.

gravatar
ClaytoN
05.Nov.2009
Es imposible que un IDS detecte que le estás escaneando ya que tú no le envías ningún paquete a la víctima, solo a la máquina que hace de intermediario (zombi). Con lo cual, aunque puede detectar un escaneo, ya que sí se le está escaneando, verá al zombi como el rigen. No hace falta probarlo con un detector de escaneos para saber que no te detecta ;)

gravatar
05.Nov.2009
Muy interesante. Espero otros posts sobre el tema como agua de mayo.

gravatar
25.Aug.2011
Some time before, I really needed to buy a good car for my corporation but I did not earn enough cash and couldn't purchase something. Thank God my father proposed to get the mortgage loans at banks. Thus, I acted that and was satisfied with my college loan.

Comentarios


Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 15 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Buscar

Cargando...

Últimos comentarios

  • Juan
  • Marina
  • Francisco
  • fon
  • minWi
  • isra
  • reidrac
  • r0sk
  • Rodrigo Rega
  • minWi
  • r0sk
  • reidrac
  • r0sk
  • deady
  • errece

Moneting

Valor de mi cuenta de Facebook según Moneting
Valor de mi cuenta de Twitter según Moneting

Tagcloud

ssh frases champions userlinux iphone lugo rsidenotes felicidades films nintendo opinion sysadmin 2008 blogsfera vacaciones juegos cake ds debian sidenotes apple web blogs mac mysql cakephp deportes 2007 mundial openbsd barça ubuntu twitter blog humor meme canción alemania_2006 games bsd lucux linux twitt programación cumpleaños software django league bash macosx ps3 rfilms conciertos freebsd seguridad personal hack php bake futbol

Archivo

Social

Enlaces de interés