Reverse Engineering Firmware binary menggunakan Binwalk+Jefferson+Unsquashfs

Published Saturday, 20 Jun 2020 21:00 Linkedin // Facebook // Twitter

Hallo kawan, udah lama ngga ngepost lagi nih karena sibuk kegiatan program disini. Oh iya kemarin jadi ceritanya lagi iseng2 ngoprek2 router (ONT) yang udah locked by vendor (ISP) baik fitur2 management ataupun security nya, akan tapi sebetulnya bukan ini yang pengen saya bahas. Sebelum kita mengetahui struktur keamanan dan hal2 rahasia daripada sistem router, kita harus tahu dulu asal mula firmware router tsb, akan tetapi tidak semua router menyediakan firmware binary yang bisa di download langsung di internet, hanya beberapa router yang menyediakan untuk update firmware terbaru apalagi yang sudah dipatch karena alasan patching vulnerabilties. Disini saya akan mengambil salah satu fimware binary yang bisa saya download dan sudah ada contoh vulnerabity yaitu root backdoor, namun tenang saja firmware ini sudah jarang digunakan di router (ONT) yang mana firmware tersebut sudah di patch oleh pihak vendor ISP.

We’re start from the scratch,

Setup Environment

1. Pastikan tools binwalk sudah terinstall

Debian likes :
$ sudo apt install binwalk

2. Kemudian unsquashfs

Debian likes :
$  sudo apt install unsquashfs

3. Terakhir tools yang juga penting yaitu Jefferson

$ git clone https://github.com/sviehb/jefferson
$ cd jefferson
$ sudo python2 setup.py install

**note: saya menggunakan python2 untuk running script ini karena script ini yang saya lihat masih menggunakan function2 yang ada di python2, sudah saya coba untuk running di python3 dan saya rubah beberapa function python2 ke python3 alhasil .. running but CRASH, trashback wkwk, untuk memudahkan maka dari itu saya gunakan python2.

Setelah kita setup tools ini ke environment kita, eitss sebetentar dulu masih ada beberapa dependencies yang diperlukan tools ini.

$ sudo pip install cstruct
$ sudo apt install liblzma-dev
$ sudo pip install pyliblzma

Testing run script

$ jefferson -h

jefferson

Let’s Start here

oke langsung aja kita coba reverse bin file nya

$ binwalk -B 100AAPP7D0.bin

disini bisa kita lihat deskripsi filesystem yaitu JFFS2 maka nanti nya kita akan reverse menggunakan jefferson, sebelumnya kita extract file tersebut menggunakan binwalk.

$ binwalk --extract -v 100AAPP7D0.bin

binwalk

$ cd _100AAPP7D0.bin.extracted/
$ ls -la

akan terlihat 1 file dengan extension jffs2

dari sini kita coba reverse jffs2 file..

$ jefferson -v 20000.jffs2 -d  _100AAPP7D0.bin

tunggu sampai proses extracting selesai..

kurang lebib kayak gini

let’s finding the bugs

Nah menurut CVE-2018-18754 disini kita bisa menemukan akun root backdoor yang mungkin develepor nya nggak sengaja naro terus lupa ke apus wkwk

$ cd _100AAPP7D0/fs_1/etc/
$ cat default.cfg | grep 'root\|Pass'

Yups.. kita nemu password root yaitu dFRuMytaQCFTcjBPKwA= dengan enkripsi base64, decyrpt aja

$ echo -e 'RESULT\n======='; echo dFRuMytaQCFTcjBPKwA= | base64 -d;echo;echo

Mission Complete..

Bonus

Ada beberapa firmware yang saya temukan namun ketika di reverse filesystem routernya adalah squashfs contoh nya firmware ini

$ binwalk --extract -v V530ABII0C0.bin
$ cd _V530ABII0C0.bin.extracted/

disana ada file 1706DF.squashfs, extract aja

$ unsquashfs -f -d fs_squashfs 1706DF.squashfs
$ cd fs_squashfs
$ ls -la

Yups berhasil kita reverse engineering.. sekian.

comments powered by Disqus