## JEPIN
(Jurnal Edukasi dan Penelitian Informatika)
ISSN(e): 2548-9364 / ISSN(p) : 2460-0741

## Exploitation with Reverse_tcp method on Android Device Using Metasploit
Rizky Dwiananda Lukita Putra #1 , Is Mardianto *2
Program Studi Teknik Informatika, Universitas Trisakti 1 rizky06401400006@std.trisakti.ac.id
2 mardianto@trisakti.ac.id
Universitas Trisakti
Jl. Letjen S. Parman No. 1, RT.6/RW.16, Tomang, Grogol Petamburan, Kota Jakarta Barat, Daerah Khusus Ibukota Jakarta, 11440.
Abstract —Android  is  a  popular  operating  system  on smartphone  which  run  on  linux  kernel.  Android  operating system  allows  developers  to  access  and  modify  source  code, but  this  advantage  also  increases  the  security  issue.  One  of the  various  attack  is  exploit,  that  many  attacker  carry  out this  type  of  attack  to  get  sensitive  user  information.  In  this research,  exploit  attacks  are  done  used  some  tool  such  as metasploit  framework  and  this  experiment  is  done  on android  device  which  one  be  a  target  attack.  The  result obtained  from  this  exploit  attack  in  the  form  of  an understanding of  how to conduct exploit attack, analyze the interaction  of  attacker  with  victim,  analyze  the  workings  of exploit  attack  and  how  long  will  it  take  to  set  up  a  payload with bash script shell. All the details of the analyze will give us the conclusions and strategies to make the android operating system more secure.
Kata kunci — Exploit, Android Device, Metasploit, Kali linux, Bash script shell

## I. P ENDAHULUAN
Teknologi selalu berkembang dan mengalami kemajuan  sangat  pesat  sesuai  dengan  perkembangan zaman dan perkembangan cara berfikir manusia itu sendiri, sebuah informasi yang serba digital membawa manusia ke dunia  yang  revolusioner  karena  dirasa  mudah,  murah  dan praktis  untuk  berkomunikasi  dan  memperoleh  informasi yang merupakan tujuan adanya perkembangan.
Perkembangan  ini  pula  mempunyai  dampak  negative berupa  pencurian  data  sensitif  para  pengguna  perangkat android . Android adalah  sistem  operasi  seluler  berbasis kernel  linux.  Kernel  linux  menyediakan  sifat multi-user dan control  disrectionary  access  control (DAC)  diatas semua  layer android . Android menggunakan  mekanisme sandboxing dan isolation tingkat kernel untuk memisahkan aplikasi  dari  satu  sama  lain,  dan  untuk  mengontrol komunikasi  antara  aplikasi  atau  akses  sumber  daya.  Ini berarti bahwa smartphone yang dipilih karena kemudahan dan  kesederhanaan  dalam  mengakses  aplikasi.  Dengan adanya sebuah perangkat smartphone, pertukaran
informasi  dapat  dikembangkan  lebih  pesat  dibandingkan dengan  teknologi  sebelumnya  dan  alat  ini  memiliki beberapa  fungsi  lain  yang  dapat  memberikan  hiburan  dan pengkasesan  informasi  melalui  akses  internet[16].  Oleh Karena itu android menjadi salah satu sistem operasi yang paling banyak digunakan, terdapat sejumlah besar aplikasi yang terinfeksi oleh malware seperti spyware,backdoords, Trojan hourse, dan lain-lain. Aplikasi backdoor memberikan  penyerang  ke  berbagai  izin  dari  perangkat yang terpasang[1].
Banyak  cara  seorang  penyerang  melakukan  serangan backdoors dengan  menyerang  keamanan  secara  spesifik salah satunya exploit dengan bantuan tool metasploit yang merupakan software security yang sering digunakan untuk menguji  ketahanan  pada  suatu  sistem  jenis  serangan  ini berjalan pada application layer [2].
Motivasi  dari  penelitian  ini  untuk  mengetahui karakteristik  exploit  dengan  menggunakan  metode serangan  reverse  tcp  pada  perangkat  berbasis  Android, dan  ingin  mengetahui  variabel  waktu  yang  dibutuhkan payload  untuk  masuk  kedalam  sistem  dari  target  yang diserang.
Permasalahan dalam menerapkan serangan exploit pada penelitian ini adalah menemukan kerentanan (vulnerability)  dari  bagian-bagian  (bug)  system  Android. Hal ini bisa dilakukan dengan cara mengekspoitasi fungsi yang  terdapat  baik  pada  bagian  servis/layanan  system Android atau pada bagian fisik penyimpanannya.
Kontribusi  yang  akan  dihasilkan  dari  penelitian  ini berupa pemahaman bagaimana metode reverse tcp bekerja dalam  serangan  exploit  sistem  Android  dan  bagaimana cara menghindarinya.

## II. S TUDI L ITERATUR
A. Bash script shell
Pada  percobaan  ini  penulis  menggunakan  bantuan script bash shell bernama ezsploit untuk  mengkonfigurasi payload[15],  dan  pada  bash  script  shell  ini  juga  penulis
melakukan  perhitungan  lamanya  waktu  yang  diperlukan untuk  melakukan  satu  kali  konfigurasi  payload.  Untuk dapat melakukan perhitungan waktu, penulis menambahkan beberapa fungsi date di bash script shell. Serangan  exploit  ini  berjalan  pada  sistem  operasi  kali linux  dan  dibagian  ini  penulis  memperkenalkan  dan menjelaskan  istilah-istilah  yang  dipakai  dalam  percobaan exploit , sebagai berikut.
B. Metasploit Framewok Metasploit  framework adalah  platform  pengujian  dan pengembangan penetrasi open source yang memberi akses ke kode exploit untuk berbagai aplikasi, sistem operasi dan platform. Ditulis dalam Bahasa scripting Ruby dengan sifat status Ruby sebagai  Bahasa  berorientasi  objek.  Selain  itu, metasploit dianggap multi-platform berjalan pada sebagian besar variasi unix dan windows [3].
Metasploit  framework menghasilkan  cara  kerja  yang luar biasa,  tetapi bagi pengguna baru  terbilang  sulit  untuk digunakan  karena metasploit di  linux  tidak  menyediakan graphic  user-interface (GUI).  Oleh  karena  itu  perlu mengetahui  sintaks  dan  perintah  untuk  menggunakan metasploit secara  efektif.  Dalam  metasploit,  untuk sebagian  besar  serangan  perlu  mengikuti  langkah-langkah dasar yang disebutkan dibawah ini[4] :
 Memilih dan mengkonfigurasi (kode yang memasuki sistem  target  dengan  mengambil  keuntungan  dari salah satu bug tersebut)
 Memilih  dan  mengkonfigurasi  payload  (kode  yang akan  dieksekusi  pada  sistem  target  jika  berhasil masuk)
 Memilih  teknik  pengkodean  sehingga  sistem  intrusi pencegahan mengabaikan payload
 Mengeksekusi exploit
Untuk  memilih exploit dan payload ,  beberapa informasi  tentang  sistem  target  diperlukan,  seperti  versi sistem operasi dan layanan jaringan terpasang.
C. Payload
Payload adalah  kode  yang  kita  inginkan  agar  sistem dieksekusi  dan  itu  harus  dipilih  dan  disampaikan  oleh framework sebagai  contoh, reverse  shell adalah  payload yang  membuat  koneksi  dari  mesin  target  kembali  ke penyerang  sebagai meterpreter  console ,  sedangkan bind shell adalah  payload  yang  mengikat meterpreter  console untuk  mendengarkan  pada  port  mesin  target  dimana penyerang dapat terhubung. Payload juga menjadi sesuatu dari  beberapa  perintah  yang  akan  dijalankan  pada  sistem operasi target [5]. Berikut tipe-tipe payload untuk android :
 Android/meterpreter/reverse_tcp.
 Android/meterpreter/reverse_http.
 Android/metepreter/reverse_https.
 Android/shell/reverse_tcp.
D. Meterpreter
Meterpreter memberikan  penyerang  akses  ke payload yang  terpasang  pada  perangkat  android  target,  dan penyerang  kemudian  dapat  mengeksekusi  perintah  untuk membaca,  memodifikasi,  mengambil  data  atau  informasi dari serangan exploit [6] .

## III. A NDROID DRM S ERVICE
Platform  android menyediakan DRM  framework yang  dapat  diperluas  yang  memungkinkan  aplikasi mengelola  konten  yang  dilindungi  hak  sesuai  dengan batasan  lisensi  yang  terkait  dengan  konten. DRM framework android  diimplementasikan  dalam  dua  lapisan arsitektur [12]:
 DRM  framework  API aplikasi  yang  melewati drm framework dan  berjalan  melalui  dalvik  VM  untuk aplikasi standar.
 DRM manager yang mengimplementasikan framework  DRM dan  memaparkan  antarmuka  untuk plug-in DRM untuk  menangani  manajemen  hak  dan dekripsi berbagai skema DRM.
Gambar .1 DRM  Framework[12]

## IV. A NDROID P LATFORM A RCHITECTURE
Platform  android  dibuat  oleh android  Inc yang kemudian  dibeli  oleh google dan  menyebutnya Android Open  source  Project .  Platform  android  didasarkan  pada kernel  linux,  yang  dimodifikasi  untuk  memenuhi kebutuhan  khusus  manajemen  daya  yang  lebih  baik. Karena  android  dirancang  untuk  digunakan  pada smartphone  dan  tablet,  android  memiliki  banyak perubahan  dan  pembaruan  pada  kernel  linux  untuk mendukung  perangkat  yang  berbeda.  Penambahan termasuk  subsistem  untuk  mengontrol  memori  dan prosesor,  perpustakaan  untuk  mengelola  sistem  file  yang dirancang  untuk  penyimpanan,  manajemen  proses  dan manajemen perangkat. Kumpulan perangkat lunak android dapat dibagi menjadi lima lapisan :
 Kernel linux dan perangkat tingkat yang lebih rendah
 System libraries
 Android runtime
 Application framework
 Application layer diatas semuanya
Setiap  lapisan  menyediakan  layanan  yang  berbeda  ke lapisan tepat di atasnya [7].
Gambar 2 . Arsitektur andaroid

## A. Linux Kernel
Kernel  linux  adalah  lapisan  dasar  yang  setara  dengan tingkat abstrak antara lapisan perangkat keras dan lapisan perangkat  lunak  lainya  dalam  sistem.  Kernel  berisi sejumlah besar driver perangkat yang membuat antarmuka ke perangkat keras sekelilingnya mudah dipahami [7].
B. Libraries
Di atas kernel linux ada seperangkat libraries C / C ++ asli  android.  Libraries  khusus  untuk  perangkat  keras tertentu.  Sebagai  contoh,  media  framework  library memandu  pemutaran  dan  perekaman  berbagai  gambar, video  dan  format  audio.  Beberapa  libraries  inti  lainya termasuk surface manager, SQLite, Webkit, dan OpenGL.

## C. Android Runtime
Android  runtime  termasuk  set  libraries  java  inti. Programmer  aplikasi  menggunakan  Bahasa  pemrograman java  untuk  mengembangkan  aplikasi.  Ini  termasuk  mesin virtual dalvik dan perpustakaan java core.
 Dalvik  virtual  machine :  virtual  machine  berjalan seolah-olah  itu  adalah  perangkat  independen  yang memiliki sistem operasinya sendiri. Ini memungkinkan  banyak  contoh  mesin  virtual  untuk dijalankan  secara  bersamaan  menyediakan  isolasi, keamanan,  manajemen  memori.  Setiap  aplikasi berjalan  sebagai  prosesnya  sendiri  didalam  mesin virtual  sehingga  tidak  ada  aplikasi  lain  yang
bergantung padanya dan jika terjadi crash aplikasi, itu tidak  akan  mempengaruhi  aplikasi  lain  yang  berjalan pada perangkat. Fitur-fitur ini disebut sandbox [7].
 Core  java  libraries  : sebagian  besar  fungsi  yang didefinisikan dalam libraries java SE, termasuk tugas- tugas  seperti  penanganan  string,  jaringan  dan manipulasi file disediakan oleh libraries ini.
D. Application Framework
Application  framework  mengelola  fungsi  smartphone seperti  manajemen  sumber  daya,  manajemen  panggilan suara.  Aplikasi  dari  lapisan  atas  berinteraksi  dengan lapisan application framework. Beberapa blok penting dari application  framework  adalah  aktivitas  manajer,  penyedia konten, manajer lokasi dan manajer sumber daya [7].
E. Applications
Application  adalah  lapisan  paling  atas  dari  arsitektur android.  Pengguna  rata-rata  kebanyakan  berinteraksi dengan  lapisan  ini  untuk  melakukan  fungsi  dasar  seperti membuat  panggilan  telepon,  mengakses  browser. Exploit sebagai terjadi pada layer application yang memungkinkan penyerang untuk mengeksekusi kode ddan menyediakan  akses  yang  tidak  diauntetikasi  ke  beberapa sumber yang dilindungi.

## V. P ROSES E XPLOIT
Pada percobaan exploit penulis menggunakan perangkat  android  untuk  dijadikan  target  percobaan dengan informasi sistem operasi android sebagai berikut :
 Android Versi 7.1.2 Nougat.
 Kernel versi 3.4.0
 Root status : no-root
Selain  android  yang  dijadikan  target,  penulis  juga menggunakan tool yang terpasang pada sistem operasi kali linux rolling versi 2018.2 yaitu Metasploit.
Langkah-langkah  untuk  melakukan  percobaan exploit yaitu  konfigurasi,  konfigurasi  listener  dan menjalankan exploit.

## A. Konfigurasi Payload
Ditahap  konfigurasi  payload,  penulis  menggunakan bash  shell  script  bernama ezsploit yang  dijadikan  cara untuk membuat sebuah payload. berikut adalah representasi  perintah  yang  ada  pada  tahap  konfigurasi sebuah  payload.  perintah  yang  dituliskan  pada  terminal berupa  shell  script.  Shell  script  menyederhanakan  proses pembuatan payload ke file apk android [1]. Kode ini juga mendefinisikan  tipe  payload  yang  dimiliki  oleh  aplikasi backdoor. Penyerang dapat melakukan seranganya dengan membuat  payload  (.apk)  mengetik  alamat  IP  penyerang sebagai  LHOST  dan  nomor  port  penyerang  sebagai LPORT ke dalam perintah msfvenom –p android/meterpreter/reverse_tcp LHOST=(alamat IP
penyerang)  LPORT=(nomor  port  penyerang)  R  > /root/shell.APK [9].  Pada  percobaan  ini  penulis menggunakan  metode reverse_tcp dimana  metode  ini adalah  jenis  shell  reverse  meterpreter, reverse  shell  dapat melewati  firewall,  karena  korban  yang  akan  membuat sambungan kembali ke penyerang, sehingga pada metode listener  pada  mesin  penyerang  akan  menuggu  koneksi masuk,  berikut  skema  perbedaan  meotde  reverse_tcp dengan bind_tcp :

## Gambar. 3 Skema reverse_TCP[13]
Berikut  adalah  gambar  4  shell.apk  yang  telah  dibuat dengan  mengeksekusi  perintah  pada  gambar  3  dengan melalui proses yang terjadi dibelakang layar. Dimana file ini  yang  akan  dikirim  ke  perangkat  android  target  untuk dipasang.
Gambar. 4 Payload bernama Shell.Apk
Setelah proses konfigurasi payload berhasil, selanjutnya  adalah  melakukan  instalasi  payload  pada perangkat android yang dijadikan target, tahap ini penulis melakukan  instalasi  payload  di  android  yang  sebelumnya telah  dijelaskan  mengenai  informasi  android  tersebut, setelah  proses  instalasi  selesai  tahap  berikutnya  adalah konfigurasi  listener  agar  tercipta  meterpreter  sessions. Berikut langkah konfigurasi listener [8]:
 Buka Konsol metasploit dengan eksekusi perintah msfconsole.
 Setelah  menu  msfconsole  terbuka,  eksekusi perintah use  multi/handler yang  berfungsi penyerang  dapat  menentukan  jenis  payload  dan mengatur LHOST serta LPORT untuk  membuat listener.
 set  payload  android/meterpreter/reverse_tcp perintah ini berfungsi mengatur jenis payload.
 set  LHOS  < alamat  IP  penyerang>  perintah  ini berfungsi  mengatur  alamat  IP  yang  akan digunakan sebagai host.
 set LPORT < nomor Port penyerang> perintah ini berfungsi  mengatur  nomor  Port  yang  digunakan sebagai jalur masuk koneksi.
 exploit perintah  ini  memulai  eksploitasi  dengan membuat  koneksi  antara  android  target  dan penyerang pada mesin listener.
Berikut  adalah  tampilan  konfigurasi  listener  yang penulis  telah  lakukan  dengan  mengeksekusi  setiap perintah sebelumnya.
Gambar. 5 Konfigurasi listener
Pada Gambar 5 ditahap ini penyerang akan menunggu koneksi  masuk  ke  listener,  apabila  payload  yang  telah terpasang  pada  android  dibuka  oleh  korban  itu menciptakan  meterpreter  sessions  yang  memungkinkan penyerang menjalankan kode eksploitasi. Dalam percobaannya  untuk  menguji  apakah  serangan exploit telah  berhasil  dan  dapat  berjalan,  penulis  mengeksekusi beberapa  perintah  untuk  melakukan  ujicoba  keberhasilan serangan, berikut perintah yang penulis eksekusi pada saat meterpreter sessions tercipta :
 sysinfo perintah  ini  berfungsi  untuk  mengetahui informasi sistem android target. Hasilnya :

## Gambar.6 Hasil eksekusi perintah sysinfo
Hasil  dari  perintah  sysinfo  adalah  sebuah  android dengan  informasi  versi  OS Android  7.1.2  Linux  3.4.0 dimana diketahui informasi android yang dijadikan target mempunyai informasi sama, yang dapat dipastikan bahwa serangan  exploit  sudah  berhasil  dijalankan.  Untuk mengetahui  perintah-perintah  yang  ada  pada  metasploit kita  dapat  mengeksekusi  perintah help di  konsol meterpreter  dengan  begitu  akan  muncul  kumpulan perintah  yang  mempunyai  fungsi  berbeda  untuk melakukan eksploitasi lanjut ke perangkat android.

## VI. PERHITUNGAN WAKTU
Setelah  penulis  menambahkan  fungsi  pada  bash  script, penulis  selanjutnya  melakukan  percobaan  perhitungan waktu  pada  setiap  ujicoba  konfigurasi  payload  exploit disatu  jaringan  dan  exploit  dibeda  jaringan,  penulis  juga akan  menjelaskan  bagaimana  cara  mendapatkan  lamanya waktu yang dibutuhkan.
Setelah  melakukan  percobaan  perhitungan  waktu  pada konfigurasi  payload,  dapat  disimpulkan  konfigurasi
payload dengan menggunakan alamat IP lokal memerlukan waktu mulai hingga akhir rata-rata  27.29204 milliseconds dalam  seratus  kali  percobaan  perhitungan waktu  lamanya  sebuah  payload  selesai  dikonfigurasi. Angkat  tersebut  didapatkan  dari  perhitungan  rumus (${akhir} - ${mulai}) dimana variable akhir adalah waktu dimana  script  ini  selesai  menjalankan  setiap  konfigurasi payload  dalam  satuan  waktu milliseconds sedangkan variable  mulai  adalah  waktu  dimana  script  ini  berjalan mengeksekusi  baris  pertama  perintah  pada  script  dalam satuan  waktu milliseconds sehingga  dari  perhitungan  ini diketahui hasil waktu lama konfigurasi payload.
Gambar.7 Perhitungan waktu konfigurasi payload

## VII. ANALISA
Payload adalah  sebuah  muatan  sederhana  yang tersusun  sepadat  mungkin  dan  melakukan  tugas menyediakan sarana untuk penyerang menggugah sesuatu yang lebih besar. Payload sering digunakan pada skenario eksploitasi karena serangan jenis exploit dapat menghasilkan ruang untuk shellcode dapat tersimpan.
Baris  pertama  perintah shellcode (sering  disebut sebagai stage0) yang  dapat  membuat  koneksi  baru kembali  ke  mesin  penyerang  dan  membaca  sebuah payload yang  lebih besar kedalam  memori. Dalam istilah metasploit,  payload  ini  disebut reverse_tcp dan  tahap kedua  (stage1)  merupakan  perintah shell standar  seperti shell meterpreter.
PENYERANG ( MSF ) MULTI/HANDLER KORBAN (DRM) 53554

## Gambar.8 Representasi mesin penyerang dan target
Saat kita menjalankan perintah set payload android/meterpreter/….. perintah  ini  berjalan  dengan fungsi  meminta  metasploit  untuk  menyiapkan  payload yang  dipecah  menjadi  dua  tahap,  ditahap  pertama memberi  kita  sebuah meterpreter  sessions dan  tahap kedua  memberi  kita  alamat  memori  untuk  mengeksekusi
payload  selanjutnya.  Pada  gambar  8  adalah  sebuah representasi  dari  dua  mesin,  penyerang  dan  target.  Pada mesin  pertama  berjalan  sebuah  metasploit  dengan  modul multi/handler  yang  telah  dikonfigurasi  oleh stage0 diatur menggunakan reverse_tcp dengan  port  4646.  Dan  mesin kedua  yaitu  android  menjalankan  servis DRM ( digital right management) pada port 53554.
Ketika payload dieksekusi, metasploit membuat listener pada  port  yang  ditentukan,  kemudian  membuat  koneksi seperti ditunjukkan pada gambar 9 ke servis DRM (digital right  management) android.  Dibelakang  layar  ketika servis DRM  (digital  right  management) target  menerima sebuah  koneksi, sebuah fungsi pada metasploit dipanggil, dimana  fungsi  tersebut  berisikan stack  buffer yang  akan dikirim ke perangkat target.
PENYERANG ( MSF ) MULTI/HANDLER KORBAN (DRM) 53554 KONEKSI LISTENER - 4646 BUFFER RET
Gambar.9 Koneksi ke servis drm target
Mesin  penyerang  kemudian  mengirim  data  seperti ditunjukkan  pada  gambar  10  yang  lebih  besar  dari  yang diperkirakan target. Data ini berisikan stage0 dan exploit- specific  code, yang  nantinya  data  ini  akan  membuat memori  buffer  target  menjadi overflow. Fungsi  dari exploit-specific  code yang  dikirim  yaitu  memungkinkan penyerang  untuk  mendapatkan  kontrol  atas  binder[10]. Binder  adalah  mekanisme  komunikasi  antar  proses (  IPC inter-proces  communication) dimana  pada  IPC  terdapat bug  dalam  validasi  masukan  IPC  memungkinkan penyerang  mengeksekusi  kode  dengan  izin  lebih  tinggi dari aplikasi yang tidak berhak. Dan pada gambar 9 tahap ini  sebuah exploit-specific  code mengalihkan  proses eksekusi ke shellcode (stage0).
PENYERANG ( MSF ) MULTI/HANDLER KORBAN (DRM) 53554 KONEKSI LISTENER - 4646 BUFFER RET SHELLCODE Gambar.10 Penyerang mengirim data ke mesin target
PENYERANG ( MSF ) MULTI/HANDLER KORBAN (DRM) 53554 LISTENER - 4646 BUFFER RET SHELLCODE Gambar.11 Mesin target terhubung kembali ke penyerang
Pada  gambar  11,  ditahap  ini  penyerang  memiliki kontrol  eksekusi  dalam  layanan DRM, ketikan stage0 (reverse_tcp) tereksekusi, stage0 menghubungkan kembali  ke  mesin  penyerang  pada  port  yang  ditentukan, yang siap menunggu stage1. Dalam kasus ini meterpreter stage1 adalah  sebuah  file  apk  yang  disebut shell. Merupakan data yang dikirim pada tahap gambar 11.
Shell.apk kemudian  dikirim  ke  mesin  target  melalui koneksi reverse  ( terbalik).  Inilah  yang  terjadi  ketika  kita melihat  pesan  “ sending  stage  (70031  bytes)” pada msfconsole.
Gambar .12 Sending stage
Angka  70031 bytes yang  ditampilkan  pada  gambar.  12 mewakili  seluruh shell.apk setelah  data  ini  dikirim  ke perangkat  target, shellcode  (stage0) menulis  ke  dalam memori.
PENYERANG ( MSF ) MULTI/HANDLER KORBAN (DRM) 53554 LISTENER - 4646 BUFFER RET SHELLCODE SHELL
Gambar.13 Tampilan saat mesin target menjalankan shell.apk
Setelah stage1 berada didalam memori, stage0 melewati kontrol dengan melompat ke lokasi dimana payload ditulis. Dalam  kasus  ini shell.apk mempunyai  kumpulan shellcode yang terlihat mirip dengan header android yang valid,  dimana shell.apk tidak  akan  terdeteksi  sebagai apk yang  mencurigakan  oleh  sistem  android,  ketikan dijalankan shell.apk dipetakan  ulang  dan  memuat shell.apk ke  dalam  memori  sedemikian  rupa  sehingga memungkinkanya berfungsi dengan benar sebagai sebuah
file  apk  normal  tanpa  menuliskan  ke  disk  atau mendaftarkan  dengan  proses  host.  Pada  gambar  13  tahap ini  sebuah  meterprer  siap  menerima command  shell pada konsol metepreter.

## VIII. K ESIMPULAN
Pada  serangan  exploit  di  android,  terdapat  kesimpulan yang  bisa  diambil  setelah  melakukan  percobaan  tersebut, bahwa  karakteristik  serangan  exploit  memanfaatkan  dua bug yang terdapat pada sistem operasi android, yaitu pada penyimpanan memori fisik dan servis binder yang berjalan pada DRM (digital  right  management) memungkinkan aplikasi  mengelola  konten  yang  dilindungi  hak  sesuai dengan batasan lisensi yang terkait dengan konten.
Berikut ini temuan yang didapatkan dari teknik reverse tcp pada perangkat Android:
A. Bug pada memori android Buffer overflow adalah bug dalam program yang dapat menyebabkan kerentanan keamanan. Buffer adalah bagian dari  penyimpanan  memori  fisik  yang  sementara digunakan untuk menyimpan data. Buffer overflow terjadi ketika  sebuah  program  atau  proses  mencoba  untuk menulis  atau  membaca  lebih  banyak  dari buffer yang dapat disimpan.
Dalam  konteks  keamanan, buffer  overflow dapat memberikan akses penyerang ke berbagai bagian  memori internal dan pada akhirnya mengontrol pelaksaan aplikasi [11].  Hubungan  dalam  percobaan  ini  saat  mesin penyerang mengirim fungsi exploit-specific code ke stack buffer target,  yang  mempunyai  ukuran  lebih  besar  dari yang  disediakan  target,  sehingga  menyebabkan  terjadi buffer  overflow dan  fungsi exploit-specific  code mempunyai akses ke berbagai bagian memori internal dan akses mengontrol pelaksanaan program.
B. Bug Android Binder Model keamanan yang sangat umum digunakan dalam banyak  sistem  operasi  (termasuk  android)  berada dilingkup IPC ( inter-proces  communication ). Bug pada validasi masukan IPC memungkinkan penyerang mengeksekusi  kode  dengan  izin  lebih  tinggi  dari  aplikasi yang tidak berhak [10].
Dalam  android,  mekanisme  IPC  disebut  binder. Binder memiliki banyak fitur yang memungkinkan proses untuk mentransfer objek yang kompleks antara satu sama lain.  Dan  bug  pada  binder  ini  yang  dimanfaatkan  oleh serangan  exploit.  Untuk  mendapatkan  izin  akses  setiap servis yang ada pada android untuk dijalankan.
C. Reverse_tcp Serangan exploit pada  percobaan  ini  menggunakan metode reverse_tcp yaitu  metode penyerang  memberikan perintah kepada korban, untuk melakukan koneksi masuk ke mesin listener penyerang.
D. Port
Penggunaan port pada  serangan exploit berfungsi sebagai  jalur  komunikasi  masuk  dan  keluar  antara  mesin
penyerang  dengan  mesin  korban  saat  terjadinya  serangan exploit.

## E. Payload
Ketika Payload yang  terpasang  dibuka  oleh  korban, payload malakukan  koneksi  pada  mesin  listener  melalui port yang telah ditentukan.
D. Exploit Android Serangan exploit masih  dapat  berjalan  pada perangkat android 7.1.2 yaitu android Nougat.
Berikut  adalah  skema  serangan exploit berdasarkan kesimpulan dari percobaan yang sudah dilakukan penulis :
Gambar.14 Skema serangan exploit
Berikut  adalah  skema  serangan exploit dengan gambaran pada arsitektur android :
Gambar.15 Skema serangan exploit pada arsitektur android
Pada  saat  payload  terpasang  pada  perangkat  android dengan  nama mainactivity berada  pada  layer application , aplikasi MainActivity mendapat  verifikasi  dari  servis Dalvik/ART dengan memanfaatkan bug memori overflow . Setelah terverifikasi aplikasi MainActivity dapat memodifikasi  servis binder  (IPS) pada  android,  dimana MainActivity mendapatkan  akses permissions sebuah aplikasi.
R EFERENSI
[1] K .  Shivam,  S.  Rupal, Android  backdoors ,  vol.  4  no.  2,  hal  1-2, Feb.2017.
[2] R.  Chandel.  (2016). Penetration  testing  in  smb  protocol  using metasploit. [Online]. Available :
http://www.hackingarticles.in/penetration-testing-in-smb-protocol- using-metasploit.
[3] T. N. Manjunatha,M. S. Shashindhar,G. Vinay, S. Vittal,  “ Survery on metasploit framework, ” vol. 4, no. VIII, hal 1, Agustus.2016.
[4] R.  Choudhary,  M.  Khurana, “Exploitation  of  PDF  Reader Vulnerabilites using metasploit tool,” hal 2-4. Sept.2017.
[5] U. Timalsina, K. Gurung, “Metasploit framework with kali linux,” April 2015.
[6] A.  Gonsalves,  C.  Kulkarni,  Ketankokane,  P.  Mali,  M.  Mehra, “a tool for preventing the metasploit attack on the android OS,” vol. 5. ISSN 2249-5789, hal 326.
[7] H. Shewale, S. Patil, V. Deshmukh, P. Singh, “Analysis of android vulnerabilities and modern exploitation techniques,” vol. 05 no. 1, Maret 2014.
[8] Dana,  (2016),  October  10. Backdoor  Apk .  [Online].  Available  : https://github.com/dana-at-cp/backdoor-apk/.
[9] K.  A.  Zaabi, “android  device  hacking  tricks  and countermeasures”.
[10] Z. T. Brunner, “Buffer Overflow in multple android DRM service,”
,  [Online],  Available  :  https://blog.zimperium.com/cve-2017-
13253-buffer-overflow-multiple-android-drm-services/. [11] buffer overflow, [Online], Avaiable : https://www.enisa.europa.eu/topics/csirts-in- europe/glossary/buffer-overflow. [12] android.drm , [Online] , Available : https://developer.android.com/reference/android/drm/package- summary.
[13] R. Shenoy, “ Metasploit For beginners,” Jan, 2017.
[14] A.  Feizollah,  B.  N.  Anuar,  R.  Salleh, ”The  evolotuion  of  android malware  and  android  analysis  techniques,” Vol.  49,  No.  4,  Jan
2017.
[15] script ezsploit, [Online], Available : Juli)
https://github.com/rand0m1ze/ezsploit.
[16] I.  Mardianto,Kuswandi, “Implementasi  keamanan  pada  transaksi data menggunakan sertifikat Digital X.509.” Vol. VIII, No.1, Juni 2016.