mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 21:24:06 +00:00
149 lines
7.5 KiB
Markdown
149 lines
7.5 KiB
Markdown
# Frida Tutorial 3
|
||
|
||
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
* Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||
* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Share your hacking tricks by submitting PRs to the** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **and** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||
|
||
</details>
|
||
|
||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FwdlXOpyZOVGNzyhOiiFK%2Fimage%20(1).png?alt=media&token=13f4d279-7d3f-47ce-a68e-35f9a906973f" alt=""><figcaption></figcaption></figure>
|
||
|
||
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
|
||
|
||
{% embed url="https://www.stmcyber.com/careers" %}
|
||
|
||
\\
|
||
|
||
***
|
||
|
||
**From**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
|
||
**APK**: [https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk](https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk)
|
||
|
||
## Solution 1
|
||
|
||
Based in [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)
|
||
|
||
**Hook the \_exit()**\_ function and **decrypt function** so it print the flag in frida console when you press verify:
|
||
|
||
```javascript
|
||
Java.perform(function () {
|
||
send("Starting hooks OWASP uncrackable1...");
|
||
|
||
function getString(data){
|
||
var ret = "";
|
||
for (var i=0; i < data.length; i++){
|
||
ret += "#" + data[i].toString();
|
||
}
|
||
return ret
|
||
}
|
||
|
||
var aes_decrypt = Java.use("sg.vantagepoint.a.a");
|
||
aes_decrypt.a.overload("[B","[B").implementation = function(var_0,var_1) {
|
||
send("sg.vantagepoint.a.a.a([B[B)[B doFinal(enc) // AES/ECB/PKCS7Padding");
|
||
send("Key : " + getString(var_0));
|
||
send("Encrypted : " + getString(var_1));
|
||
var ret = this.a.overload("[B","[B").call(this,var_0,var_1);
|
||
send("Decrypted : " + getString(ret));
|
||
|
||
var flag = "";
|
||
for (var i=0; i < ret.length; i++){
|
||
flag += String.fromCharCode(ret[i]);
|
||
}
|
||
send("Decrypted flag: " + flag);
|
||
return ret; //[B
|
||
};
|
||
|
||
var sysexit = Java.use("java.lang.System");
|
||
sysexit.exit.overload("int").implementation = function(var_0) {
|
||
send("java.lang.System.exit(I)V // We avoid exiting the application :)");
|
||
};
|
||
|
||
send("Hooks installed.");
|
||
});
|
||
```
|
||
|
||
## Solution 2
|
||
|
||
Based in [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)
|
||
|
||
**Hook rootchecks** and decrypt function so it print the flag in frida console when you press verify:
|
||
|
||
```javascript
|
||
Java.perform(function () {
|
||
send("Starting hooks OWASP uncrackable1...");
|
||
|
||
function getString(data){
|
||
var ret = "";
|
||
for (var i=0; i < data.length; i++){
|
||
ret += "#" + data[i].toString();
|
||
}
|
||
return ret
|
||
}
|
||
|
||
var aes_decrypt = Java.use("sg.vantagepoint.a.a");
|
||
aes_decrypt.a.overload("[B","[B").implementation = function(var_0,var_1) {
|
||
send("sg.vantagepoint.a.a.a([B[B)[B doFinal(enc) // AES/ECB/PKCS7Padding");
|
||
send("Key : " + getString(var_0));
|
||
send("Encrypted : " + getString(var_1));
|
||
var ret = this.a.overload("[B","[B").call(this,var_0,var_1);
|
||
send("Decrypted : " + getString(ret));
|
||
|
||
var flag = "";
|
||
for (var i=0; i < ret.length; i++){
|
||
flag += String.fromCharCode(ret[i]);
|
||
}
|
||
send("Decrypted flag: " + flag);
|
||
return ret; //[B
|
||
};
|
||
|
||
var rootcheck1 = Java.use("sg.vantagepoint.a.c");
|
||
rootcheck1.a.overload().implementation = function() {
|
||
send("sg.vantagepoint.a.c.a()Z Root check 1 HIT! su.exists()");
|
||
return false;
|
||
};
|
||
|
||
var rootcheck2 = Java.use("sg.vantagepoint.a.c");
|
||
rootcheck2.b.overload().implementation = function() {
|
||
send("sg.vantagepoint.a.c.b()Z Root check 2 HIT! test-keys");
|
||
return false;
|
||
};
|
||
|
||
var rootcheck3 = Java.use("sg.vantagepoint.a.c");
|
||
rootcheck3.c.overload().implementation = function() {
|
||
send("sg.vantagepoint.a.c.c()Z Root check 3 HIT! Root packages");
|
||
return false;
|
||
};
|
||
|
||
var debugcheck = Java.use("sg.vantagepoint.a.b");
|
||
debugcheck.a.overload("android.content.Context").implementation = function(var_0) {
|
||
send("sg.vantagepoint.a.b.a(Landroid/content/Context;)Z Debug check HIT! ");
|
||
return false;
|
||
};
|
||
|
||
send("Hooks installed.");
|
||
});
|
||
```
|
||
|
||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FwdlXOpyZOVGNzyhOiiFK%2Fimage%20(1).png?alt=media&token=13f4d279-7d3f-47ce-a68e-35f9a906973f" alt=""><figcaption></figcaption></figure>
|
||
|
||
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
|
||
|
||
{% embed url="https://www.stmcyber.com/careers" %}
|
||
|
||
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
* Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||
* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Share your hacking tricks by submitting PRs to the** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **and** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||
|
||
</details>
|