Exploring Action Camera B-PRO AE

Last Update Article: 2023-12-27 05:14:44


Exploring Action Camera Bpro AE

Assalamualaikum halo, teman-teman semuanya pada artikel kali ini saya akan berbagi pengalaman yang sebenarnya bagi saya sediri tidak terlalu “wow” untuk diceritakan namun, saya menulis ini sebagai dokumentasi pribadi yang akan terus diperbarui, maksudnya adalah artikel ini akan menjadi perjalanan sangat panjang bagaimana saya melakukan “reverse engineering” pada sebuah “action camera”, mungkin teman-teman ada yang belum tergambar apa itu “action camera” mungkin saya bisa menyebut salah satu merk yang sangat terkenal yaitu, Gopro teman-teman jika belum tergambar bagaimana bentuknya berikut ini tautan yang bisa teman-teman lihat untuk demo-nya, Tapi milik saya bukanlah Gopro, merk ini ditahun saya beli kamera serupa sekitar 2016 sangat-sangat mewah, dan harga yang dimiliki oleh penulis sekitar 1 juta rupiah, pas. Singkat cerita kamera ini sudah tidak terpakai sejak sekitar tahun 2019-2023 karena total sejak era covidpun saya tidak ingat pernah punya kamera sejenis Gopro ini, berikut ini kamera yang dimiliki oleh penulis

Untitled

Pada tanggal 21 Mei 2023, setelah terbangun dan bermimpi sedang menggunakan kamera aksi ini di badan saya sambil mengendarai sepeda motor di area pegunungan, saya terbangun dan mencari keberadaan kamera ini dan untungnya ketemu di lemari yang sangat-sangat dalam, kondisi setelah berusaha dihidupkan adalah nihil, saya berinisiatif melakukan pengisian daya (yaiyalah kan 3 tahun gak dipakai) setelah menunggu sekitar 3 jam hasilnya tetaplah nihil, meskipun baterai daya menunjukan penuh dan indikator lampur memang menunjukan pengisian, pupuslah harapan, tentu tidak dong!, penulis berinisiatif untuk melepas komponen batrai pada kamera dan melakukan pengisian daya tanpa baterai sambil berharap bisa melakukan direct akses ke daya kamera, namun tetap gagal, lalu apa? penulis menggunakan debbuging klasik yaitu menjemur baterai berharap ada reaksi dari panas matahari terhadap baterai dan membuat baterai setidaknya terisi meskipun 1% agar seminimal mungkin si kamera bisa menyala, lalu hasilnya adalah! Yas, menyala!

Untitled

Seperti pada gambar terlihat, kamera menyala namun layar seperti “shadowing” berwarna putih, yang mana membuat performa dari kamera milik saya cukup menurun, dalam artian saya sangat kesusahan melihat apa menu yang tersedia dari si kamera, beberapa gambaran umum yang saya ingat dari penggunaan kamera ini tergambar pada diagram di bawah ini

Untitled

Pada kamera aksi yang saya miliki terdapat 2 cara penggunaan, cara pertama secara konvensional yaitu kamera digunakan seperti biasa, foto dan video dari hasil kamera disimpan di sdcard setelahnya baru dilakukan proses copy menggunakan cardreader pada komputer, cara kedua adalah dengan menggunakan aplikasi android yang mana aplikasi ini bekerja sebagai program Command and Control yang mana maksudnya adalah semua proses dapat dilakukan pada aplikasi android tersebut, mulai dari melakukan rekaman, melakukan pengambilan foto sampai proses unduh dan unggah dapat dilakukan di aplikasi android tersebut, meskipun file aslinya tetap ada di dalam sdcard, pada proses konvensional yang pertama saya kesulitan untuk mengambil isi dari sdcard yang terpasang pada kamera aksi (malas aja mindah2), saya lebih tertarik untuk meneliti lebih jauh apa-apa aja sih yang sedang dilakukan oleh aplikasi android untuk menjelankan Command and Control syarat untuk bisa menggunakan aplikasi android ini adalah, handphone harus masuk 1 jaringan wifi yang dikeluarkan oleh si kamera aksi, aplikasi android yang saya gunakan adalah aplikasi yang sama persis saya gunakan pada saat tahun 2016 ini

Untitled

Bisa dilihat pada gambar di atas pada platform playstore aplikasi untuk kamera aksi yang saya miliki terakhir diperbarui pada tanggal 17 Juni 2015, sekitar 8 tahun yang lalu dan sudah tidak diperbaraui (end of life), untuk dapat menggunakan aplikasi android, saya harus terkoneksi pada 1 jaringan wifi lalu SSID dan passwordnya ada pada kamera aksinya, untungnya saya masih dapat melihat password yang ada pada sistem kameranya

Untitled

Saya dapat terkoneksi pada wifi yang dipancarkan oleh kamera aksi, namun aplikasi androidnya tidak dapat terkoneksi pada kameranya meskipun sudah berada pada jaringan, asumsi dari saya dikarenakan permasalahan API Android yang terlalu tinggi saya menggunakan handphone pribadi yaitu Redmi 10C / Miui 13 dengan versi androdi 12.

Untitled

Pesan error yang muncul pada aplikasi adalah sebagai berikut ini, yang mana pesan tersebut jika diterjemahkan intinya adalah aplikasi tidak dapat berkomunikasi pada kamera aksi, hal yang bisa saya pastikan di sini adalah dengan melakukan debugging di level aplikasi android, pertama yang saya lakukan adalah memastikan bahwa saya dapat berkomunikasi menggunakan ping pada penyedia koneksi wifi yang mana pada hal ini adalah si kamera aksi, di bawah ini adalah gambar mapping koneksi yang ada pada android saya

Untitled

Untitled

Untuk melakukan ping, saya menggunakan aplikasi tmux yang dapat menjalankan perintah-perintah linux yang saya butuhkan, dan hasilnya? memang benar saya dapat terkoneksi dengan kamera aksi saya, tapi apa yang salah, ya? saya membaca sekilas kode hasil dekompilasi dan mencoba memahami apa yang saya dapat pahami di sini, contoh paling gampang di sini adalah pop-up muncul dari potongan kode di bawah ini

Untitled

Untitled

Potongan kode di atas memanggil string yang berada pada file xml aset sesuai dengan nama variable yang ada, dari potongan kode di atas tidak ada proses pemanggilan fungsi yang dapat dipahami secara mudah, hal yang saya lakukan (malas aja baca decompilenya) adalah mencoba memahami alur lintas data TCP/UDP yang dilakukan oleh aplikasi ke kamera aksi, saya menggunakan PCAPdroid (wireshark yang ada di android), seperti yang dapat di lihat pada tangkapan layar di bawah ini

IMG_20230522_205834_984.jpg

Aplikasi kamera berusaha melakukan komunikasi menuju ip gateway milik kamera aksi 192.168.1.1 dengan port 15740 dan kedua request TCP tersebut ternyata gagal, bisa dilihat seperti gambar di atas, detail request yang dikirim oleh aplikasi kamera tersebut juga terekam sebagai berikut ini

419CE7CE-5D5B-49FA-94A4-C3CBA06FCC64.jpeg

Pertukaran koneksi data TCP terlihat normal dan sepertinya berjalan dengan lancar, ada data yang terkirim lalu ada data juga yang diterima, namun pesan yang muncul pada PCAPdroid menunjukan bahwa ada “Kesalahan” yang terjadi pada komunikasi di atas, sehingga aplikasi kamera meresponnya dengan mengeluarkan dialog exit seperti gambar di atas, hal ini cukup membuat saya penasaran sebenarnya ada apa saja sih di host kamera ini, servicenya apa saja sampai apa hal-hal menarik yang ada di dalam aplikasi android ini, secara cepat saya mencari strings berupa host milik kamera yaitu “192.168.1.1” pada aplikasi android, dan wow saya mendapatkan hardcoded host,username & password pada aplikasi android, seperti pada tangkapan layar ini

Untitled

Dikarenakan saya juga malas (untuk saat ini) melakukan pemahaman terhadap kode tersebut, maka saya saat ini hanya ingin fokus pada service host yang ada pada kamera, pendekatan yang saya lakukan di sini adalah mengkonksikan ip kamera ke laptop saya, dengan cara yang sama dengan android yaitu terhubung dengan satu jaringan yang sama, hal ini tidak dapat saya lakuan bersama-sama dikarenakan terdapat hanya 1 slot client yang dapat terkoneksi pada ip kamera tersebut, dan benar saja terkoneksi dan dapat berkomunikasi melalui ICMP seperti berikut ini

Untitled

Untitled

Hal yang saya lakukan selanjutnya adalah dengan melakukan port identifier dengan menggunakan nmap, saya melakukan full scanning dari 1-65536 berharap ada sesuatu yang menarik dari proses ini, saya menggunakan command seperti berikut ini

nmap -sV -Pn -p- -A 192.168.1.1

Saya berharap mendapatkan nama service juga dari proses yang saya lakukan juga berharap menemukan versi yang vulnerable dari proses ini, dan berikut inilah hasil dari port scanning yang dilakukan

Untitled

Starting Nmap 7.92 ( https://nmap.org ) at 2023-12-27 09:41 SE Asia Standard Time
Nmap scan report for 192.168.1.1
Host is up (0.0043s latency).
Not shown: 65532 closed tcp ports (reset)
PORT      STATE SERVICE VERSION
21/tcp    open  ftp     iCatch DVR ftpd
554/tcp   open  rtsp    DoorBird video doorbell rtspd
|_rtsp-methods: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER
15740/tcp open  ptp-ip  Picture Transport Protocol over IP
MAC Address: 84:9C:A6:BF:DA:B6 (Arcadyan Technology)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.92%E=4%D=12/27%OT=21%CT=1%CU=36582%PV=Y%DS=1%DC=D%G=Y%M=849CA6%
OS:TM=658B8F5D%P=i686-pc-windows-windows)SEQ(CI=I%II=RI%TS=U)SEQ(CI=I%II=RI
OS:)ECN(R=N)T1(R=Y%DF=N%T=FF%S=O%A=S+%F=AS%RD=0%Q=)T1(R=N)T2(R=N)T3(R=N)T4(
OS:R=Y%DF=N%T=FF%W=E420%S=A%A=S%F=AR%O=%RD=0%Q=)T5(R=Y%DF=N%T=FF%W=E420%S=A
OS:%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=N%T=FF%W=E420%S=A%A=S%F=AR%O=%RD=0%Q=)T7
OS:(R=Y%DF=N%T=FF%W=E420%S=A%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=FF%IPL=38%U
OS:N=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=S%T=FF%CD=S)

Network Distance: 1 hop
Service Info: Devices: media device, webcam

TRACEROUTE
HOP RTT     ADDRESS
1   4.32 ms 192.168.1.1

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 136.63 seconds
Port Service
21 FTP
554 rtps
15740 ptp-ip

Port yang digunakan untuk berkomunikasi di awal aplikasi kamera dengan host kamera adalah port 15740, kita bisa sekali lagi memastikan port tersebut benar-benar menyala dengan cara

nmap -Pn -sV -p 15740 192.168.1.1

Lalu secara manual saya juga melakukan validasi dengan menggunakan nc seperti gambar di bawah ini, hasilnya memang benar, kita dapat benar-benar berkomunikasi dengan portnya dan ada beberapa read buffer yang ditunggu pada port tersebut

Untitled

Selain itu juga ada port yang menarik yaitu 21, dari pengetahuan dasar yang sama-sama diketahui bahwa port 21 ini digunakan untuk service dari FTP, juga dapat dilakukan validasi via ncat seperti berikut ini

Untitled

Service yang berjalan benarlah sebuah FTP dari iCatch, kita dapat melakukan explorasi terhadap service FTP ini dengan banyak client, saya mencobanya menggunakan utility ftp, dan berikut ini hasilnya

Untitled

Kita dapat masuk menggunakan username Anonymous dan password yang dapat diisi dengan apapun, setelahnya kita dapat melakukan explorasi ke tiap-tiap directory yang ada, pada salah satu directory yaitu backup saya menemukan beberapa file .BIN yang bisa diasumsikan sebagai file yang digunakan oleh camera ini, saya melakukan ekstraksi dan berikut ini file-file yang ada

Untitled

File-file tersebut terlihat dari Date Modified (tahun 2016) memang valid sudah ada sejak awal pada file system milik kamera ini, saya melakukan explorasi ke file-file tersebut dan berikut hal-hal yang dapat saya ekstraksi

  1. File format

    Untitled

  2. Inside the Bin Files

    Untitled

    Untitled

  3. Extracted Assets

    Untitled

  4. Various Strings

    Untitled

    Untitled

Hal-hal di atas adalah hal yang dapat saya eksplorasi dalam sesi pertama mengenal Camera Action ini dalam mengerjakan tugasnya. Semoga di lain kesempatan dapat saya eksplorasi lebih hal-hal yang ada di dalamnya.

Hasil Kamera

  • 2018

Untitled

  • 2023

Untitled

  • Kamera Bpro dibandingkan dengan kamera laptop (Lenovo)

Untitled

Kamera tahun 2018 terlihat masih sangat bagus kualitasnya, jernih dan cerah pencayahaanya di tahun 2023 kameranya sudah sedikit agak gelap atau mungkin pengaruh dari ruangannya juga, tapi jika dibandingkan dengan kamera Laptop, kalah juga hanya soal pencahayaan, tapi untuk FPS dan kejernihaan kamera aksi ini masih sangat lebih baik.

Penutup

Terima kasih telah membaca artikel ini, terkesan sangat-saangat ‘ngambang’ isi artikelnya, karena tidak ada juga yang bisa dilakukan untuk eksplorasi dikarenakan kamera aksi ini juga sudah ada banyak part yang rusak, seperti tidak bisa menyala lama, pemancar wifi yang terbatas dan juga layar display yang sudah tidak berfungsi dengan baik, juga untuk protocal rtsp yang tidak bekerja dengan baik juga, Terima kasih sekali lagi <3