05 enero 2012

WhatsApp al descubierto


Hoy vamos a hablar de una herramienta para sniffear todo lo que whatsapp manda/recibe en la red creada a partir del estudio realizado Alberto Ortega en su post 'WhatsApp y su seguridad, ¿pwn3d?'


¿Qué es Whatsapp?

Whatsapp es un servicio de mensajería instantánea disponible para cualquier smartphone actual y que usa el protocolo xmpp para la transmisión de datos.

¿Como funciona whatsapp?

Como los chicos de securitybydefault nos comentaban en el otro post, whatsapp tiene como destino el puerto 443(HTTPS) aunque todo viaja bajo texto plano.

Whatsapp usa el protocolo XMPP(una tecnología de comunicación en tiempo real muy potente y utilizada actualmente). Un claro ejemplo del uso de XMPP lo podemos encontrar en el tuenti chat sin ir muy lejos.
Los datos de XMPP son enviados a bin-short.whatsapp.net bajo el puerto 5222.


¿Un momento, seguro que van en texto plano?... Así cualquier desalmado puede leer mis mensajes cuando estoy en una red wifi..

Exacto, todos los datos son enviados bajo texto plano, una vulnerabilidad que fue descubierta hace meses y reportada pero a la que whatsapp no hizo caso.



Pero es bastante incómodo tener que estár atendiendo a 80 paquetes para leer dos mensajes y dos números de teléfono... ¿no hay otra forma más comoda?
Porsupuesto, actualmente estoy desarrollando WhatsAppSniffer(que nombre más original) que muestra en consola todas las conversaciones, identificadores y demás que pasan por la red cuando se está usando whatsapp.

He decidido programarlo usando winpcap(aunque no sería posible de no ser gracias a Thor) y he usado como lenguaje ANSI C.

¿Y donde podría usar esta herramienta? Situémonos... estamos en una biblioteca, wifi público y está llena de personas que por no gastar el ancho de banda de 3G están atendiendo a usar whatsapp en el wifi.. Simplemente arrancaríamos la herramienta y dejaríamos que broten las conversaciones :).. en un aeropuerto, en un bar (así consigues el numero de esa rubia que tanto miras en lugar de atender a la coca-cola)...

¿Pero como usamos WhatsAppSniffer? 

Arranca el programa, selecciona un adaptador que se pueda poner en modo promiscuo introduciendo su número y pulsa enter.
WhatsAppSniffer esperará a que los paquetes comiencen a pasar y los irá mostrando en pantalla con sus respectivos datos.

Nota: En caso de que no logre detectar ningún paquete debes de cerrar la herramienta y previamente forzar el modo monitor de tu tarjeta, yo lo he estado haciendo con cain para ir probando.



















De momento he decidido dejar una versión BETA de WhatsAppSniffer. Todavía hay que ajustar un poco el filtrado de los paquetes, solucionar algún error y hacer que permita enviar mensajes desde el propio sniffer a partir de un userid.


Continuaré desarrollando la herramienta para mejorar el filtrado... realmente no hay un "patrón" de datos en los paquetes que me permita sacar los datos de forma limpia siempre... de modo que necesitaré un poco más de tiempo hasta sacar algo a lo que se pueda llamar Sniffer... :)

Artículo cortesía de Alberto, editor de  seginformatica.net

96 comments :

sD6 dijo...

Suena bien eso de "enviar mensajes desde el propio sniffer a partir de un userid". Muy buen aporte. Saludos

| Thor | dijo...

Gracias por la referencia! Una duda. Siempre he escuchado que whatsapp utiliza el protocolo XMPP pero este protocolo en teoría está basado en XML, ¿no? Y ahí no veo nada de XML, de hecho no es sencillo entender el protocolo de whatsapp. 
¿Seguro que utiliza XMPP?
Saludos.

tricomma dijo...

Como dice sD6 sería interesantísimo poder mandar mensajes con tu userid desde el propio ordenador...

Por otro lado.. estoy haciendo pruebas y de momento no he conseguido arrancar el programa! Me daba error de 2 archivos .dll que le faltaban... Los he buscado en Internet y ahora me muestra el siguiente mensaje: "No se encuentra el punto de entrada del procedimiento PacketGetReadEvent en la biblioteca de vinculos dinamicos packet.dll"

Un saludo y muchas gracias por las investigaciones. Siempre me gusta saber por donde viajan mis datos y lo seguros que están.

Víctor J. Chamorro dijo...

Compila en linux?

Anónimo dijo...

Tricomma, instalaste winpcap antes?

Spidifer dijo...

Tengo el mismo problema con el Packet.dll (En Windows7)

Carlos Guerra Pizarro dijo...

I la posibilidad de si avanza portarla a Android como droidsheep?
Es arpspoff y luego captura y filtrado de paquetes,no?

p0is0n Ramos dijo...

Hola, soy p0is0n, editor de seginformatica.net y autor de esta herramienta.
A las personas que no les ejecuta y les pide dependencias de dll's les sugiero instalar WinpCap... la herramienta funciona con el para capturar paquetes y por tanto lo necesitan para ejecutarla.

Muchas gracias a todos los que comentaron, incluiré lo de enviar mensajes si el tiempo me lo permite. ¡Un saludo a todos! ;)

fossie dijo...

Me uno a los comentarios sobre enviar mensajes desde el propio Sniffer. Realmente me parece muy interesante ya que no se porque no es posible instalar WhatsApp en un PC con normalidad.

Muy buen trabajo

AGA dijo...

Pues a mi me está siendo imposible hacerlo funcionar. Recibo todo el rato un error tras introducir el número de que el programa tiene que cerrarse. (Windows 7)

Un saludo y un fantástico trabajo

chencho \o/ dijo...

Lo he compilado para mac os (lion) pero muestra "mierda"... de este estilo
Mobile-OS:wgto8Om7TqkmZnEArIkQsBoQ8oNDJ04CRlzzxQMYz JJecn9fUKt22Exj1osgOOfRaSNtlnvUICt5uTZ3m8kB3kZdo1HyOY6v0heuDQ9mMobile-OS:d
Algo he roto .P

P0is0n dijo...

Instalen winpcap para que funcione y no les de error de dll`s...
@chencho \o/ En cuanto a lo de que muestra "mierda" si, hay que mejorar el filtrado... no es que lo compilaste mal... :) Gracias por comentar.

Comenzaré a programar una versión nueva en estos días, al resto muchas gracias por comentar y un saludo! ;)

Ender Muab'Dib dijo...

¿qué librerías/programas has tenido que instalar/descargar para compilar?  ¿Puedes compartir el Makefile modificado? Supongo que servirá parecido para cualquier unix...

Bakalutis dijo...

Me pasa exactamente lo mismo

Ender Muab'Dib dijo...

Ojo que el número que hay que introducir no es el de teléfono ni nada especial. Te sale una lista con las tarjetas de red instaladas en el equipo (normalmente wifi y cableada) y has de seleccionar en cuál quieres recibir los paquetes (1, 2 ó el que sea).

Adri Cris dijo...

no me funcione, como se que numero tengo que poner????

Falso dijo...

1-error de .dll 
2-instalar Wireshark + Winpcap
3-a correr :)

Falso dijo...

Seria muy insteresante poner todos los requisitos/librerias en el paquete y ponerle una simple interfaz

Ender Muab'Dib dijo...

Me parece una idea muy buena (¡sobre todo la opción de enviar mensajes!), te animo a que continues trabajando en ello.

Pues yo desde Windows 7 ejecuto el programa, selecciono la interfaz, mando y recibo mensajes por el Whatsapp y no me muestra absolutamente nada.
Probando a activar previamente el modo promiscuo desde el Whiresark tampoco consigo nada.

¿Sugerencias?

chencho \o/ dijo...

Con la libpcap vale. Lo demás está en los sources

Anónimo dijo...

Enhorabuena por el trabajo, desde luego Lo que no se os ocurra...

P0is0n dijo...

Ender Muab'Dib si no logras que te capture ningún paquete siempre puedes usar Cain(arp poisoning) para forzar el modo monitor y la captura de paquetes. :)

Un saludo y gracias a todos!

iRe - Android dijo...

Opino igual, muchísimas gracias!!

Rodrigo Tartajo dijo...

Pregunta relacionada con la seguridad: si se "censura" una captura de pantalla de wireshark tapando los caracteres en el campo ASCII pero no en el capo hexadecimal, ¿Hemos conseguido ocultar algo?

| Thor | dijo...

Jaja buen fail

As dijo...

yo tambien recibo basurilla del snifer, datos como los que dice chencho \o/

P0is0n dijo...

Las prisas son traicioneras! Gracias por el aviso ;)

Roberto Pérez Nygaard dijo...

Buen artículo. Tengo una duda ya que he abierto el WireShark para ver esto pero no logro que pille ningún paquete pero de nada. Configuraste de alguna manera el sniffer???? Quité la conectividad y la volví a activar, entonces si hubo actividad (Who has...) pero hace un par de cosas y vuelve a parar. Me estoy iniciando en esto, quizás me falte algo. (P.D.- Estoy en MacOs)

Juande Egido dijo...

¿De verdad les costaba tanto a los de WhatsApp usar aunque fuera una librería SSL?

Verguenza, mare miaaaa.

Buen aporte, por cierto. A ver si así se conciencian un poco...

husker du dijo...

Un pequeño empujón:

http://pastebin.com/yhtVyVUi

nbalonso dijo...

http://4.bp.blogspot.com/-I3bDDdjh-qk/TvzzzLxJ7eI/AAAAAAAAAK4/sgi0lGJlTCA/s1600/Q54.png

Juan Aguilera dijo...

¿El wireshark lo ejecutas como root? A mi, si no no me pillaba las interfaces. Te lo comento porque dices que te estás iniciando y no sé si lo has usado antes. Si ya lo sabías pues nada. ;)

Roberto Pérez Nygaard dijo...

Gracias por la respuesta. No lo ejecuto en concreto como root. No obstante, yo veo las interfaces y las abro sin problema. Añado el filtro para sólo ver las que no son de la ip de mi ordenador (si no me vuelvo loco) y no aparece nada. Luego para probar, puse el teléfono en modo avión y luego lo reconecté y entonces salió flujo de datos del teléfono pidiendo la IP y demás; pero cuando lo logró ya no se motraron más datos. Ni con Whatsapp ni iniciando el navegador ni otras apps.

Miguel dijo...

Hola, me parece cojonuda la herramienta. Bajo que licencia está el código fuente? Podrías hacer un repo en GitHub? Gracias.

Slazcha dijo...

No seja de ser triste crear una aplicación para meterse en las conversaciones de los demás, aunque si sirve para que los creadores de whatsapp se pongan las pilas y mejoren la seguridad algo se habrá sacado...

LyKiD dijo...

No consigo que me snife ningun mensaje. Se ejecuta todo perfecto, le pongo la tarjeta de red a utilizar y se queda escuchando.... pero no escucha nada...

Un Saludo!

Xabi dijo...

Ni instalando Wincap funciona (XP)

Alonso Hurtado dijo...

Como siempre, un análisis esencial y acertado.

La implicaciones, que desde el punto de vista jurídico conllevan este tipo de cuestiones son, sin duda alguna dignas de mención y deben ser tratadas con el mayor de los cuidados posibles.

El secreto de las comunicaciones, la protección de datos personales, el derecho a la intimidad, son derechos fundamentales y valores básicos protegidos por nuestro ordenamiento jurídico que deben ser tenidos muy presentes.

Esperemos que en breve WhatssApp solucione este bug de seguridad...esperemos...

Un saludo y gracias por vuestra labor.
www.lextic.com

Rafa dijo...

Hola chencho! Podrias compartir esa versión para Lion? Ahora mismo no dispongo de ninguna tarjeta que se ponga en modo monitor bajo windows...

Nak dijo...

Hola, he estado trasteando con WireShark directamente (sin usar tu
aplicación) y con varios que tenemos WhatsApp. Lo curioso es que el
tráfico que capturo es de sólo algunos móviles y no de todos. Parece que
en algunos casos el envío se hace a otra ip+puerto y no se ve en
WireShark. En otros sí que se ve claramente que es tráfico Jabber y el
contenido de los mensajes enviados. Las versiones de WhatsApp son las
mismas. ¿Sabes algo?

agi dijo...

Desde un punto de vista jurídico ¿cometería alguna ilegalidad el creador de este programa? (que no el usuario)

Janireh dijo...

ola gente como va estooo

Pikroa dijo...

Alguien ha podido abrir el archivo encriptado msgstore.db.crypt para poder ver las conversaciones borradas en whatsapp? si alguien lo ha podido hacer por favor escribanme a pikroa gmail.. (pikroa arroba gmail.com) 

Gracias!

Angel Gustavo Cruz Martin dijo...

Obtengo lo mismo ejecutando la version compilada, en windows 7 no creo que lo hayas roto. 

☠ Dani Martinez ☠ dijo...

Gracias a este post y que se corrio la voz Apple a cancelado la aplicacion de WhatsApp en su market hasta nueva orden http://www.yucatan.com.mx/20120113/nota-27/222360-whatsapp--es-retirado-de-la-app-store-de-apple.htm A partir de ahora las cachondas de biblioteca andarán más seguras y habrá que buscar otra forma de conseguir sus numeros (como pedirselos :P) Buen articulo!!!!

Nosoyunglobero dijo...

¿Y no sería mejor una versión que coja archivos .cap y nos devuelva las conversaciones? Que será lo que tengais implementado por debajo, digo yo XD

pasabaporaqui dijo...

Lo que sería sumamente interesante es una versión para el própio Android, aunque del modo promiscuo del adaptador wifi de muchos modelos puede ser problematico si no están al menos rooteados. 

Eduardo Sanz dijo...

Quisiera compilarlo en mac pero ando muy perdido en esto. Alguna explicación o consejo o algo? Gracias

agi dijo...

Yo también he estado trasteando y he hecho mi propio sniffer con libpcap en OSX. Por alguna razón (supongo que versión de software) no siempre se envían los paquetes por el puerto 5222 (jabber), la mayoría de las veces se usa el protocolo SSL (443), aunque los datos que contienen los paquetes son los mismos datos en plano, no se cifran.

El tráfico se redirige mediante "bin-short.whatsapp.net", si hacéis un nslookup veréis que hay 12 IPs posibles para ese dominio, así que por lo visto cualquier comunicación desde/hacia estas IPs podemos asegurar que es tráfico de whatsapp.

Al. dijo...

idem en windows7 :(
Introcude el numero correspondiente a tu tarjeta->2
Mobile-OS:reamstream togmailcom xmllangen version10 xmlnsstreamhttpetherxjabbero
rgstreams xmlnsjabberclient[...]Mobile-OS:IZxmL8gGMobile-OS:QRBQYcPSfXRMobile-OS:1EKjNZAMobile-OS:NZd

Al. dijo...

es más: estas ristras de caracteres son capturadas, en momentos en los que no estamos hablando por whatsapp :S

Al. dijo...

ok perdón... veo que mi ordenador se comunica por Jabber con 209.85.229.125 (Google Talk)... no sé cómo ni por qué, pero es eso, y es lo que captura WhatsAppSniffer....

Dario90 dijo...

actualiza los servidores de archivos porque mas de la mitad no funcionan ya

qwerty dijo...

¿Has puesto la tarjeta en modo promiscuo, VH?

snfw dijo...

actualiza los enlaces, NO FUNCIONAN

Yago Jesus dijo...

Arreglado !

Yago Jesus dijo...

Arreglado !

snfw dijo...

conoceis alguna tarjeta de red wifi usb que se pueda poner en modo promiscuo? la que tengo en el portatil no me deja

Alejandro Hernandez dijo...

Hola buenas, con este sniffer solo se consiguen conversaciones o también los archivos que se envíen por whatsapp?? En vez de por puertos no podría filtrarse por las ips que tengan los servidores (whatsapp.com .net etc) y luego pasar otro programa que descarte la comunicación del programa con los servidores y dejar sólo conversaciones y archivos enviados??

Juanrabani dijo...

Hola
Perdon por mi ignorancia pero al utilizarlo en modo promiscuo, pierdo conectividad de red? O sea, yo ahora tengo un equipo con una placa wi-fi porque no le llega el cable. Si utilizo la tool, pierdo conectividad completamente porque la herramienta necesita utilizar completamente la placa?Gracias

Saludos

Florentino Hernandez Guzman dijo...

Hola 
Me impusieron la necesidad de enviar mensajes a una cantidad masiva de números, alguien tiene la info de como enviarlso desde una compu; yo estoy buscado como pressiamente intentando conectarme directamente al servidor emulando ser un celular, apenas voy revisar el codigo pero si alguien me pudiera ayudar.. o explicarme como se los agradeceria muchisimo

Smgavir dijo...

Hola soy nueva en estos temas, intento recuperar el historial de mis mensajes de whatsap?, he descargado varios programas para recuperralos , como SQlitemanager, Filemanager, pero todavia no logro descargar los archivos del telefono, me salen encriptados... alguin me puede ayudar?
Sandra : smgavir@gmail.com

Mine23 dijo...

Hace un mes me robaron el iPhone y están utilizando Whatsapp... podría localizarlo?

Gracias!

Pepe dijo...

alguna ayuda para poner una Intel Pro Wireless 3945abg en modo monitor bajo windows?. El sniffer me arranca pero al no tenerla en modo monitor no coge nada.
Un saludo

Santiago Bernardi dijo...

Hola, como vamos con este tema!? muy buen aporte, siguimos a la espera de poder enviar mensajes desde sniffer! alguna novedad o algo para hacer?? Saludos

jess dijo...

Sorry if my question is silly. I could not find the wireless network adaptor as an option in the sniffer..i know my wireless network card's full name but it is not shown in the sniffer..can somebody help? thank you!

rc00 dijo...

Si suena bien! Pero me lo he descargado, y no consigo arrancarlo. Asi que, p0is0n me podrias explicar como arrancarlo, para los que no sabemos tanto. O algun alma caritativa.....Muchas gracias.

Cristina dijo...

se me  ha mojado el mobil    y  quisiera poder   tener  de nuevo  las conversaciones  realizadas  del   wasap   y los numeros  d telefono
 

Cristina dijo...

 se me  ha mojado el mobil    y  quisiera poder   tener  de nuevo  las
conversaciones  realizadas  del   wasap   y los numeros  d telefono
 

juavarde dijo...

Se queda pillado :S
 

Alejandra dijo...

hola, tengo un problema con mi whatsapp, el ingreso a la aplicación es super lenta y luego de eso cuando intento actualizar mis contactos me sale "too many files handles open" como puedo solucionar ese problema? graciasss!

Robert dijo...

Y sobre que base estas trabajando para correr esta utilidad? Sobre Windows 7 al parecer no se puede poner en modo monitor la tarjeta de red! Que procedimiento usaste?? Muchas Gracias! Un saludo!

siiscomar dijo...

hola como estan? alguien sabe de algun aplicativo para enviar desde un pc mensajes de textos al whatsapp en forma de grupo o lista de distribucion?

olmedo dijo...

hola que tal tya descargue tu aplicacion y el winpcap pero me manda error

josebacardi dijo...

funciona whatsappsniffer desde el celular?, tengo un note y quisiera probarlo, ah soy root que mas necesito?

Shine dijo...

Hola amig@ muy interesante tu aplicación pero bueno en si lo que hace este program es un ataque mitm con un shinnfer de toda la vida, lo unico que filtras paquetes xmpp y yá.
De todos modos le voy a hechar un vistazo al codigo pq estria bien compilarla para android,etc jejejjeje.
Buen trabajo.

De todos modos esto se podria evitar si la gente no confiara tanto en las wifis publicas, porque anda que no da gusto pillar datos personales en una red publica y si los de whatsapp usaran ssl que no se si puede usar bajo este protocolo.

Para quien le interese. Lo de modo promiscuo funciona actualmente en la mayoria de targetas de red , sin embargo la mayoria de gente normal uso distrbuciones linux tipo bactrack para efectuar estos ataques.
Vamos poneis etterca`p -> mitm attack y a escuchar jejejejjeje.

Un saludo

Shine dijo...

Hi men. If you running whireshark do it from su user or from a root acccount.
But first you have to put your wirerelss card on promiscuous mode with airmong-ng from aircrack sofwatre.

airmong-ng start "youcard"

then

airodump-ng "filters if you want" monX (where X is the number that arimong put when you use it. The most common is mon0).
As well is you are using whiresark you have to "listen" that target (monX)

See you :)

christine dijo...

Hola! Les cuento que con wireshark si puedo escuchar, colocando claro está el dispositivo en modo promiscuo, luego que hago esto, abro whatsappsniffer, selecciono el dispositivo correcto (que corresponda con el de wireshark), y se queda escuchando pero no veo nada, a diferencia de wireshark que si me muestra muchos paquetes, alguien sabe qué sucede?. Muchas gracias por su aporte!

pspXar dijo...

Igual que se extraen los estados, se podrían extraer o ver las imágenes de perfil de un número de teléfono con alguna petición a servidor??

Juan10 dijo...

Alguien sabe como descargar whatsapp spy gratis

SR DUCK dijo...

Solicitar un préstamo rápido aquí @ 2% con su,
nombre,
Edad / Sexo:
Ocupación:
Renta mensual:
País:
Provincia / Ciudad:
Número de teléfono válido:
Cantidad necesaria como préstamo:
Duración:
Propósito del préstamo:

Nuestro correo electrónico es ultimatelendingloancompany@gmail.com

Saludos

Sr. Floozy Duck

Ignorante dijo...

en el sniffer, cuando me bota lo de el numero correspondiente a tu tarjeta ahi k va ????

Alejandra Vásquez dijo...

descargue el programa pero me dice que introduzca el numero correspondiente a la tarjeta pero no se cual es!
Ayuda por favor

Alejandra Vasquez dijo...

Hola. Necesito ayuda ya que baje e instale el programa pero no se como hacer para leerlo o por donde o que debo bajar.
Agradezco la ayuda!

Tampico dijo...

Alguien me puede vender el programa para espiar el whatsapp de un iphone4S y que tiene el programa actualizado? saludos

Bell Pedernera dijo...

cual es el numero de tarjeta que me pide?

legolas2024 dijo...

que compilador has usado?

legolas2024 dijo...

que compilador has usado?

diego arevalo dijo...

supiste como hacerlo? me podrías ayudar

JON dijo...

porque cuando pongo la opcion 1 (wifi) se cierra el programa
les agradeceria su respuesta y ayuda

Andres Glz dijo...

Y que pasa con las imagenes que se puedan enviar, es posible verlas?

leyla dijo...

una consulta si elimine una conversacion y despues me conecte a una red wifi que puede ser que me espien pueden leer esa conversación que no existe

muriel dijo...

Si te refieres a cómo puede llegar a mostrarlo un sniffer, en mi caso al usar wireshark me mostraba como protocolo XML/Jabber.... No sé si era ésto lo que veías tú por entonces... hace ya 2 años de tu respuesta :|

desesperada dijo...

cual es del numero de la tarjeta que me pide por favor!!!!

desesperada dijo...

ya supieron cual era el numero de la tarjeta?

sarah andy dijo...

Damos respuestas verdaderas soluciones reales a su financiera
problema. ¿Está rechazado por su banco, o si necesita una rápida
préstamo rápido para satisfacer tus necesidades financieras de préstamo para
resolver su cuentas, la deuda y establecer su negocio.
Solicitar un préstamo ahora. Damos préstamo con tasa de interés baja
del 2% anual.

Si usted está interesado contacto Vía:
williamfinanceagency@gmail.com y llenar el préstamo a continuación
formulario de solicitud.

FORMULARIO DE SOLICITUD DE PRÉSTAMO:

Nombre completo:
país:
dirección:
Número de teléfono:
Importe del préstamo:
Duración del préstamo:
Ingreso mensual:
Género:
Ocupación:
Edad:
Correo electrónico de contacto: williamfinanceagency@gmail.com
gracias

Sr. William