tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Uchambuzi wa Programu ya React Native

Ili kuthibitisha kama programu imejengwa kwenye mfumo wa React Native, fuata hatua hizi:

  1. Badilisha jina la faili la APK kwa kiambishi cha zip na uondoe kwenye folda mpya kwa kutumia amri cp com.example.apk example-apk.zip na unzip -qq example-apk.zip -d ReactNative.

  2. Tembea kwenye folda mpya iliyoundwa ya ReactNative na pata folda ya mali. Ndani ya folda hii, unapaswa kupata faili index.android.bundle, ambayo ina JavaScript ya React katika muundo wa minified.

  3. Tumia amri find . -print | grep -i ".bundle$" kutafuta faili la JavaScript.

Kode ya Javascript

Ikiwa unakagua maudhui ya index.android.bundle unapata kode ya JavaScript ya programu (hata kama imepunguzika), unaweza kuichambua ili kupata taarifa nyeti na udhaifu.

Kwa kuwa bundle ina kweli kode yote ya JS ya programu, inawezekana kugawanya katika faili tofauti (inaweza kurahisisha uhandisi wa kinyume) kwa kutumia chombo react-native-decompiler.

Webpack

Ili kuchambua zaidi kode ya JavaScript, unaweza kupakia faili kwenye https://spaceraccoon.github.io/webpack-exploder/ au fuata hatua hizi:

  1. Unda faili inayoitwa index.html katika saraka hiyo hiyo yenye kode ifuatayo:
html
<script src="./index.android.bundle"></script>
  1. Fungua faili index.html katika Google Chrome.

  2. Fungua Developer Toolbar kwa kubonyeza Command+Option+J kwa OS X au Control+Shift+J kwa Windows.

  3. Bonyeza "Sources" katika Developer Toolbar. Unapaswa kuona faili la JavaScript ambalo limegawanywa katika folda na faili, likiunda bundle kuu.

Ikiwa utapata faili inayoitwa index.android.bundle.map, utaweza kuchambua msimbo wa chanzo katika muundo usio na minified. Faili za ramani zina ramani ya chanzo, ambayo inakuwezesha kuunganisha vitambulisho vilivyopunguzika.

Ili kutafuta akidi nyeti na mwisho, fuata hatua hizi:

  1. Tambua maneno nyeti ili kuchambua msimbo wa JavaScript. Programu za React Native mara nyingi hutumia huduma za watu wa tatu kama Firebase, AWS S3 service endpoints, funguo za kibinafsi, n.k.

  2. Katika kesi hii maalum, programu ilionekana ikitumia huduma ya Dialogflow. Tafuta muundo unaohusiana na usanidi wake.

  3. Ilikuwa na bahati kwamba akidi nyeti zilizowekwa kwa nguvu zilipatikana katika msimbo wa JavaScript wakati wa mchakato wa recon.

Badilisha msimbo wa JS na ujenge upya

Katika kesi hii kubadilisha msimbo ni rahisi. Unahitaji tu kubadilisha jina la programu ili kutumia kiambishi cha .zip na kukitoa. Kisha unaweza kubadilisha msimbo wa JS ndani ya bundle hii na kujenga upya programu. Hii inapaswa kuwa ya kutosha kukuwezesha kuingiza msimbo katika programu kwa madhumuni ya majaribio.

Hermes bytecode

Ikiwa bundle ina Hermes bytecode, hu wezi kufikia msimbo wa Javascript wa programu (hata si toleo lililopunguzika).

Unaweza kuangalia ikiwa bundle ina Hermes bytecode kwa kuendesha amri ifuatayo:

bash
file index.android.bundle
index.android.bundle: Hermes JavaScript bytecode, version 96

Hata hivyo, unaweza kutumia zana hbctool, hermes-dec au hermes_rs ili kufanya disassembly ya bytecode na pia kui-decompile hadi baadhi ya pseudo JS code. Kufanya hivyo, kwa mfano amri hizi:

bash
hbc-disassembler ./index.android.bundle /tmp/my_output_file.hasm
hbc-decompiler ./index.android.bundle /tmp/my_output_file.js

Badilisha msimbo na jenga upya

Kwa kawaida unapaswa kuwa na uwezo wa kubadilisha msimbo ulioondolewa (kubadilisha kulinganisha, au thamani au chochote unachohitaji kubadilisha) na kisha jenga upya bytecode na kisha jenga upya programu.

Zana hbctool inasaidia kuondoa muunganisho na kujenga tena baada ya mabadiliko kufanywa, hata hivyo inasaidia toleo za zamani tu za bytecode ya Hermes.

Zana hermes-dec haisaidii kujenga upya bytecode.

Zana hermes_rs inasaidia kujenga upya bytecode, lakini kwa kweli ni maktaba na si zana ya CLI.

Uchambuzi wa Dyanmic

Unaweza kujaribu kuchambua programu kwa njia ya dyanmic kwa kutumia Frida kuwezesha hali ya maendeleo ya programu ya React na kutumia react-native-debugger kuungana nayo. Hata hivyo, kwa hili unahitaji msimbo wa chanzo wa programu kwa wazi. Unaweza kupata maelezo zaidi kuhusu hili katika https://newsroom.bedefended.com/hooking-react-native-applications-with-frida/.

Marejeleo

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks