Duda sobre pass de una app en Android

Iniciado por miguelskk, 12 Mayo 2012, 16:47 PM

0 Miembros y 1 Visitante están viendo este tema.

miguelskk

Hola a todos. Haciendome un ataque MITM desde el ordenador a mi móvil, quería probar a ver si lograba capturar mi contraseña de una app de chat con la que inicio sesión y el caso es que he capturado un paquete en el que viene mi email y un string que es passcode=ec7bef184c98981cc48a26bdce6bf132 que supongo será la pass cifrada.
Cómo podría saber el algoritmo que utiliza? Tendría que analizar el código de la app?

Saludos y gracias
Ellos levantan muros y vallas por todas partes, nosotros respondemos escribiendo nuestros nombres, ellos se cabrean y dicen que eso no es arte.

APOKLIPTICO

Yo diría que no la pongas ahi en el post como si nada, lo puede leer cualquiera eso.
En cuanto a tu pregunta, agarrá un hasher múltiple, poné tu contraseña y fijate si alguno coincide con ese string.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

miguelskk

Si me di cuenta no te preocupes, la cambie en cuanto puse el post, la razon de ponerla ahi fue por si era así más sencillo identificarla.
Voy a probar lo del hasher que no se me habia ocurrido, sere cateto, aunque no creo que funcione porque he seguido haciendo ataques MITM y he obtenido hashes distintos. Podría ser que la app autenticara al usuario mediante ssl?

Saludos y gracias
Ellos levantan muros y vallas por todas partes, nosotros respondemos escribiendo nuestros nombres, ellos se cabrean y dicen que eso no es arte.

faawlex

Es una pass cifrada a nivel de aplicación. Lo ideal para que la app sea segura es que el tráfico se transmita por TLS (a.k.a. HTTPS)
Si para una misma password el hash cambia, lo más probable es que esté hasheando tu password + un "salt"
Tal vez un atacante que capture ese hash, no le sea necesario conocer la pass en texto plano, sino tal vez pasando el mismo hash al servidor pueda autenticarse. La app pasa algún otro parametro más ?

miguelskk

Efectivamente hay mas parámetros, ahora mismo que recuerde uno es un APPLICATIONKEY y otro es SESSIONKEY.

Pensé en utilizar scapy dado que si lo configuro de manera que envie el hash capturado a la víctima modificando maliciosamente los paquetes enviados por mi móvil podría obtener acceso desde éste y sería una pequeña victoria, sin embargo dado que el hash es cambiante, que hay más campos además del hash y que tan sólo tendría acceso unas horas, buscando un ataque realista esto no me sirve de mucho.

Sobre lo de TLS hay algo que me ha llamado mucho la atención y es que al utilizar un ataque con sslstrip sobre el móvil al que tengo por víctima y loguearme con la app desde el móvil víctima, capturé un hash similar a los que había capturando utilizando simplemente un ataque con ettercap sin sslstrip. Es algo que no he acabado de entender pero bueno.

Creo, claro que seguramente esté equivocado, sslstrip haría que el certificado que recibiera la app fuera falso y ante esto la app tendría dos opciones, olvidarse de HTTPS o no permitir el acceso y no enviar nada, lo que me parece extraño es que se logueara correctamente y enviara otro hash igual a los anteriores.

Saludos y gracias
Ellos levantan muros y vallas por todas partes, nosotros respondemos escribiendo nuestros nombres, ellos se cabrean y dicen que eso no es arte.

faawlex

Primero y principal.. que es lo que deseas hacer?
Tu idea es capturar el hash y los campos de key (asumo que va todo en una cookie) y utilizar esos datos para aparecer logueado con la cuenta de una "víctima" ?
Primero te sugiero que trates de reproducir los paquetes enviados con algún proxy como Burp para ver si, por más que el hash cambie, puedas seguir manteniendo la sesión de usuario activa.
Que app es la que estás analizando? Lo que te recomiendo es que decompiles la app y trates de ver el código. Los pasos son muy simples y si entendes un mínimo de Java no te va a resultar dificil comprender el código. Busca en google "ingenieria inversa + android" o algo así. (suele haber casos en que el código está muy ofuscado y no queda otra que leer el código baskmali (sería el "assembler" de android))
Si necesitas ayuda con esto avisame

Sobre TLS: Si capturaste información sin cifrar (sin utilizar sslstrip), cuando uses sslstrip no va a surgir su efecto ya que la conexión no se realiza por HTTPS ya que, según lo que comentaste, los datos viajan en texto plano

miguelskk

Vale asi que aunque utilice TLS la conexión no tiene que realizarse mediante HTTPS no?

Lo de Burp lo he probado pero hay un gran problema y es que no existe un Burp para Android y el sdk es muy muy lento con lo que hare un script para Scapy y utilizare otro Android como víctima de un MITM modificando los paquetes de modo que parezca que ese segundo móvil, que es el que en teoría controlo yo (aunque controlo los dos), parezca ser el móvil víctima al que quiero suplantar. Con esto solo conseguiria una sesión.

Voy a explicar lo que quiero hacer de manera mas simple que soy bastante rollero y es normal que no se entienda. Tengo un móvil que ejecuta una app y se autentica en un servidor x. En los paquetes de autenticación he visto que hay varios campos uno con el EMAIL que va en texto plano sin cifrar y otro PASSCODE que va en texto plano pero cifrado mediante TLS si no me equivoco. Además aparecen otros campos como APPLICATIONKEY (que no varía) y SESSIONKEY (que si varía). El objetivo que realmente persigo es descifrar el campo PASSCODE aunque conseguir una sesión no estaría mal, realmente no me interesa porque estoy tratando de demostrar que la app es vulnerable.

Por qué tengo que usar Burp desde un terminal Android (o sdk)? porque no existe dicha app para ningún otro sistema operativo, y desde navegador, la autenticación se realiza mediante HTTPS. Además aun así solo conseguiria una sesión que no es realmente lo que persigo.

Habría alguna forma de descifrar el passcode?

Gracias por el interés, un saludo
Ellos levantan muros y vallas por todas partes, nosotros respondemos escribiendo nuestros nombres, ellos se cabrean y dicen que eso no es arte.