Не важно, как медленно ты продвигаешься, главное, что ты не останавливаешься.


Thursday 3 May 2018

Mencoba, Firmware Extraction

Beberapa waktu lalu, betebaran artikel tentang firmware analysis yang masih sangat asing bagi saya yang masih awam. Artikel ini memberikan inspirasi untuk mencoba hal baru, paling tidak, dapat mengetahui apa itu firmware analysis, bagaimana prosesnya, dan seberapa menyenangkan proses analisa firmware ini. Sebelumnya, saya juga bingung untuk menentukan judul yang tepat untuk artikel ini, yang dilakukan disini hanya sebagian kecil yang saya praktekan setelah membaca artikel yang ada digoogle, kurang lebih meliputi firmware extraction. Ada beberapa firmware yang dijadikan contoh untuk diextract seperti TP-link, Xiaomi Yi Camera Home.

1. TP-Link WR-902ACv3


Untuk firmware dapat diunduh dari situs resmi TP-Link, terdapat banyak jenis produk TP-Link disana. Binwalk, merupakan tool yang digunakan dalam artikel kali ini.



Dapat dilihat, firmware TP-Link ini terdapat 3 bagian yang terbaca oleh binwalk, yang pertama bagian U-Boot, kedua LZMA compressed data, yang ketiga Squashfs filesystem. U-boot (Universal bootloader digunakan sebagai bootloader pada firmware ini, sementara bagian LZMA ini corupt setelah saya coba decompress menggunakan unlzma. Bagian paling akhir merupakan bagian yang paling menarik bagi saya. Squashfs filesystem, berisi direktori lengkap seperti linux pada umumnya. Ada beberapa cara firmware extraction, ada yang menggunakan binwalk, atau bisa juga menggunakan dd.



Cara yang praktis dapat menggunakan binwalk dengan opsi -e, segala jenis file format yang dikenali langsung diextract oleh binwalk, kemudian jika ada filesystem yang dikenali, dapat langsung diextract juga menjadi direktori baru, contohnya pada kasus ini filesystem squashfs langsung diekstract dan menghasilkan direktori baru bernama squashfs-root. Cara manual dapat menggunakan dd, kemudian filesystem squashfs diektract lagi menggunakan unsquashfs.



2. Xiaomi Yi Camera Home 2


Produk kedua dalam percobaan ini dalah XiaomiYi Camera Home 2, merupakan salah satu produk camera dari xiaomi. Untuk firmware bisa didapatkan di website resmi xiaomi.



Setelah dicek menggunakan binwalk, terdapat deskripsi yang baru saya temui, yaitu UBI. UBI atau UBIFS merupakan sebuah file system, sama seperti filesystem lain (squasfs, NTFS, dll) yang artinya saya harus mencari cara lain untuk mengekstrak UBIFS ini.

https://github.com/jrspruitt/ubi_reader/blob/master/README.md

Salah satu tool yang bisa dipakai untuk mengekstrak UBIFS ini dapat menggunkan ubi reader.



Setelah diekstrak, mulai terlihat struktur direktori dari Xiaomi Yi Camera Home 2.



Untuk mencari informasi arsitektur processor yang digunakan dapat menggunakan readelf, berguna pada saat analisa lanjutan pada binary analysis. Informasi yang didapat seperti 32/64bit arch, processor (ARM,MIPS,dll).

Next, analisa lebih dalam yang perlu dilakukan seperti explorasi file yang penting seperti konfigurasi server maupun web app yang ada pada firmware, dynamic analisis (emulasi) firmware yang berhasil diextract, dll. Sebagai percobaan pertama, saya juga masih kebingungan untuk mengekstrak beberapa firmware, dimana binwalk tidak mampu mengenali jenis file system, maupun section yang dianggap penting dalam firmware.
5 λ .: May 2018 Beberapa waktu lalu, betebaran artikel tentang firmware analysis yang masih sangat asing bagi saya yang masih awam. Artikel ini memberikan ...
< >