Ataques Man in the Middle I

Noviembre 24th, 2008

Hace tiempo que quería hablar sobre este tipo de ataques, no me había decidido del todo debido a la enormidad de la tarea y a mi intención de explicar cómo realizarlos paso a paso. Al final he optado por dividir el artículo en varias partes y así comentar con tranquilidad cada una de ellas. En este primer post hablaré sobre los fundamentos del ataque, en qué se basa y cuál es su objetivo. En posts posteriores veremos como realizar distintas variantes del ataque y si me encuentro con ánimo, incluso incluiré cómo se pueden burlar protocolos seguros (SSH, HTTPS) usando estas técnicas.

El requisito fundamental para realizar este tipo de ataques es que toda la comunicación entre el cliente  y el servidor pase a través de la máquina atacante, de ahí el nombre de Man in the Middle (MitM)

Si nuestra intención es interceptar una conexión entre un equipo local y uno remoto, la forma más directa de colocarnos en medio es comprometer el gateway, que es la máquina por la que de manera natural pasa este flujo de la información. Por supuesto éste no es el único método que tenemos a nuestra disposición, ya en un post anterior vimos que un envenanimiento ARP también sirve para este fin. Hay muchísimas más técnicas que permiten hacer esto como, por ejemplo, el port stealing, el DHCP spoofing o el IRDP spoofing, por nombrar sólo algunas, aunque de momento tendréis que conformaros sólo con los nombres porque no es el objetivo de este post profundizar en este tipo de ataques.

Una vez que el atacante está en medio de la conexión, es capaz de controlar toda la conversación entre cliente y servidor, lo que abre todo un abanico de posibiliades que van más allá del simple sniffing. En esta situación el atacante es capaz de modificar a voluntad el flujo de información, es decir, puede alterar el contenido de los paquetes que se intercambian cliente y servidor de manera totalmente transparente para ambos extremos, por lo que estos nuncan sabrán del ataque.

Esto no es una tarea sencilla y la complejidad técnica es importante. Por exponer sólo algunos detalles que entran en juego, si se modifica un paquete TCP, no sólo hay que cambiar el payload del paquete, también hay que recalcular el CRC y los números de secuencia. Es más, al alterar los números de secuencia, a partir de ese momento el atacante tendrá que sincronizar de manera transparente los números de secuencia que usa el cliente y los que usa el servidor, pues a partir de ese momento serán diferentes. Una vez superadas las dificultades técnicas, las posibilidades que nos ofrece este tipo de ataques superan ampliamente lo que podemos conseguir con otros métodos. Veamos algunos ejemplos: muchos portales web usan conexión https sólo durante la verificación del password, lo que es suficiente para proteger la contraseña contra ataques de sniffing.

En la figura vemos como en la respuesta el servidor indica al cliente que debe enviar sus credenciales a https://webmail.ejemplo.com/login.php, lo que asegura protección frente a escuchas al usar HTTPS. Si en esta situación realizaramos un ataque MitM el resultado podría ser el siguiente:

En la figura vemos que la petición del cliente no se modifica en absoluto, pero sí que se altera la respuesta del servidor, de tal manera que se hace creer al cliente que debe enviar las credenciales a http://servidor.atacante.com/login.php, que obviametne será un servidor controlado por el atacante y que registrará estos valiosos datos.

Otros ataques MitM podrían ser la alteración de un fichero descargado por el cliente, de tal forma que éste baje a su equipo el fichero deseado por el atacante y no el que pretendía,  o la alteración de sesiones TCP para introducir en ellos comandos que el cliente no ha enviado, por ejemplo, un cliente se conecta a un servidor telnet con ODP y el atacante usa un ataque MitM para enviar una serie de comandos destinados a abrir una puerta trasera. De hecho, las posibilidades sólo están limitadas por la imaginación y os aseguro que hay personas muy creativas.

Como ya os habréis dado cuenta, en todos los ejemplos que he puesto los ataques se realizan sobre protocolos no seguros (HTTP, FTP, Telnet…), ya que es necesario modificar el payload del paquete para que el ataque tenga éxito. Para aplicar estos ataques sobre protocolos seguros es necesario tener en cuenta muchos más detalles y no siempre  pueden llevarse a cabo, sin embargo ya discutiré ese tema en un post posterior, pues su complejidad supera en mucho lo que quería mostrar en este primer acercamiento a los MitM.

Por último quería llamar vuestra atención sobre la forma en la que he descrito estos ataques. Tal y como lo he contado los paquetes se modifican al vuelo, siendo el ataque totalmente transparente. Algunos autores denominan a esto MitM Full Duplex, aunque personalmente no encuentro el término demasiado apropiado. El caso es que existe una variante del ataque que podríamos denominar Proxy MitM. Aquí la máquina atacante actua como proxy redireccionando todas las peticiones entre cliente y servidor. Hay que tener en cuenta que ahora es la máquina atacante la que establece las conexiones entre ambos extremos, por lo que el ataque no es totalmente transparente (si examinamos los paquetes veremos que nos vienen desde la máquina atacante y no del cliente/servidor legítimo).

La complejidad técnica de estos ataques es mucho menor que en el caso anterior (por ejemplo, ya no hay que sincronizar números de secuencia), por lo que es mucho más fácil implementarlos. Evidentemente también tiene desventajas respecto al ataque original, una de las más criticadas es su incapacidad para eludir mecanismos como los TCP Wrappers.

Y creo que esto ya es bastante para una primera aproximación, en el próximo post nos pondremos manos a la obra y veremos como realizar unos de estos magníficos ataques.

Categorías: seguridad |

6 comentarios

  1. Breves #3 « Guitarrista Geek

    [...] Breves #3 Diciembre 27, 2008 Posted by elyager in Breves. Tags: Ubuntu, Windows, WTF, porno, hacker trackback Ataques Main In The Middle I [...]

  2. Er FeR!

    Gracias por el manual. Se ve bastante bueno

  3. Alexander

    Hola. Mira yo tengo una pc pero no la se usar bien quiero que me enseñes como aser differentes cosas con Ella ok mandame email explicandome como aser diferentes cosas con mi pc ok gracias espero tu con testacion…………………………………… ………

  4. Alexander

    Hola. Mira yo tengo una pc pero no la se usar bien quiero que me enseñes como aser differentes cosas con Ella ok mandame email explicandome como aser diferentes cosas con mi pc ok gracias espero tu con testacion…………………………………… ………

  5. Mensajería Off-The-Record « Least Significant Bit

    [...] muy conocidos los ataques “man in the middle” que mediante técnicas como el envenenamiento de las tablas ARP de dos equipos pueden situarse a la [...]

  6. Man in the middle | coronado EDGAR

    [...] enseñanzas de los teachers o lo que lean en un blog, sean autodidactas (self-paced), investiguen: http://www.sendaoscura.com/seguridad/ataques-man-in-the-middle-1%C2%BA-parte/ http://es.wikipedia.org/wiki/Ataque_Man-in-the-middle [...]

Deja un comentario