28 Mayıs 2018

Firmware Dosya Sistemine Erişim

Bu yazımızda bir firmware içerisindeki dosyalara yetkili olarak erişme konusunu ele alacağız.

Adımlarımızı gerçekleştirmek için Kali Linux aracını kullanacağız.
Öncelikle binwalk aracı ile firmware binary dosyasını inceliyoruz. Bu araç sayesinde firmware dosyası içerisindeki adresleri tespit ederek ihtiyacımız olan dosya sistemi adresini bulacağız.


Mevcut firmware içerisinde dosya sistemi 1835008 adresini işaret etmekte

Dosya sisteminin adresini tespit ettikten sonra,ilgili adresten başlayıp firmware içerisinden squashfs dosya sistemini çıkarıyoruz.
Squashfs olarak belirlememizin sebebi tespit ettiğimiz adresin squashfs dosya sistemini işaret etmesidir. Dosya sistemini binary içerisinden çıkartmak için dd komutunda faydalanacağız.

dd if=test.bin of=test.squashfs skip=1835008 bs=1 

Komutta verilen parametreler;

if; Mevcut firmware dosyamız
of;Oluşturacağımız yeni dosya
skip;Dosya sisteminin adresi
bs;Blocksize değeri
dd aracının dosyamızın tüm bloklarını düzgün okuyabilmesi için bs değerinin 1 byte olarak verilmesi gereklidir. dd komutu işlemi tamamladıktan sonra test.squashfs adlı bir dosya oluşacaktır.

İşlemin düzgün bir şekilde gerçekleşip gerçekleşmediğini konrol etmek için binwalk aracından tekrar faydalanabilirsiniz. Çıkardığımız test.squashfs dosyasının adresinın sıfırı işaret etmesi, işlemlerin düzgün şekilde gerçekleştiğini gösterir.


Oluşturduğumuz test.squashfs içerisindeki bilgileri okunabilir hale getirmek için unsquashfs aracından faydalanacağız.
Unsquashfs aracını kullanmak için sistemimizde bazı paketlerin yüklü olması gerekiyor. Mevcut sisteminizde bu paketler hali hazırda kurulu olabilir. Aksi olabilecek durumlar için yüklenmesi gereken paketler aşağıdaki gibidir;

apt-get install subversion
apt-get install build-essential
apt-get install zlib1g-dev
apt-get install liblzma-dev
Son olarak unsquashfs aracını yüklüyoruz;
apt-get install squashfs-tools

Bu işlemden sonra aşağıdaki komutu çalıştırıyoruz. Bu komut bulunduğunuz dizin altına squashfs-root adında bir klasör oluşturacaktır.
unsquashfs  -i  test.squashfs



İşlem tamamlandıktan sonra squashfs-root klasörü altında dosya sisteminin içeriği görüntülenebilir. Bu noktada kritik görünen bilgiler analiz edilebilir.