Hoy traigo una herramienta para sniffear todo lo que whatsapp manda/recibe en la red creada a partir del estudio realizado por los chicos de securitybydefault(post original)...
Esta herramienta solo sería una idea de no ser gracias a Thor & Yago Jesus, a los cuales agradezco mucho su trabajo y dedicación... :)
¿Qué es el 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... :)












48 comentarios:
Tiene buena pinta, yo uso Wireshark para una asignatura de redes de la uni, y se ven fácilmente los paquetes del Messenger por ejemplo. Aunque este programita que has puesto no sólo me captura cosas del Whatsapp, sino que también veo otros mensajes al parecer cifrados y conteniendo palabras de gmail, facebook chat, user agent Mozilla... y un desconcertante "this Certificate constitutes acceptance of the DigiCert CPCS and Relying Party Agreement...". Vamos, que por curiosidad he dejado el programa arrancando unas horas y veo bastantes cosas, aunque estoy conectado directamente al router por el cable de red.
@Alberto: Muchas gracias por comentar! He puesto el filtrado para el puerto 5222(tcp) que es el que usa whatsapp para xmpp :) Puede que detecte más de lo que debe jajajaj
Un saludo y muchas gracias!
Muy bueno p0is0n, a ver cuando lo pruebo,un saludo tio, cuidate!
@Spectrus muchas gracias! Pruébala y nos cuentas ;)
¡Un saludo!
Excelente !
Gracias !
@BUHOsec.com: Muchas gracias!
Un saludo :)
Grande hermano!, ya sabes, me encantó :)
@$DoC: Gracias por el comentario, me alegro de que te guste ;)
Un saludo :p
Muy bueno @P0is0n.
Ya que citas el código fuente, en caso de realizarle alguna mejora, te puedo colaborar?
@pcastagnaro claro! Cualquier persona puede modificar el código y mejorarlo. :)
Un saludo y gracias por pasarte ;)
De mucha utilidad, y sí, parece que detecta más cosas de las previstas. Si pudiera extraer todo limpiamente ya sería perfecto. Buen aporte, gracias.
Muy interesante,
Encima es una muy buena manera de empezar con libpcap...echaré un ojo al código !!
Gracias !
@Ricardo: Estoy trabajando para solucionar eso ;)
@ponchersey: Sip, una muy buena iniciación a la programación con winpcap :)
Un saludo y muchas gracias!
Hola P0is0n!!
Soy Newbie o Lammer en todo esto, y al intentar ejecutar el programa me pide una serie de librerias (wpcap.dll y packet.dll) que he instalado, pero aun asi me sigue dando el siguiente error.
"No se encuentra el punto de entrada del procedimiento PacketGetReadEvent en la biblioteca de vínculos diámicos packet.dll"
Me puedes ayudar?
Cuando llegue a casa lo probaré.
Tiene muy buena pinta.
¿Nos podrías decir algo de la seguridad o carencia de ella de Whatsupp cuando está conectado a redes 3G?
Gracias!
@Anónimo: Newbie, que lammer es otra cosa! Te recomiendo instalar winpcap y reiniciar el ordenador antes de usar el Sniffer.
Link WinpCap(windows): WinPCap+DLLs Download
Gracias por comentar!
@dex:Sip, en la semana si puedo dejaré algún artículo pero te adelanto que en una red 3g el sniffer no va a funcionar... sinó sería un caos... ;)
Un saludo y muchísimas gracias a todos!
@P0is0n, entiendo que el sniffer no funcione en 3G, sino sería la leche.
Estaremos atentos, pues.
wow poi recien veo esto se ve interesante esta tool la vajo y pruebo aver
@dex: En 3g pondría al descubierto un par de conversaciones... seguramente las que estén en la misma antena que tu y eso depende de la distancia y tal... Pero imposible me parece a mi... ;)
@bravus: Gracias bravus!
Un saludo a todos y gracias otra vez!
@dex @P0is0n lo del 3g no es posible, independientemente de que estés en la misma celda. A menos que hayas conseguido romper el cifrado claro... :)
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?
@Anónimo: Imposible como dije antes... ;)
@Nak: Es posible que usen más de un puerto, estate atento y si ves algún puerto a mayores del 5222 me avisas para reprogramar la herramienta... :p
Cosas peores tiene WhatsApp que no cuenta... guarda conversaciones y contactos en una db sqllite y guarda una captura de pantalla de la última conversación... :O
Un saludo chicos y otra vez, gracias!
Muy interesante, aunque selecciono el adaptador y no filtra nada de tráfico (y eso que lo genero). Al tener instalado winpcap debería estar la tarjeta de red en modo promiscuo.... What a pity! :___(
Si que funciona pero sale el texto Codificado. Revisa tus tarjetas de red.
A espiar a la novia se ha dicho!! xD Muy bueno puason!
FAKE Muestra texto codificado
Hola, ¿alguien sabe como detectar los adaptadores en wine? El programa se ejecuta pero no me sale ninguna tarjeta de red.
Muchas gracias!
No es Fake... WhatsApp envia al principio de conexión texto codificado en b64... si lo descodificas no hay nada legible... :O
El programa está limpio, si no crees en su fiabilidad puedes bajar el código fuente y compilarlo tu mismo... :p
Un saludo!
Hola Anónimo, ¿Qué tal? Bueno, una vez instalado winpcap debes reiniciar el ordenador para que te detecte la tarjeta de red. Puede ser ese el problema... puedes igual compilarlo para linux cambiando algun lstrlen a strlen y listo ;)
Un saludo y espero que te funcione!
Muy buenas, una vez introducido el número de tarjeta se cierra solo el terminal. ¿Sabes que podría ser? Gracias
Gran herramienta, pero he llegado tarde con el cierre de Megaupload... no te importaría volver a subir el archivo a otro servidor que esté aún operativo y que el FBI no haya cerrado? Gracias por vuestro trabajo y por hacernos reir con la seguridad de webs ;)
@Anónimo: ¿En que S.O lo estás utilizando? Gracias por comentar!
@Alex: ¡Resubido para que disfrutes! Gracias por las críticas tan positivas :)
Un saludo ;)
Buenas, que tal?
recibo mensajes codificados, pone en uno por ejemplo:
Mobile-OS:3tjF
(el movil es htc con windows phone)
Si, yo solo he conseguido que el programa me lea esa "mierda cifrada" y nada más...lo he dejado horas pero el unico resultado es Mobile-OS:3tjFfsfghettetukjfh5trfgd
Seguramente haga algo mal.
Felicidades Poison!
Puf, no consigo compilar en ubuntu, me pide la lib de windows.h
:-(
Voy a seguir intentandolo.
Gracias por el aporte.
Hola, estamos en la búsqueda de expertos en tecnología para redacción de contenidos. Te invitamos a que te des de alta en nuestro sitio en www.vivilia.com. Gracias.
P0is0n. Me interesaria ponerme en contacto contigo. ¿Podrías facilitarme un correo de contacto?
Un saludo
@Anónimo: Puedes ponerte en contacto conmigo:
-A través de p0is0n@seginformatica.net enviando un mail.
-A través de @p0is0nseginf en twitter.
Un saludo, estaré atento!
Solo para plataformas Microsoft, no?
Un blog cojonududo y muy interesante.
Sigue así
Un saludo
perdon, me equivoque al teclear *cojonudo
[stile@stile ~]$ gcc -o whatsapp main.c
main.c:3:21: fatal error: windows.h: No such file or directory
compilation terminated.
Muy bien, muy útil.
@Anónimo2: Elimina el include a windows.h y sustituye todas las funciones de WinAPI (lstrlen, lstrcat) por su equivalente en string.h (strlen,strcat) :)
Un saludo!
Para hacer pruebas funcionaria bajo una red wifi propia! O debe ser publica?
@Anónimo: Funcionaría en ambas redes... sin embargo tengo que volver a sniffear todo porque creo que puedo hacerlo mucho más limpio }:T
Saludos!
hola amigo poseidon como puedo arrancar esto en wincap o como le hago paso por paso porfis
Hola ¿Cómo averiguo el número de la tarjeta? Salu2
Increible! Voy a probarlo....gracias y sigue con el blog que esta wapisimo xD
Publicar un comentario en la entrada