Digital Forensics | Binwalk Aracı ile Firmware Analizi



Merhaba değerli okurum,

Adli Bilişim ile ilgilenenler için bir eğitim serisi başlatmaktayım. Adli Bilişim Eğitimleri serimizde ilk olarak Binwalk aracından bahsediyor olacağız. Öncellikle Binwalk Aracı Nedir ? hem teorik hemde uygulamalı olarak inceleyelim.



Binwalk Tool

Kali Linux dağıtımı ile gelen bir adli bilişim araçlarından dır. Donanımların yazılımlarını incelemeye yaramaktadır.

    Binwalk Aracının Özellikleri

  • Modem,Güvenlik Kameraları vb. Firmware (donanım yazılımı)  içerisindeki dosyalara yetkili olarak erişip analiz etmek için kullanılır. 
  • Ayrıca CTF (Capture The Flag) gibi yarışmalarda normal dosyalardan gizlenmiş olan veriyi açığa çıkarmak için kullanışlı bir araçtır. 
  • Bir dosya içerisine başka bir dosyanın gömülü olup olmadığını araştırmak içinde kullanılır.
  • Libmagic kütüphanesini kullanır, bu nedenle Unix dosya yardımcı programı için oluşturulan sihirli imzalarla uyumludur.
  • Veri Entropi Analizi yapabilir. (Entropi Analizi, bir bellenim görüntüsü içindeki verilerin ilginç bölümlerini tanımlamaya yardımcı olur)
Bu araç sayesinde örneğin bir .bin uzantılı bir modem arayüzünün yazılımının içine erişip istediğimiz bilgileri elde edebiliriz.

Kali Linux kurulu olarak gelen binwallk araçı bazı dağıtımlarda olmaya bilir. Bundan dolayı kurulum için;
sudo apt-get install binwalk
komudu kullanılabilir.

Binwall Aracını Tanıyalım:

Binwalk v2.2.0
Craig Heffner, ReFirmLabs
https://github.com/ReFirmLabs/binwalk

Kullanımı: binwalk [OPTIONS] [FILE1] [FILE2] [FILE3] ...


Bilwalk Aracının Parametleri 

Sökme Tarama Seçenekleri:
-Y, --disasm Capstone sökücüyü kullanarak bir dosyanın CPU mimarisini tanımlama
-T, --minsn = Geçerli kabul edilecek minimum ardışık talimat sayısı (varsayılan: 500)
-k, --continue İlk maçta durma

İmza Tarama Seçenekleri:

-B, --signature Genel dosya imzaları için hedef dosyaları tara
-R, --raw = Hedef dosya (lar) ı belirtilen bayt sırası için tara
-A, --opcodes Genel yürütülebilir opcode imzaları için hedef dosyaları tara
-m, --magic = Kullanılacak özel bir sihirli dosya belirtin
-b, --dumb Akıllı imza anahtar kelimelerini devre dışı bırak
-I, --invalid Geçersiz olarak işaretlenmiş sonuçları göster
-x, --exclude = ile eşleşen sonuçları hariç tut
-y, --include = Yalnızca ile eşleşen sonuçları göster

Ekstraksiyon Seçenekleri:

-e, --extract Bilinen dosya türlerini otomatik olarak ayıkla
-D, --dd = imzalarını ayıkla, dosyalara uzantısı ver ve yürüt
-M, --matryoshka Çıkarılan dosyaları tekrar tekrar tarama
-d, --depth = Matruşka özyineleme derinliğini sınırla (varsayılan: 8 düzey derinlik)
-C, --directory = Dosyaları / klasörleri özel bir dizine çıkart (varsayılan: geçerli çalışma dizini)
-j, --size = Ayıklanan her dosyanın boyutunu sınırla
-n, --count = Çıkartılan dosya sayısını sınırla
-r, --rm Çıkarıldıktan sonra oyulmuş dosyaları sil
-z, --carve Dosyalardan veri böl, ancak ayıklama yardımcı programlarını yürütme
-V, --subdirs Ofset tarafından adlandırılan alt dizinlere ayıkla

Entropi Seçenekleri:

-E, --entropy Dosya entropisini hesapla
-F, --fast Daha hızlı ama daha az ayrıntılı entropi analizi kullanın
-J, --save Çizgiyi PNG olarak kaydet
-Q, --nlegend Efsaneyi entropi grafiği grafiğinden çıkar
-N, --nplot Entropi grafiği grafiği oluşturma
-H, --high = Yükselen kenar entropi tetikleme eşiğini ayarla (varsayılan: 0,95)
-L, --low = Düşen kenar entropi tetikleme eşiğini ayarla (varsayılan: 0,85)

İkili Dağıtım Seçenekleri:

-W, --hexdump Bir dosyanın veya dosyaların onaltılık / farkını gerçekleştir
-G, --green Yalnızca tüm dosyalar arasında aynı olan bayt içeren satırları gösterir
-i, --red Yalnızca tüm dosyalar arasında farklı bayt içeren satırları göster
-U, --blue Yalnızca bazı dosyalar arasında farklı bayt içeren satırları gösterir
-u, --screte Yalnızca tüm dosyalar arasında aynı olan satırları göster
-w, --terse Tüm dosyaları değiştirir, ancak yalnızca ilk dosyanın onaltılık dökümünü görüntüler

Ham Sıkıştırma Seçenekleri:

-X, --deflate Ham sönük sıkıştırma akışlarını tara
Ham LZMA sıkıştırma akışları için -Z, --lzma Tarama
-P, --partial Yüzeysel, ancak daha hızlı bir tarama gerçekleştirir
-S, --stop İlk sonuçtan sonra dur

Genel seçenekler:

-l, --length = Taranacak bayt sayısı
-o, --offset = Bu dosya ofsetinde taramayı başlat
-O, --base = Basılan tüm ofsetlere temel adres ekle
-K, --block = Dosya bloğu boyutunu ayarla
-g, --swap = Taramadan önce her n baytı ters çevir
-f, --log = Sonuçları dosyaya kaydet
-c, --csv Sonuçları CSV biçiminde dosyaya kaydeder
-t, --term Çıktıyı terminal penceresine sığacak şekilde biçimlendir
-q, --quiet Stdout'a çıkışı bastır
-v, --verbose Ayrıntılı çıktıyı etkinleştir
-h, --help Yardım çıktısını göster
-a, --finclude = Yalnızca adları bu normal ifadeyle eşleşen dosyaları tara
-p, --fexclude = Adları bu normal ifadeyle eşleşen dosyaları tarama
-s, --status = Belirtilen bağlantı noktasındaki durum sunucusunu etkinleştir.


Binwalk Aracı ile Modem Firmware Analizi

Binwalk aracımızı tanıdıktan sonra örnek olarak bir modemin arayüzü yazılım analizini gerçekleştireceğiz.Bunun için 


1.http://www.airties.com.tr/downloads sitesinden herhangi bir modem firmware sürümünü indirilir.

2.Herhangi bir Ürün,Ülke,Versiyon seçimi yapıldıktan sonra indir denilir.


3. İndirmiş olduğumuz airties.bin firmware dosyasının açılıp analiz işlemlerinin yapılması için
binwalk -e airties.bin
 komudu kullanılır.

4. Komudumuz çıktısı resimde görüldüğü gibidir. airties.bin kapalı halde olan dosyamızı başarılı bir şekilde içini açmış bulunmaktayız.

5.Bulunan bu dosyalar üzerinden istenilen ölçüde analiz işlemi yapabilirsiniz.
Örneğin /etc klasöründeki config.xml dosyasını incelediğimizde modem arayüzüne giriş bilgileri olan, kullanıcı adı ve şifreyi görebilmekteyiz.

Sonuç olarak bizlerden .bin uzantılı bir dosyanın analizi yapmamızı istediklerinde binwalk aracı işimizi görecektir.

Bir eğitim yazımızın da sonuna gelmiş bulunmaktayız. Umarım faydalı olur,iyi günler dilerim... 

Yorum Gönder

0 Yorumlar