Monday, April 27, 2009

Dirty Harry


Ayer comentaba problemas para realizar sniffing desde una máquina virtual con SGUIL en VirtualBox.

VirtualBox tiene 5 modos de trabajar con una placa de red en el sistema virtualizado.

  • No attached
  • Nat
  • Bridged Network
  • Internal Network
  • Host only Network


Not attached le indica al sistema virtualizado que la maquina tiene una placa pero no esta conectada fisicamente.

Nat es el modo en el cual todos los paquetes salientes del equipo virtual son trasladados a la IP del sistema host.

Bridged Network permite conectar al sistema virtualizado a directamente a una placa física del sistema host. Estos es creando un dispositivo de red virtual, el cual permite rutear paquetes hacia la red del equipo virtualizado.

Internal Network, crea una red virtual entre todas la máquinas virtuales que esten conectadas a una placa física del sistema host. VirtualBox crea una especie de switch entre todas ellas. El Host puede ver el trafico en la interfaz física.

Host Only es similar al modo Internal Network, pero las máquinas virtuales no pueden comunicarse con redes externas y se utiliza una interfaz virtual en el host ( una especie de loopback ). El trafico entre las máquinas virtuales se puede ver sobre esta interfaz virtual.



Dado que VirtualBox trabaja como si fuera un switch, no es posible ver todo el trafico que llega a una placa de red física, aun en el modo bridge ( "Hoy" yo no encontre el modo natural ). Cuando el sistema Host recibe el trafico en la interfaz fisica, solo envia hacia el sistema virtual los paquetes de brodcast o los dirigidos puntualmente a la direccion IP de la placa virtual.

Hora de Harry el sucio !!!


Recuerdan el post de Arp spoofing en Telecentro ? Recuerdan cuando hablamos de envenenamiento de tabla arp ? Ok, porque no utilizar esta tecnica para hacerle creer al sistema que tenemos la misma Mac address que uno de los equipos a los cuales queremos hacer sniffing.

Veamos la red.



Enfoquemos los puntos 1,2 y 7, los paquetes son derivados por el port SPAN hacia la interfaz física del equipo Host.



Hasta ahora todo perfecto, pero el equipo host, solo envia hacia el equipo virtual, los paquetes dirigidos a la MAC address de la placa de red configurada en el equipo virtual. Es decir, entre ambos equipos existe un Switch. Si colocamos un sniffer en el equipo Host vemos todos los paquetes, en el caso del equipo Virtual, solo vemos el brodcast.


Una solucion "sucia" es indicarle al equipo host que la placa de red virtual tiene la misma MAC addres que por ejemplo el Modem, entonces todos los paquetes hacia el modem serian inyectados en la placa virtual del equipo.

Esto se realiza en la maquina la placa de la maquina virtual del siguiente modo.
Por supuesto que la direccion MAC de la imagen es solo a modo de ejemplo.


Pero tenemos el problema que solo podemos ver el trafico dirigido hacia un equipo. ( En este caso el router de borde ) Que pasa si queremos ver el trafico a otros equipos ?

Estoy evaluando es utilizar Proxy ARP, este método permite que una interfaz de red responda las peticiones de ARP de una MAC address alternativa. Esto es enrutando los paquetes luego hacia los dispositivos destino.

Tengo que ver como se relacionan la placa de red virtual y la placa de red de host para implementar esto.

Otra posibilidad que es mas sucia aun, es configurar otra placa de red virtual con la MAC del nuevo dispositivo.

Lo pruebo y confirmo si funciona.

2 comments:

Anonymous said...

Hola Maestro,
Bastante complicado para mi, pero después de leer todo díez o doce veces, creo que al final entendí ! Y de verdad, esto se lee como una novela :-)
Saludos!
Christophe.

Julio Jaime said...

Ok Christophe no te preocupes que en cuanto yo lo entienda hago un manual !!!

Slds