Frida Tutorial 1

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Bug bounty wenk: teken aan vir Intigriti, 'n premium bug bounty platform geskep deur hackers, vir hackers! Sluit by ons aan by https://go.intigriti.com/hacktricks vandag, en begin om belonings te verdien tot $100,000!

Dit is 'n opsomming van die pos: https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1 APK: https://github.com/t0thkr1s/frida-demo/releases Bronkode: https://github.com/t0thkr1s/frida-demo

Python

Frida laat jou toe om JavaScript-kode in te voeg binne funksies van 'n lopende aansoek. Maar jy kan python gebruik om die hake te roep en selfs om met die hake te interaksieer.

Hierdie is 'n maklike python-skrip wat jy kan gebruik met al die voorgestelde voorbeelde in hierdie handleiding:

#hooking.py
import frida, sys

with open(sys.argv[1], 'r') as f:
jscode = f.read()
process = frida.get_usb_device().attach('infosecadventures.fridademo')
script = process.create_script(jscode)
print('[ * ] Running Frida Demo application')
script.load()
sys.stdin.read()

Roep die skrip op:

python hooking.py <hookN.js>

Dit is nuttig om te weet hoe om Python saam met Frida te gebruik, maar vir hierdie voorbeelde kan jy ook direk Frida aanroep deur die opdraglyn frida-gereedskap te gebruik:

frida -U --no-pause -l hookN.js -f infosecadventures.fridademo

Haak 1 - Booleaanse Omgang

Hier kan jy sien hoe om 'n haak 'n booleaanse metode (checkPin) van die klas: infosecadventures.fridademo.utils.PinUtil

//hook1.js
Java.perform(function() {
console.log("[ * ] Starting implementation override...")
var MainActivity = Java.use("infosecadventures.fridademo.utils.PinUtil");
MainActivity.checkPin.implementation = function(pin){
console.log("[ + ] PIN check successfully bypassed!")
return true;
}
});
python hooking.py hook1.js

Kyk: Die funksie ontvang 'n String as parameter, is oorlading nie nodig nie?

Hook 2 - Funksie Bruteforce

Nie-Statiese Funksie

As jy 'n nie-statiese funksie van 'n klas wil aanroep, benodig jy eers 'n instansie van daardie klas. Daarna kan jy daardie instansie gebruik om die funksie aan te roep. Om dit te doen, kan jy 'n bestaande instansie vind en dit gebruik:

Java.perform(function() {
console.log("[ * ] Starting PIN Brute-force, please wait...");
Java.choose("infosecadventures.fridademo.utils.PinUtil", {
onMatch: function(instance) {
console.log("[ * ] Instance found in memory: " + instance);
for(var i = 1000; i < 9999; i++){
if(instance.checkPin(i + "") == true){
console.log("[ + ] Found correct PIN: " + i);
break;
}
}
},
onComplete: function() { }
});
});

Statische Funksie

Indien die funksie staties is, kan jy dit net oproep:

//hook2.js
Java.perform(function () {
console.log("[ * ] Starting PIN Brute-force, please wait...")
var PinUtil = Java.use("infosecadventures.fridademo.utils.PinUtil");

for(var i=1000; i < 9999; i++)
{
if(PinUtil.checkPin(i+"") == true){
console.log("[ + ] Found correct PIN: " + i);
}
}
});

Haak 3 - Ophaling van argumente en terugkeerwaarde

Jy kan 'n funksie haak en dit afdruk die waarde van die oorgevoerde argumente en die waarde van die terugkeerwaarde:

//hook3.js
Java.perform(function() {
console.log("[ * ] Starting implementation override...")

var EncryptionUtil = Java.use("infosecadventures.fridademo.utils.EncryptionUtil");
EncryptionUtil.encrypt.implementation = function(key, value){
console.log("Key: " + key);
console.log("Value: " + value);
var encrypted_ret = this.encrypt(key, value); //Call the original function
console.log("Encrypted value: " + encrypted_ret);
return encrypted_ret;
}
});

Belangrik

In hierdie handleiding het jy metodes gehook deur die naam van die metode en .implementering. Maar as daar meer as een metode met dieselfde naam is, sal jy die metode moet spesifiseer wat jy wil hook deur die tipe van die argumente aan te dui.

Jy kan dit sien in die volgende handleiding.

Bug bounty wenk: teken aan vir Intigriti, 'n premium bug bounty platform geskep deur hackers, vir hackers! Sluit by ons aan by https://go.intigriti.com/hacktricks vandag, en begin om belonings te verdien tot $100,000!

Leer AWS hakwerk van niks tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated