Lata con Plata – Becker

Becker ha lanzado una promoción llamada “Lata con Plata”, esta promoción consiste en que por medio de una aplicación móvil, puedes insertar códigos los cuales se encuentran bajo los tabs. Esto permite a los consumidores acceder a beneficios y a descuentos. Para más información pueden visitar el link de la promoción.

La aplicación

Una vez descargada la aplicación, nos solicita que nos registremos, ya con esto podemos comenzar a ingresar los códigos y a disfrutar de todos los beneficios (si consumen el producto).

Si presionamos ‘INGRESAR CODIGO’, se despliega la siguiente vista:

Si ingresamos un código y este es erróneo, nos muestra la siguiente mascota:

Al ataque

Lo primero que hice fue interceptar el tráfico de la app con la herramienta Burp Suite. Lo cual me mostró lo siguiente:

Podemos observar que envía el código por medio de una solicitud tipo POST al servidor lataconplata.cl con codificación JSON. Veamos la respuesta que nos devuelve el servidor, esperemos que esta vez tenga suerte con el serial ‘AAAAAAAA’:

La respuesta es “Código incorrecto” (nuevamente, no tuve suerte).

Ya entendido a nivel de red como se comporta la app, calcularé las probabilidades de combinatoria, son 36 elementos posibles (valores alfanuméricos insensibles al uso de mayúsculas o minúsculas) y con un largo de 8.

Usando la calculadora de la página hackmath.net, obtenemos el cálculo total:

Aun cuando la cantidad de posibilidades desalienta a cualquiera, realizaré un ataque por medio de fuerza bruta a través del lenguaje scripting Python.

La idea lógica del script es la siguiente:

  1. Obtener desde varias webs listas de proxy’s.
  2. Realizar una lista con todas las posibles combinaciones permitidas.
  3. Crear multi-threads que reciban como entrada el código de 8 dígitos a probar.
  4. realizar la petición POST desde los thread, incluyendo el token y el código.
  5. Tomar una acción en base a la respuesta del servidor (cambiar de proxy, código inválido o código válido).
  6. Escribir en un archivo los códigos válidos recolectados.

Script (disponible en Github):

Demostración

Tras dejar el script funcionando algunas horas e ir actualizando la información de la app desde el emulador BlueStack para mayor comodidad, podemos observar cómo se van asociando los puntos, niveles y códigos en nuestra cuenta.

Afortunadamente (desde una perspectiva ethical hacking) con el pasar de los días, el administrador del servidor se percató de lo sucedido e implementó una regla que deniega las conexiones provenientes fuera de Chile y delimitó el número de peticiones totales por IP, por lo cual ya no es necesario realizar un reporte.

Otra característica de la app que me llamó la atención fue el registro a través de email:

La contraseña es enviada de forma cifrada, aunque la petición es realizada por medio del protocolo HTTP.

La contraseña que he utilizado es ‘123456’, una contraseña común que puede ser buscada en crackeadores de hash online para poder determinar el algoritmo utilizado:

Clave Clave cifrada Tipo
123456 e10adc3949ba59abbe56e057f20f883e md5

A través de un ataque MITM, un atacante podría interceptar las peticiones y crackear la clave, quizás no con el objetivo de contar con los magníficos beneficios que entrega la app, si no por la mala costumbre que tienen los usuarios al utilizar siempre las mismas claves, ya con credenciales válidas quizás el siguiente objetivo no sea un simple cupón de descuento.

Conclusión

Pudimos observar la importancia de contar con mecanismos anti-bots y cómo fue posible implementar un script en python capaz de automatizar tareas y optimizar su tiempo de ejecución por medio de la implementación de threads.

Compartir

Agregar un comentario