Rick y la bomba
Antes que nada, presentar nuestras disculpas por tardar tanto en liberar el write-up.
En esta misión volvemos a estar en el papel de Rick, tenemos que evitar que explote
una bomba, pero la información que tenemos es solo un código QR desordenado.
una bomba, pero la información que tenemos es solo un código QR desordenado.
Puzzle QR |
Podemos hacer uso de GIMP para rearmar el código QR, scripts en python...etc.
Hay bastante información en Google sobre esto, el rearme correcto sería el siguiente
que corresponde con una dirección de descarga de una apk:
Hay bastante información en Google sobre esto, el rearme correcto sería el siguiente
que corresponde con una dirección de descarga de una apk:
Puzzle QR Resuelto |
Y aquí empieza lo divertido, podemos instalarla en un emulador de android para
echar un primer vistazo a la aplicación.
echar un primer vistazo a la aplicación.
Temporizador de la bomba |
![]() |
Explosión de la bomba |
"Android Tamer" (dejo el link en el apartado "Herramientas" abajo del post).
Android Tamer es una distribución diseñada para hacer auditorias de seguridad a aplicaciones Android.
Así que nos viene perfecto para esta ocasión. Personalmente cuando me enfrento a este tipo de pruebas
lo que suelo hacer es analizarlo con "MobSF (Mobile Security Framework)".
Abrimos una terminal y ejecutamos el comando 'mobsf' se ejecutará un portal web:
(http://0.0.0.0:3000 por defecto en Android Tamer).
Consola MobSF |
Portal Web MobSF |
Y analizamos 'timer.apk'. En el apartado de 'Options' nos presenta varias opciones:
Options MobSF |
Las más interesantes son 'View java / Download Java Code' y 'View smali / Download Smali Code'.
Descargamos los ficheros y podemos investigar mejor con esto nos valdrá, si vemos el 'MainActivity.java' y
nos fijamos en las funciones: 'onCreate()' y 'showCode()' vemos lo siguiente:
Código onCreate() |
Código showCode() |
Si nos descargamos desde MobSF los ficheros 'java' y 'smali' podemos modificarlos y recompilar la apk para que funcione según nuestras modificaciones. Dentro de 'MainActivity.smali' vemos las funciones 'showCode(), wasSuccess(), showBoom()'.
MainActivity.smali |
Podemos parchear estas funciones y reemplazar la función 'showBoom()' por 'showCode()'.
MaicActivity.smali modificado |
Recompilamos la aplicación, la instalamos en nuestro dispositivo y/o emulador, veremos como no ha funcionado la aplicación, pero si matamos el proceso de la aplicación y esperamos a que pase los 30 segundos y ya obtenemos el código UAM{B0mb_D1S4BL3D_YOU_R0CK}
![]() |
FLAG!!! |
Espero que os haya ayudado este write-up, hay muchísimas formas de resolver este reto pero ha sido imposible recogerlas todas y organizarlas para un write-up más completo, quizás en próximas misiones podamos hacerlo.
Recordar que cualquier duda podéis exponerla en el canal de Telegram (https://t.me/joinchat/AKWAVkxjj1GTE_cvkvQvIQ) o por privado a los administradores.
Muchas gracias por participar en una misión más y bienvenidos a los que se enganchan ahora.
Mario Parra
@MPAlonso_
Herramientas usadas por los participantes
QR
-------------------------------------
- Python Lib image_slicer: https://pypi.python.org/pypi/image_slicer
- GIMP: http://www.gimp.org.es/
- imagesplitter(Web): https://imagesplitter.net/
- imagemagick: https://www.imagemagick.org/script/index.php
- gaps: https://github.com/nemanja-m/gaps
- Script (framirez: tw: @fdrg21): https://gist.github.com/framirez/e848b4daa824d29885f127d4dfdc9e11
APK
--------------------------------------
- Android Tamer: https://androidtamer.com/
- AndroidStudio: https://developer.android.com/studio/index.html
- apktool: https://ibotpeaches.github.io/Apktool/
- MobSF: https://github.com/MobSF/Mobile-Security-Framework-MobSF
- apksigner: https://developer.android.com/studio/command-line/apksigner.html
- dex2jar: https://sourceforge.net/projects/dex2jar/
- JD-GUI: http://jd.benow.ca/
- APKEasyTool: https://www.mediafire.com/folder/anj84aqw8oy56/APK_Easy_Tool