- 13 Ocak 2018
- 3,227
- 29
Merhabalar,
Bu konumuzda bir adli bilişim aracı olan Binwalk ile firmware yazılımlarını analiz edeceğiz. Tanımlamalarla konumuza giriş yapalım, buyrun..
BINWALK ARACI NE İŞE YARAR ?
Bir firmware dosyası içerisindeki hexadecimal değerlerinin analiz edilmesini sağlayan araçtır. Bu araç ile incelenen bir dosyanın bağlantılı olduğu dosyalar tespit edilebilir ve analiz edilebilir. Yapılan bir analiz sonrası elde edilen bilgiler mahkemede adli delil olarak sunulabilir.
FIRMWARE NEDİR ?
Çevre donanım birimlerinin işlevlerini belirten ve bu işlevlerin düzgün bir şekilde yerine getirilmesini sağlayan yazılımlardır. MP3 çalar, modem, yazıcı gibi elektronik aygıtlarda bulunabilirler. Firmwarelar, okunur olabilmelerine rağmen çeşitli güncellemeler dışında üzerinde sonradan herhangi bir değişiklik yapılmaz.
BINWALK ARACI İLE FIRMWARE ANALİZİ
Elbette analiz işlemi öncesinde elimizde bir firmware dosyası bulunmalıdır. Yazılımı uygulamalı olarak öğrenebilmek adına bu firmware dosyalarını internetten indirebilirsiniz. Bende konuyu anlatırken internetten bulduğum bir firmware dosyasını kullanacağım.
Binwalk aracı, linux sistemlerde kurulu olarak gelen bir araç. Bu sebeple kurulumu anlatmadan direkt işlemlerimize geçebiliriz. İlk olarak araç ile kullanabilir parametreleri görüntüleyelim. Bu doğrultuda aşağıdaki komutu yazıyoruz
Parametrelerimizi de öğrendiğimize göre analiz işlemlerine geçebiliriz. Aşağıdaki komutu yazarak analiz edeceğim dosyayı belirtiyor ve analiz işlemini başlatıyorum
Burada dosya sisteminin "1147023" adresini işaret ettiğini görüyoruz. Description kısmına baktığımızda bu adresin squashfs dosya sistemini belirtmiş olduğunu görebiliyoruz. Bu sebeple squashfs dosya sistemini firmware içerisinden çıkartmaya çalışacağız.
Burada dd aracı belirttiğimiz dosya sistemini firmware içerisinden çıkartmamızı sağlayacak
if parametresi ile firmware'imizi belirtiyoruz.
of parametresi ile oluşturulacak yeni dosyayı belirtiyoruz.
skip parametresi ile dosya sisteminin gösterdiği adresi belirtiyoruz.
bs parametresi ile de dosyanın block size değerini belirtiyoruz. Bu değeri 1 olarak vermemiz, dosyanın düzgün bir şekilde okunmasını sağlayacaktır. Bu bağlamda komutumuzu aşağıdaki gibi yazabiliriz
İşlem başarıyla tamamlandıktan sonra çıktı dosyamız belirttiğimiz konumda oluşturulacaktır. Şimdi işlemlerin doğruluğunu teyit edelim. Bunun için aşağıdaki komutu giriyoruz.
Yukarıda da gördüğünüz gibi çıkardığımız "test.squashfs" dosyasının adresi "0" değerini gösteriyor. Bu işlemin başarıyla tamamlandığının göstergesidir. Şimdi firmware dosyasından oluşturduğumuz yeni dosyamızdaki şu an için karmaşık olan bilgilerin, okunabilir hale getirilmesini sağlayacağız. Bunun için unsquashfs aracını kullanabiliriz. Aracı kurmadan önce sistemimize aracın kullanımı için gerekli birkaç paketi kuralım.
Yukarıdaki paketleri kurduktan sonra aşağıdaki komut ile aracımızı kuruyoruz
Kurulum sonrası aşağıdaki komutu girerek unsquashfs aracı ile dosyamızdaki bilgilerin okunabilir hale gelmesini sağlıyoruz.
Yukarıdaki komutun ardından bulunduğumuz dizin altında "squashfs-root" adında yeni bir dizin oluşturulmuş olacak. Bu dizine aşağıdaki komutu kullanarak gidelim
Ardından aşağıdaki komut ile dizin içerisindeki dosya ve klasörleri görüntüleyelim
Burada imajını aldığımız dosya sisteminin içeriği görüntülemiş olduk. Artık squashfs-root dizini altından analiz ettiğimiz firmware dosyası hakkında bilgi edinebiliriz.Aynı zamanda bu dizine terminal üzerinden erişmek yerine root dizini altından da erişebilir, dosyaları görüntüleyebilirsiniz.
Konuma burada nokta koyuyorum. Teşekkür eder, iyi forumlar dilerim...
Bu konumuzda bir adli bilişim aracı olan Binwalk ile firmware yazılımlarını analiz edeceğiz. Tanımlamalarla konumuza giriş yapalım, buyrun..
BINWALK ARACI NE İŞE YARAR ?
Bir firmware dosyası içerisindeki hexadecimal değerlerinin analiz edilmesini sağlayan araçtır. Bu araç ile incelenen bir dosyanın bağlantılı olduğu dosyalar tespit edilebilir ve analiz edilebilir. Yapılan bir analiz sonrası elde edilen bilgiler mahkemede adli delil olarak sunulabilir.
FIRMWARE NEDİR ?
Çevre donanım birimlerinin işlevlerini belirten ve bu işlevlerin düzgün bir şekilde yerine getirilmesini sağlayan yazılımlardır. MP3 çalar, modem, yazıcı gibi elektronik aygıtlarda bulunabilirler. Firmwarelar, okunur olabilmelerine rağmen çeşitli güncellemeler dışında üzerinde sonradan herhangi bir değişiklik yapılmaz.
BINWALK ARACI İLE FIRMWARE ANALİZİ
Elbette analiz işlemi öncesinde elimizde bir firmware dosyası bulunmalıdır. Yazılımı uygulamalı olarak öğrenebilmek adına bu firmware dosyalarını internetten indirebilirsiniz. Bende konuyu anlatırken internetten bulduğum bir firmware dosyasını kullanacağım.
Binwalk aracı, linux sistemlerde kurulu olarak gelen bir araç. Bu sebeple kurulumu anlatmadan direkt işlemlerimize geçebiliriz. İlk olarak araç ile kullanabilir parametreleri görüntüleyelim. Bu doğrultuda aşağıdaki komutu yazıyoruz
Kod:
binwalk -h
Parametrelerimizi de öğrendiğimize göre analiz işlemlerine geçebiliriz. Aşağıdaki komutu yazarak analiz edeceğim dosyayı belirtiyor ve analiz işlemini başlatıyorum
Kod:
binwalk dosya/konumu/dosya_adi.bin
Burada dosya sisteminin "1147023" adresini işaret ettiğini görüyoruz. Description kısmına baktığımızda bu adresin squashfs dosya sistemini belirtmiş olduğunu görebiliyoruz. Bu sebeple squashfs dosya sistemini firmware içerisinden çıkartmaya çalışacağız.
Burada dd aracı belirttiğimiz dosya sistemini firmware içerisinden çıkartmamızı sağlayacak
if parametresi ile firmware'imizi belirtiyoruz.
of parametresi ile oluşturulacak yeni dosyayı belirtiyoruz.
skip parametresi ile dosya sisteminin gösterdiği adresi belirtiyoruz.
bs parametresi ile de dosyanın block size değerini belirtiyoruz. Bu değeri 1 olarak vermemiz, dosyanın düzgün bir şekilde okunmasını sağlayacaktır. Bu bağlamda komutumuzu aşağıdaki gibi yazabiliriz
Kod:
dd if=firmware/dosya/konumu/dosya_adi.bin of=cikti/yolu/dosya_adi skip=1147023 bs=1
İşlem başarıyla tamamlandıktan sonra çıktı dosyamız belirttiğimiz konumda oluşturulacaktır. Şimdi işlemlerin doğruluğunu teyit edelim. Bunun için aşağıdaki komutu giriyoruz.
Kod:
binwalk dosya/konumu/dosya_adi
Yukarıda da gördüğünüz gibi çıkardığımız "test.squashfs" dosyasının adresi "0" değerini gösteriyor. Bu işlemin başarıyla tamamlandığının göstergesidir. Şimdi firmware dosyasından oluşturduğumuz yeni dosyamızdaki şu an için karmaşık olan bilgilerin, okunabilir hale getirilmesini sağlayacağız. Bunun için unsquashfs aracını kullanabiliriz. Aracı kurmadan önce sistemimize aracın kullanımı için gerekli birkaç paketi kuralım.
Kod:
apt-get install liblzma-dev
Kod:
apt-get install subversion
Kod:
apt-get install zlib1g-dev
Kod:
apt-get install build-essential
Yukarıdaki paketleri kurduktan sonra aşağıdaki komut ile aracımızı kuruyoruz
Kod:
apt-get install squashfs-tools
Kurulum sonrası aşağıdaki komutu girerek unsquashfs aracı ile dosyamızdaki bilgilerin okunabilir hale gelmesini sağlıyoruz.
Kod:
unsquashfs -i dosya/konumu/dosya_adi
Yukarıdaki komutun ardından bulunduğumuz dizin altında "squashfs-root" adında yeni bir dizin oluşturulmuş olacak. Bu dizine aşağıdaki komutu kullanarak gidelim
Kod:
cd ./squashfs-root/
Ardından aşağıdaki komut ile dizin içerisindeki dosya ve klasörleri görüntüleyelim
Kod:
ls
Burada imajını aldığımız dosya sisteminin içeriği görüntülemiş olduk. Artık squashfs-root dizini altından analiz ettiğimiz firmware dosyası hakkında bilgi edinebiliriz.Aynı zamanda bu dizine terminal üzerinden erişmek yerine root dizini altından da erişebilir, dosyaları görüntüleyebilirsiniz.
Konuma burada nokta koyuyorum. Teşekkür eder, iyi forumlar dilerim...
Son düzenleme: