"Golpeando y pateando" la aplicación incluida de su empresa de distribución europea más grande. PREFACIO Indiscutiblemente, las son objetos de culto. Deliciosos bocados de , siempre. Al principio, trabajaban fuera de línea solo con , luego, los modelos comenzaron a extenderse. Si digo “ ” seguro que a alguien se le ocurrirán tiempos mejores. Pero… En un montón de años las cosas cambiaron radicalmente. Te distraes y, un momento después, encuentras el mundo reemplazado por cosas conectadas a Internet... Máquinas Expendedoras Hackers monedas de tarjetas/llaves NFC COGES HISTORIA Un día decidí interrumpir mi sazón en la bat-cueva y dirigirme a mi ciudad natal para tomar un poco de sol, así que fui a la Universidad a saludar a un anciano profesor. —dijo— y comenzamos a charlar mientras caminábamos por el corredor principal. “¡Ve a tomar un café!” Una vez llegado… “¡déjame pagar, tengo monedas!”. “¡Espera, espera! déjame usar la aplicación de la máquina expendedora para pagar, el café será más barato”. Yo: Él: BLE + NFC “Mmm… Las billeteras virtuales son geniales…”. Cerebro: Excelente. ESTOFADO "¡Te desafío a eso!" Alma: hackear de : "solo palmaditas en el hombro si no hay recompensa de recompensa por errores". de : “ok, lo haré solo con fines educativos”. de : “vamos hombre, ¡vamos a joder ese MONTÓN, gran Júpiter!”. ~$ Voz interior White Hat ~ $ Voz interior Gray Hat ~ $ Voz interior Black Hat Más tarde ese día… Pwnie expreso. ANÁLISIS No hace falta decir que recogí mi teléfono inteligente rooteado sucio (con la ), instalé la específica de y descargué el original en mi computadora portátil a través de . Android depuración USB habilitada aplicación Play Store * .apk adb # adb pull /data/app/com.sitael.vending-1/base.apk ./Argenta.apk Descompilé el .apk con * apktool # apktool d ./Argenta.apk -o ./Argenta y extrajo fuentes de con Java jadx # jadx ./Argenta.apk En primer lugar, hice .apk depurable editando el archivo agregando la propiedad a la * AndroidManifest.xml **android:debuggable="true"** **application <tag>** Luego, reconstruí el *.apk # apktool b ./Argenta creó una nueva con clave keytool # keytool -genkey -v -keystore Argenta.keystore -alias Argenta -keyalg RSA -keysize 2048 -validez 10000 firmó el .apk con usando la generada * jarsigner clave # jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore Argenta.keystore Argenta.apk Argenta por último, lo para hacerlo ejecutable alineé # zipalign -v 4 Argenta.apk Firmado en Argenta.apk e instalé el final *.apk # adb install ./Argenta-signed.apk Ejecuté la aplicación en el teléfono inteligente y comencé a buscar registros con filtrándolos a través de su logcat nombre de paquete # adb logcat --pid=`adb shell pidof -s com.sitael.vending` No encontré nada especial, así que comencé a revisar los códigos fuente en busca de información . jugosa Mirando mejor el archivo , encontré referencias a **AndroidManifest.xml** RushOrm Entonces, la primera búsqueda de palabra clave fue **db_name** Enfriar. Inicié en el teléfono buscando Root Explorer **argenta.db** Fundar. Así que lo saqué a mi computadora portátil con adb # adb pull /data/data/com.sitael.vending/databases/argenta.db ./ e intenté abrirlo con un DB Browser para SQLite obviamente, estaba protegido por contraseña INGENIERÍA INVERSA Regrese a los códigos fuente, mire **RushAndroidConfig.java** donde encontré los métodos utilizados para configurar la base de datos. Me llamó la atención **this.encryptionKey = getDeviceId(context);** Pasé a su definición y... Se descubrió que la objetivo usaba el del teléfono como para la base de . aplicación IMEI **(*#06#)** clave de cifrado datos SQLite Abracadabra. Bebé boom. Después de un par de segundos de inspección, abrí la mesa **UserWallets** y editó los cambios de escritura del campo **walletCredit** luego empujé la base de datos con vuelta al teléfono crédito bombeado de # adb pull ./argenta.db /data/data/com.sitael.vending/databases/argenta.db VEREDICTO Mientras tanto, mientras me sentía como (referencia nostálgica y explícita al código de trucos de por ), desarrollé una utilidad de para / / rápidamente la base de datos de la objetivo sobre la marcha. "Robin Hood" Age Of Empires +1000 de oro Android volcar restaurar manipular aplicación luego volví a mi universidad nuevamente para finalmente probar el Hack Querido diario… CONCLUSIÓN Desde , podría: una cuenta de crédito cero > Inflar el crédito de la aplicación.> Comprar cosas.> Actualizar el crédito restante.> Volver al estado de crédito cero.> Inflar el crédito de nuevo.> Empezar de nuevo. Con una inspección de todas las fuentes , encontré parte de código , , lo que significaba que . macro invertidas una gran limpio sin ofuscación no se adoptaron grandes contramedidas para proteger los datos del usuario y hacer que la aplicación fuera segura en absoluto Hace un mes… Mi voz interior tomó el teléfono y llamó a la detrás de esta para informar la vulnerabilidad. Les sugerí amablemente que la arquitectura actual y desarrollaran una mejor y más segura desde cero. White Hat compañía vergüenza desecharan Hocus falso.