6.8 KiB
Mafunzo ya Frida 1
Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA USAJILI!
- Pata bidhaa rasmi za PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
![](/Mirrors/hacktricks/media/commit/57171763dfffa897ee6cc228a18ef08e38312eb9/.gitbook/assets/i3.png)
Mwongozo wa tuzo ya mdudu: jiandikishe kwa Intigriti, jukwaa la tuzo za mdudu za malipo lililoundwa na wadukuzi, kwa wadukuzi! Jiunge nasi kwenye https://go.intigriti.com/hacktricks leo, na anza kupata tuzo hadi $100,000!
{% embed url="https://go.intigriti.com/hacktricks" %}
Hii ni muhtasari wa chapisho: https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1
APK: https://github.com/t0thkr1s/frida-demo/releases
Msimbo wa Chanzo: https://github.com/t0thkr1s/frida-demo
Python
Frida inakuruhusu kuweka msimbo wa JavaScript ndani ya kazi za programu inayotumika. Lakini unaweza kutumia python kuita vifungo na hata kutumia na vifungo.
Hii ni hati rahisi ya python unayoweza kutumia na mifano yote iliyopendekezwa katika mafunzo haya:
#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()
Ita skripti:
python hooking.py <hookN.js>
Ni muhimu kujua jinsi ya kutumia python na frida, lakini kwa mifano hii unaweza pia kuita moja kwa moja Frida kwa kutumia zana za amri ya mstari wa frida:
frida -U --no-pause -l hookN.js -f infosecadventures.fridademo
Kitanzi 1 - Kupuuza Boolean
Hapa unaweza kuona jinsi ya kukitanza njia ya boolean (checkPin) kutoka darasani: 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
Kanzu 2 - Kazi ya Kufurahisha
Kazi Isiyo ya Stetiki
Ikiwa unataka kuita kazi isiyo ya stetiki ya darasa, kwanza unahitaji kipengele cha darasa hilo. Kisha, unaweza kutumia kipengele hicho kuita kazi.
Ili kufanya hivyo, unaweza kupata kipengele kilichopo na kutumia:
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() { }
});
});
Kazi ya Stesheni
Ikiwa kazi ni stesheni, unaweza tu kuipiga:
//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);
}
}
});
Kitanzi 3 - Kupata hoja na thamani ya kurudi
Unaweza kitanzi kazi na kufanya iwe chapisha thamani ya hoja zilizopitishwa na thamani ya thamani ya kurudi:
//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;
}
});
Muhimu
Katika mafunzo haya umefunga njia za kutumia jina la njia na .utekelezaji. Lakini ikiwa kulikuwa na zaidi ya njia moja yenye jina sawa, utahitaji kuainisha njia unayotaka kufunga ukiashiria aina ya hoja.
Unaweza kuona hilo katika mafunzo yajayo.
![](/Mirrors/hacktricks/media/commit/57171763dfffa897ee6cc228a18ef08e38312eb9/.gitbook/assets/i3.png)
Mwongozo wa tuzo ya mdudu: jiandikishe kwa Intigriti, jukwaa la tuzo la mdudu la malipo lililoanzishwa na wadukuzi, kwa wadukuzi! Jiunge nasi kwenye https://go.intigriti.com/hacktricks leo, na anza kupata tuzo hadi $100,000!
{% embed url="https://go.intigriti.com/hacktricks" %}
Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA KUJIUNGA!
- Pata bidhaa rasmi za PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud github repos.