Beranda BlogPengikisan web Dapatkan kode sumber aplikasi seluler terenkripsi IBM MobileFirst

Dapatkan kode sumber aplikasi seluler terenkripsi IBM MobileFirst

oleh Kadek

Hai! Saya Roman, CTO di Techvice. Terkadang saya merekayasa balik aplikasi seluler untuk mengakses API dan mereproduksi kueri dalam kode Python atau NodeJS. Ini diperlukan untuk membuat pengikis data. Saya memperhatikan jejak penggunaan IBM MobileFirst di salah satu aplikasi yang baru saja di-crack.

IBM MobileFirst (atau IBM Mobile Foundation) adalah platform untuk mengembangkan, mengoptimalkan, mengintegrasikan, dan mengelola aplikasi seluler yang aman.

Penafian

  1. Saya tidak akan menyebutkan nama aplikasinya di sini.

  2. Dokumentasi situs IBM mencatat bahwa perlindungan ini tidak memberikan enkripsi yang tidak dapat dipecahkan, melainkan tingkat kebingungan dasar.

Analisis aplikasi

Pertama saya mencoba mencegat lalu lintas antara aplikasi seluler dan server menggunakan Mitmproxy. Namun, saya menerima pesan kesalahan karena aplikasi menggunakan pin SSL.

Untuk menonaktifkan penyematan SSL saya menggunakan utilitas Frida. Berikut adalah salah satu contoh skrip Frida untuk melewati pin SSL - https://codeshare.frida.re/@pcipolloni/universal-android-ssl-pinning-bypass-with-frida/.

Saya mencoba menggunakan skrip Frida yang kami buat untuk aplikasi yang kami selidiki sebelumnya, tetapi tidak ada yang berhasil. Aplikasi ini mungkin memiliki implementasi penyematan SSL khusus yang pendekatan saya sebelumnya tidak berfungsi.

Dekompilasi aplikasi

Untuk mendekompilasi aplikasi Android saya menggunakan JADX.

techvice@MacBook-Pro-techvice some_app % jadx -d ./source_code ./some_app.apk 
INFO  - loading ...
INFO  - processing ...
ERROR - finished with errors, count: 25

Saat mengeluarkan, JADX memberi kami dua direktori: Sumber Daya dan Sumber. Mari kita lihat sumbernya.

techvice@MacBook-Pro-techvice some_app % ls -la source_code/sources 
total 0
drwxr-xr-x  18 techvice  staff   576 Jun 27 15:18 .
drwxr-xr-x   5 techvice  staff   160 Jun 27 15:19 ..
drwxr-xr-x   3 techvice  staff    96 Jun 27 15:18 a
drwxr-xr-x   4 techvice  staff   128 Jun 27 15:18 android
drwxr-xr-x   5 techvice  staff   160 Jun 27 15:18 androidx
drwxr-xr-x   3 techvice  staff    96 Jun 27 15:18 b
drwxr-xr-x  33 techvice  staff  1056 Jun 27 15:18 c
drwxr-xr-x  19 techvice  staff   608 Jun 27 15:18 com
drwxr-xr-x   3 techvice  staff    96 Jun 27 15:18 cordova
drwxr-xr-x  23 techvice  staff   736 Jun 27 15:18 d
drwxr-xr-x   4 techvice  staff   128 Jun 27 15:18 de
drwxr-xr-x   3 techvice  staff    96 Jun 27 15:18 defpackage
drwxr-xr-x   3 techvice  staff    96 Jun 27 15:18 e
drwxr-xr-x   3 techvice  staff    96 Jun 27 15:18 im
drwxr-xr-x   3 techvice  staff    96 Jun 27 15:18 net
drwxr-xr-x   3 techvice  staff    96 Jun 27 15:18 nl
drwxr-xr-x   5 techvice  staff   160 Jun 27 15:18 org
drwxr-xr-x   3 techvice  staff    96 Jun 27 15:18 uk

Ada direktori Cordova di direktori sumber aplikasi yang didekompilasi. Ya, kami tahu apa yang sedang kami hadapi sekarang.

Aplikasi yang dibangun di Cordova adalah aplikasi web biasa yang berjalan di mesin Chromium. File JS, CSS dan HTML yang diperlukan untuk pekerjaan aplikasi terletak di “resources/assets/www` Direktori. Saya membuka direktori ini dan melihat...


arsip
arsip

Kejutan! Alih-alih file HTML, CSS, dan JS yang diharapkan, saya melihat arsip zip dipecah menjadi beberapa bagian.

Tentu saja saya mencoba membongkarnya, tetapi seperti yang diharapkan, saya mendapat pesan kesalahan yang mengatakan pengarsip tidak dapat melakukannya.

Dapatkan kode sumber

Pertama saya mencari kunci enkripsi dan mencoba mencari tahu cara kerja algoritma enkripsi/dekripsi. Beberapa jam kemudian aku sadar...


ide
ide

Sebelumnya saya katakan bahwa aplikasi Cordova adalah aplikasi web biasa yang berjalan di mesin Chromium. Namun Chromium tidak dapat mendekompresi dan mendekripsi arsip zip! Sebelum aplikasi dimulai, arsip ini harus dibongkar di suatu tempat.

Saya meluncurkan aplikasi di emulator Android. Menggunakan SSH saya terhubung ke shell emulator dan menjalankan beberapa perintah bash seperti find . -name index.html . Setelah beberapa menit saya berhasil menemukan lokasi di sistem file tempat arsip zip terenkripsi dibongkar.

Seperti inilah tampilan kode sumbernya.


file
file

Pikiran terakhir

Saya mengklik index.html yang dibuka di browser Chrome. Kemudian di tab Jaringan di Chrome Dev Tools (tekan F12 untuk membuka) saya menemukan semua permintaan yang dibuat aplikasi ke server.

Pos terkait

Tinggalkan Komentar