Anda di halaman 1dari 12

LAPORAN PRAKTIKUM KEAMANAN INFORMASI 2

PERTEMUAN 7
“PENETRATION TESTING APLIKASI ANDROID”

Nama : Muhammad Hamdan


NIM : 20/457216/SV/17663
Tanggal : 27 September 2022
Dosen Pengampu : Anni Karimatul Fauziyyah, S.Kom.,
M.Eng.
Asisten Praktikum : Anisa Nurul Rahmadani
Fitri Handayani

PROGRAM SARJANA TERAPAN (DIV) TEKNOLOGI REKAYASA INTERNET


DEPARTEMEN TEKNIK ELEKTRO DAN INFORMATIKA
SEKOLAH VOKASI
UNIVERSITAS GADJAH MADA YOGYAKARTA
2022
PERTEMUAN 6
“PENETRATION TESTING APLIKASI ANDROID”

A. Dasar Teori
Reverse Engineering untuk menganalisa aplikasi android kita perlu mengetahui cara
kerja dari aplikasi tersebut, struktur di dalamnya, serta metode dan algoritma apa yang
digunakan. Solusi untuk hal ini adalah dengan melakukan reverse engineering terhadap
aplikasi. Melalui proses reverse engineering, pengembang dapat mengetahui source code
dari sebuah binary file (executable) pada sebuah aplikasi. Proses kompilasi dari sebuah
source code menjadi executable file disebut sebagai proses forward engineering, sedangkan
reverse engineering merupakan proses mengembalikan sebuah executable file menjadi
sebuah source code. Source code yang didapatkan dari proses reverse engineering ini bisa
menjadi modal untuk analisa kerentanan. Struktur File Android Pada dasarnya aplikasi
android adalah file zip, merupakan kumpulan beberapa file yang di jadikan zip

- Android manifest : sebagai kerangka semua komponen / source yang di butuhkan oleh
android untuk akses semua cara kerja aplikasi . Untuk mengontrol keseluruhan akses aplikasi

- Dalvik bytecode(classes.dex): Semua source code pada aplikasi android yang dibuat akan di
simpan pada file classes.dex
- Native libraries : aplikasi android jika akan melakukan resource intensive yang memakan
memory akan mengakses layer bawahnya

App android dibuat


Aplikasi android dapat dibuat dengan 2 bahasa pemrogrman Java dan Kotlin (Bahasa
baru yang dibuat google). Interoperability java dan kotlin sinkron sehingga ketika akan
migrasi akan selaras. Source code dari Bahasa pemrograman ini masing- masing akan di
compiler dengan Java compiler berupa Java compiler dan Kotling dengan kotlin. Setelah
decompile akan menjadi file java bytecode. Aplikasi android perlu di convert ke Dalvik byte
code karena saat android menjalankan aplikasinya akan tidak menggunakan resources yang
berat. karena perangkat bergerak resource terbatas. File Dalvik byte-code akan di jalankan
di dalvik Virtual Machine.

Pada aplikasi android ada berbagai tools yang dapat di gunakan untuk melakukan reverse
engineering pada aplikasi android. Salah satunya JADX, APKTool, dex2jar,
Storyteller/enjarify. Sedangkan media atau tools yang dapat di gunakan untuk menjalankan
aplikasi android emulator Android Studio, Genymotion, bluemix. Bisa langsung
menjalankan aplikasi di perangkat.

B. Tujuan
Tujuan dari praktikum adalah:
1. Mahasiswa dapat memahami tentang Reverse Engineering App Android
2. Mahasiswa dapat melakukan Eksploitasi Komponen App Android
3. Mahasiswa dapat menganalisis lalulintas App Android
4. Mahasiswa dapat melakukan praktikum Vulnerability Aplikasi Android
C. Alat dan Bahan
1.Komputer
2.Sambungan Internet
3.Genymotion
4.Virtual Box

D. Langkah Praktikum
1. Lakukan instalasi software apktool. Tool ini digunakan untuk mengubah kode
menjadi bytecode smali, Install menggunakan link
https://ibotpeaches.github.io/Apktool/install/

2. Copy paste kode file wrapper pada text editor Kali Linux, kemudian berikan nama
apktool pada file tersebut.

3. Pindahkan file apktool.jar dan apktool ke file /usr/local/bin. Kemudian buat kedua
file tersebut agar dapat di eksekusi menggunakan perintah chmod +x.
4. Jika berhasil aplikasi apktool dapat digunakan pada kali linux.Kemudian, buka
aplikasi apktool tersebut.

- Tampilan apktool
5. Ubah apk menjadi kode assembler smali menggunakan perintah apktool -d
Uncrackable-Level1.apk -o level1.smali.

6. Hasil konversi yang telah diproses software apktool di simpan di direktori


level1_smali

7. Lakukan pencarian file MainActivity.smali dengan menelusuri kedalam file smali


yang telah didapatkan.

8. Setelah menemukan file MainActivity.smali, buka file tersebut menggunakan fungsi


nano.
9. Lakukan pencarian method onCreate pada file smali.

10. Ubah kode untuk melewati pengecekan deteksi root:


- Conditional kode ‘nez’ yang berarti not equal zero akan kita ubah nilai
kondisionalnya menjadi terbalik yaitu ‘eqz’ yang berarti equal zero. Hal ini untuk
mengubah logika alur program saat pengecekan status root
- Ubah nez menjadi eqz dan sebaliknya eqz menjadi nez pada kode di dalam 3
pengecekan if method onCreate.

11. Simpan perubahan, lalu keluar dari folder. Selanjutnya repackage kode smali
12. Sebelum menginstal aplikasi tersebut, harus di sign certificate pada apk yang baru
dengan tool dex2jar.

13. Berikan sign pada apk baru, menggunakan fungsi d2j-apk-sign level1_new.apk

14. Buka aplikasi genymotion, kemudian pilih perangkat yang ingin dilakukan percobaan
menginstal aplikasi. Selanjutnya, Install file apk baru yang telah di sign ke perangkat
genymotion
15. Jalankan aplikasi Uncrackable yang baru pada emulator, Uji coba apakah sudah
berhasil bypass deteksi root

16. Masukkan key sandi yang telah di dekripsi pada praktikum sebelumnya, Masukkan
password “I wanna believe” pada kolom secret string. Jika berhasil akan menampilkan
pop up yang mengatakan kalau secret key tersebut sudah benar.
E. Pembahasan
Pada praktikum dapat melakukan Penetration testing aplikasi android dengan Reverse
Engineering menggunakan metode BlackBox. Penetration test adalah suatu proses
mensimulasikan sebuah serangan yang dilakukan karena adanya kerentanan dan
menganalisis kerentanan tersebut. Penetration testing aplikasi android memproyeksikan
kemampuan teknis dan keahlian untuk menguji atau mengevaluasi keamanan sistem atau
aplikasi berbasis android dengan berusaha mengambil alih sistem tersebut dengan
menggunakan teknik atau tool yang sama dengan digunakan oleh penyerang.

Pada praktikum menggunakan teknik reverse engineering. Reverse engineering


merupakan proses mengembalikan sebuah executable file menjadi sebuah source code.
Source code yang didapatkan dari proses reverse engineering ini bisa menjadi modal untuk
analisa kerentanan. Pada praktikum menggunakan metode Black Box. Pada metode black
box, tester tidak dibekali informasi apapun tentang sistem yang akan diuji, baik infrastruktur
atau pun source code yang digunakan. Tester diposisikan layaknya hacker yang harus
mengeksploitasi sistem untuk mencari celah keamanan yang bisa diretas.

Pada praktikum ini melanjutkan praktikum pentest minggu kemarin. Pada praktikum ini
melakukan Langkah-langkah pentest mulai dari melakukan bypass akses root menggunakan
apktool pada aplikasi Uncrackable. Apk Tool adalah aplikasi tool untuk mengedit suatu isi
dari aplikasi tersebut dengan cara di decompile dan recompile. Langkah pertama yaitu
melakukan decompile aplikasi Uncrackable menjadi file smali. Smali adalah file bahasa
perakitan android smali, bahasa rakitan yang digunakan oleh Android Dalvik Virtual
Machine biasanya dibuat dengan mendekompilasi file. Setelah mendapatkan file dalam
bentuk smali, Selanjutnya mencari file MainActivity, Karena merupakan file yang pertama
kali dijalankan ketika aplikasi dijalankan.

Pada kode didalam file MainActivity lakukan pencarian pada fungsi yang berfungsi untuk
mendeteksi akses root pada aplikasi, sehingga akan terlihat pada fungsi onCreate
merupakan fungsi untuk mengatur akses tersebut. Ubah kode pada fungsi onCreate untuk
melewati pengecekan deteksi root, kode ‘nez’ yang terdapat pada fungsi onCreate yang
berarti not equal zero akan kita ubah nilai kondisionalnya menjadi terbalik yaitu ‘eqz’ yang
berarti equal zero. Hal ini untuk mengubah logika alur program saat pengecekan status root.
Pada fungsi onCreate ubah nez menjadi eqz dan sebaliknya eqz menjadi nez pada kode di
dalam 3 pengecekan if method onCreate.
Simpan file MainActivity setelah melakukan perubahan pada fungsi onCreate. Kemudian
lakukan decompile file dari smali menjadi file apk. Android mengharuskan semua APK
ditandatangani secara digital dengan sertifikat sebelum diinstal di perangkat atau diupdate.
Untuk memberikan tanda tangan secara digital ke aplikasi android dapat menggunakan
aplikasi dex2jar. Ketika aplikasi telah diberikan sign dari aplikasi dex2jar, aplikasi tersebut
dapat dijalankan di environment android. Lakukan instalasi pada virtual perangkat di
genymotion, Kemudian buka aplikasi tersebut. Jika berhasil melakukan bypass maka pop up
peringatan deteksi root tidak akan muncul. Pada halaman aplikasi android akan muncul
tampilan untuk menginputkan password dari file kunci yang sudah di decrypt sebelumnya.

F. Kesimpulan
1) Penetration test adalah suatu proses mensimulasikan sebuah serangan yang dilakukan
karena adanya kerentanan dan menganalisis kerentanan tersebut.
2) Reverse engineering merupakan proses mengembalikan sebuah executable file
menjadi sebuah source code.
3) Apk Tool adalah aplikasi tool untuk mengedit suatu isi dari aplikasi tersebut dengan
cara di decompile dan recompile.
4) Smali adalah file bahasa perakitan android smali, bahasa rakitan yang digunakan oleh
Android Dalvik Virtual Machine biasanya dibuat dengan mendekompilasi file.
5) Android mengharuskan semua APK ditandatangani secara digital dengan sertifikat
sebelum diinstal di perangkat atau diupdate. Untuk memberikan tanda tangan secara
digital ke aplikasi android dapat menggunakan aplikasi dex2jar.
DAFTAR PUSTAKA

Baehaqi, M. N. (2019). Tutorial Crack/Hack/Decompile/Reverse Aplikasi Android (Lengkap dengan


Gambar). Retrieved from https://moxspoy.medium.com/tutorial-crack-hack-decompile-
reverse-aplikasi-android-lengkap-dengan-gamba-d82066bc7750

Faried, H. (2021). Android Penetration Testing. Diambil kembali dari Cyber Academy:
https://www.cyberacademy.id/liveclass/android-penetration-testing/batch-1

Jateng Prov. (2021). Jenis – Jenis Penetration Testing. Retrieved 2022, from
https://csirt.jatengprov.go.id/jenis-jenis-penetration-
testing/#:~:text=Metode%20BlackBox,celah%20keamanan%20yang%20bisa%20diretas.

Pratama, R. (2020, Juli 19). Pengantar Penetration Testing pada Aplikasi Mobile (Android). Diambil
kembali dari Medium: https://medium.com/@rickyaji.pratama/pengantar-penetration-testing-
pada-aplikasi-mobile-android-2bcd0f310096

Anda mungkin juga menyukai