Friday, October 18, 2013

Tuesday, September 10, 2013

Seguridad whatsapp!!!

La última moda en aplicaciones móviles se llama WhatsApp, una App que cada vez se hace más popular y está redefiniendo el sistema de mensajería SMS. ¿Que qué nos ofrece? Un servicio mucho más completo, mejor y de momento gratuito.

La "pega" es que necesitamos Internet para poder comunicarnos, y que tanto emisores como receptores deben tener la aplicación, la cual funciona por ahora en iPhone, Android, BlackBerry y Nokia Symbian. Por cierto, para los usuarios de iPod Touch hay opción de utilizarla, pero tendrán que descargarla desde sitios alternativos y tener el sistema con Jailbreak, ya que en la AppStore ha desaparecido para ellos.

Pero aquí vamos a hablar de lo que nos gusta de verdad, de seguridad y, en este caso, algo de privacidad. Todas las pruebas que vamos a hacer serán de la versión 2.6.2 (la última a día de hoy) sobre un iPod Touch, en un principio el resultado no debería diferir mucho (nada) aunque cambiemos de plataforma.

Si miramos el tráfico de la red generado por la aplicación lo primero que llama la atención es que el destino del servidor es el puerto 443 (HTTPS), pero todo viaja en claro.

WhatsApp utiliza el protocolo XMPP, una potente tecnología abierta para comunicación en tiempo real.

Como mecanismo de autenticación han optado por SASL DIGEST-MD5, el cual utiliza los siguientes valores para generar el challenge (MD5):

username, password, realm, nonce, cnonce, nc, digest-uri y qop.

Todos menos el nombre de usuario y password son generados por servidor o cliente y se envían en el challenge. El nombre de usuario lo proporciona el cliente y también es enviado, y por último el password también se utiliza para generar el MD5 pero no se envía, ya que es el valor que permite que la autenticación con el servidor sea segura.

Aquí tenemos un ejemplo de challenge ya formado que es enviado por el cliente para finalizar la autenticación:

username="34666666666",
realm="s.whatsapp.net",
nonce="1438536309",
cnonce="E0487DC6-6D1A-4A67-AV70-3299TD89O29A",
nc=00000001,
qop=auth,
digest-uri="xmpp/s.whatsapp.net",
response=b98d50c159a938723d8eb8f3039afab2,
charset=utf-8

Hasta aquí todo bien, pero hay un problema: No recuerdo haber introducido ninguna password para mi cuenta durante la instalación, simplemente vinculé mi teléfono móvil. Entonces, ¿qué se está usando como password en el challenge?

Existen varias posibilidades:

- Está "hardcodeada" en el código fuente, es decir, es la misma para todo el mundo.
- Se genera en base a algún valor único del dispositivo (¿número de serie?).
- Se genera en base al username, que por cierto, es nuestro número de teléfono.
- ...

Buscando en los ficheros de configuración no encontré nada referido a la password, por lo que finalmente decidí hacer mi propia implementación de SASL DIGEST-MD5 (mención especial a este magnífico artículo) y hacer fuerza bruta a la password de un challenge generado por la aplicación.

Probé con varios diccionarios relativamente grandes y con las strings del binario de WhatsApp de iOS. No hubo resultados.

Después de probar todo lo que se me ocurrió sin obtener resultados satisfactorios decidí enviar un email a los desarrolladores con un tono de curiosidad, preguntando por la password que se usaba en la autenticación XMPP. La respuesta fue tan precisa como breve, literalmente:

password is just "password"

Pero, ¿cómo es posible? Si ésa es la password, ¿por qué no ha salido durante la fuerza bruta?

Podemos llegar a dos conclusiones:

- Ésa no es la password, y se están cubriendo las espaldas.
- Su implementación no sigue el estándar y lo han modificado ligeramente por algún motivo.

Si finalmente la password es la misma para todos los usuarios, están siguiendo una filosofía de seguridad por oscuridad que puede ser rota cualquier día. Si alguien obtiene la password que se usa, o consigue implementar el algoritmo para generar el challenge teóricamente podría iniciar sesión en el servicio con la cuenta de cualquiera, sabiendo únicamente su número de teléfono. Sería algo parecido a tener todas las cuentas de usuario sin contraseña.

La solución a ésto pasaría por hacer que el usuario introduzca una contraseña durante la instalación, o utilizar algún valor único del teléfono móvil no predecible como contraseña.

Sólo nos queda esperar a que alguien dé con la llave mágica que lo abrirá todo (si no lo han hecho aún), o que la próxima actualización de WhatsApp introduzca en el modo de autenticación una password de verdad.

Por cierto, para terminar el artículo, ¿he dicho ya que todo el tráfico de la aplicación va en claro? Mensajes, nickname, números de teléfono ...

Wednesday, August 21, 2013

Error de sesion de Windows solucionado


hola yo también tenia ese problema pero seguí los siguientes pasos y me funciono, acá están los pasos, mi sistema operativo es windows 7: 
1) entrar en modo seguro, esta es la unica forma en que el windows carga, para entrar en modo seguro solo tienen que oprimir f8 apenas se prende el computador, hay les da varias opciones y escogen la de entrar en modo seguro. 
2) cuando ya aya cargado windows 7 se van a inicio y en el buscador escriben ¨regedit¨ , y oprimen enter una vez lo visualicen en el buscador, hay se les abre una ventana, en esa ventana se meten en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList 
en Profilelist aparecen 5 carpetas; S-1-5-18; S-1-5-19; S-1-5-20; S-1-5-21-numeros; S-1-5-21-numeros. 
3) en estos dos últimos donde hay un chorrero de números al final debe haber uno que termina con .bak, y otro sin .bak, verifiquen haciendo click sobre el que termina en .bak y tiene que haber un archivo que dice C:\Users\TEMP, ojo si no es ese y es este C:\Users\(nombre de usuario), entonces hay un error, toca cambiarlos. 
4) el cambio lo hacen de la siguiente forma, primero colocan al final de los números al que no tiene .bak por .bak2, después el que tiene .bak borran el .bak, y por ultimo al que le pusimos .bak2 lo reemplazamos de nuevo pero esta vez por .bak 
5) listo cerramos y reiniciamos, debe ya entrar normalmente, espero que les funcione.........

Saturday, July 6, 2013

No a la expulsión!!!

REALMENTE PIENSO QUE EL PRESIDENTE DE BOLIVIA ES UN IRRACIONAL!!
ESO DE EXPLUSAR A LA EMBAJADA DE ESTADOS UNIDOS ES LO MAS  ABSURDO QUE
PUEDE HACER....
CLARO SOLO PIENSA EN ÉL Y EN NADIE MAS!!!
YO DIGO NO A LA EXPLUSIÓN DE LA EMBAJADA DE "USA"

Sunday, April 28, 2013

Sometimes saying "I love you" from the heart to a person not much
And at that moment when one falls psychologically
The worst thing a fighter if you do not give up so easily
We got the "Hope" not as a blessing but as a punishment
There is nothing worse than having a hope!!!
It just makes you believe that everything will be fine
>

Friday, April 26, 2013

Knows more than Ruby on Rails!!!
accept it.........
----------------------------------
Conoce mas de Ruby!!!
http://rubyonrails.org/

Wednesday, April 24, 2013

Aprende a programar el lenguaje de tu preferencia o interes
Lear to code interactively....  free
http://www.codecademy.com/
Java
Python
Ruby
+

Tuesday, April 23, 2013

developing and modifying the blog

Bueno para mi primer blog estaba estudiando un poco del codigo  fuente de blog....
El cual parece algo bueno que tenga un codigo abierto para hacer ciertas modificaciones y tambien sirve para poner en practica todo lo que uno aprende en los curso de programacion..
Acá le muestro una imagen como podrian realizar esta pequeña y sencilla modificación
"ENGLISH"
Well for my first blog was looking a little blog source code ...
Which seems a good thing to have a open source to make certain modifications and also serves to put into practice everything you learn in the course of programming.
Here I show you a picture as could perform this simple little modification.