hacktricks/mobile-pentesting/android-app-pentesting/exploiting-a-debuggeable-applciation.md
2024-02-11 02:13:58 +00:00

5.5 KiB
Raw Blame History

Kudukua programu inayoweza kudebugiwa

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Kudukua ukaguzi wa root na uwezo wa kudebugiwa

Sehemu hii ya chapisho ni muhtasari kutoka chapisho https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0

Hatua za Kufanya Programu ya Android Iweze Kudebugiwa na Kudukua Ukaguzi

Kufanya Programu Iweze Kudebugiwa

Yaliyomo yamechukuliwa kutoka https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0

  1. Kudondoa APK:
  • Tumia zana ya APK-GUI kudondoa APK.
  • Katika faili ya android-manifest, ingiza android:debuggable=true kuwezesha hali ya kudebugiwa.
  • Dondoa tena, saini, na zipalign programu iliyobadilishwa.
  1. Sakinisha Programu Iliyobadilishwa:
  • Tumia amri: adb install <jina_la_programu>.
  1. Pata Jina la Pakiti:
  • Tekeleza adb shell pm list packages 3 kuorodhesha programu za watu wengine na kupata jina la pakiti.
  1. Weka Programu Iwe Ngoja Uunganisho wa Kudebugiwa:
  • Amri: adb shell am setup-debug-app w <jina_la_pakiti>.
  • Kumbuka: Amri hii lazima itekelezwe kila wakati kabla ya kuanza programu ili kuhakikisha inangoja kudebugiwa.
  • Kwa uthabiti, tumia adb shell am setup-debug-app w -persistent <jina_la_pakiti>.
  • Ili kuondoa alama zote, tumia adb shell am clear-debug-app <jina_la_pakiti>.
  1. Jitayarisha kwa Kudebugiwa kwenye Android Studio:
  • Nenda kwenye Android Studio kwa kubonyeza File -> Open Profile or APK.
  • Fungua APK iliyobadilishwa.
  1. Weka Alama za Kusimamisha katika Faili za Java muhimu:
  • Weka alama za kusimamisha katika MainActivity.java (hasa katika njia ya onCreate), b.java, na ContextWrapper.java.

Kudukua Ukaguzi

Programu, katika maeneo fulani, itathibitisha ikiwa inaweza kudebugiwa na pia itafanya ukaguzi wa faili za binary zinazoonyesha kifaa kilichorootiwa. Kudebugiwa kunaweza kutumika kubadilisha habari za programu, kufuta biti ya kudebugiwa, na kubadilisha majina ya faili za binary zinazotafutwa ili kudukua ukaguzi huu.

Kwa ukaguzi wa kudebugiwa:

  1. Badilisha Mipangilio ya Alama:
  • Katika sehemu ya mchanganyiko wa konsoli ya kudebugi, nenda kwenye: this mLoadedAPK -> mApplicationInfo -> flags = 814267974.
  • Kumbuka: Uwakilishi wa binary wa flags = 814267974 ni 11000011100111011110, ikionyesha kuwa "Flag_debuggable" iko hai.

https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png

Hatua hizi zinahakikisha kuwa programu inaweza kudebugiwa na ukaguzi fulani wa usalama unaweza kudukuliwa kwa kutumia kudebugi, kurahisisha uchambuzi au ubadilishaji wa kina wa tabia ya programu.

Hatua ya 2 inahusisha kubadilisha thamani ya alama kuwa 814267972, ambayo inawakilishwa kwa binary kama 110000101101000000100010100.

Kudukua Udhaifu

Onyesho lilifanywa kwa kutumia programu yenye udhaifu ambayo ina kifungo na maandishi. Awali, programu inaonyesha "Crack Me". Lengo ni kubadilisha ujumbe kutoka "Try Again" hadi "Hacked" wakati wa muda wa uendeshaji, bila kubadilisha msimbo wa chanzo.

Kuangalia Udhaifu

  • Programu ilidondolewa kwa kutumia apktool ili kupata faili ya AndroidManifest.xml.
  • Kuwepo kwa android_debuggable="true" katika AndroidManifest.xml kunamaanisha programu inaweza kudebugiwa na inaweza kudukuliwa.
  • Ni muhimu kutambua kuwa apktool inatumika tu kuangalia hali ya kudebugiwa bila kubadilisha msimbo wowote.

Kujiandaa kwa Usanidi

  • Mchakato ulihusisha kuanzisha emulator, kusakinisha programu yenye udhaifu, na kutumia adb jdwp kutambua bandari za Dalvik VM zinazosikiliza.
  • JDWP (Java Debug Wire Protocol) inaruhusu kudebugiwa kwa programu inayotumika kwenye VM kwa kufunua bandari ya kipekee.
  • Uhamishaji wa bandari ulikuwa muhimu kwa kudebugiwa kwa mbali, ikifuatiwa na kuunganisha JDB kwenye programu lengwa.

Kuingiza Kanuni Wakati wa Muda wa Uendeshaji

  • Udanganyifu ulifanywa kwa kuweka alama za kusimamisha na kudhibiti mtiririko wa programu.
  • Amri kama classes na methods <jina_la_darasa> zilitumika kufunua muundo wa programu.
  • Alama ya kusimamisha ilowekwa kwenye njia ya onClick, na utekelezaji wake ulidhibitiwa.
  • Am