Solving UnCrackable Android App Level 1 with Runtime Mobile Security (RMS), based on this video
WARNING
This tutorial is under construction!
Version | 2022.04.08 |
---|---|
![]() |
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License |
[How To Install Node.js 14 on Ubuntu 22.04 | 20.04 | 18.04](https://computingforgeeks.com/install-node-js-14-on-ubuntu-debian-linux/) |
NOTE
This tutorial might not work with an Android Virtual Device due to the limitations of the used tools. These instructions were tested on a Samsung A40 running Android 10.
> npm install -g rms-runtime-mobile-security
frida-server
is up and running on the target device and make a quick test:> frida-ps -Uai
PID Name Identifier
---- ----------------------- ---------------------------------------
2164 Calendar com.google.android.calendar
1297 Google com.google.android.googlequicksearchbox
...
> rms
RMS - Runtime Mobile Security
Version: 1.5.11
by @mobilesecurity_
Twitter Profile: https://twitter.com/mobilesecurity_
_________________________________________________________
Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
[http://127.0.0.1:5000/](http://127.0.0.1:5000/)
and this is how it looks:On Device detected
you should see your Android Emulator
.
NOTE
If RMS is not able to detect your device, please perform the following checks:
- check if
frida-server
is up and running on the target deviceRMS
must be started afterfrida-server
- make sure that only 1 device is connected to your computer,
RMS
is currently not able to detect multiple devices- kill
RMS
and start it again
There are two steps to solve this challenge:
First, download the UnCrackable-Level1.apk app, then install it:
> adb install UnCrackable-Level1.apk
Success
Now, run the Uncrackable1
app and you should see this error message:
The app is able to detect that it’s running on a rootedf device and exists. This is a common security mechanism used to prevent man-in-the-middle attacks. However, this is exactly want we want to do in order to study the app behaviour.
The next step is to trick the app to believe the device isn’t rooted. This can be acheived with a frida
script, but RMS
already has some built-in scripts for thid purpose. The next steps are:
Mobile OS
choose Android
Package name
type owasp.mstg.uncrackable1
frida-ps -Uai
will list all installed apps and their namesLoad Default Frida Scripts
and choose [24] system_exit_bypass.js
(the number might be different depending on the installed version)Start RMS
Uncrackable1
should be open and show the same Root detected
error
OK
?test
in the Enter the Secret String
field and click VERIFY
On the RMS
tool:
Load Classes
Insert a Filter
Hook all classes that start with
field the text sg.vantagepoint
Submit
3. Load Methods
4. Hook all methods
buttonOn the Android device:
VERIFY
button againHere’s what you should have now on RMS
Still on RMS
:
Dump TAB
and check that the public void verify()
is listedLoad Frida Script
tab[25] - tracer_cipher.js
(the number might be different depending on the installed RMS
version)Run Custom Frida Script
On the Android device:
VERIFY
button againOn RMS
tool:
Global Console Output