The Sleuth Kit (TSK) uygulamaları ile dosya sistemi seviyesinde gerçekleştirilebilecek adli bilişim analizlerini ele aldığımız yazı dizimizden sonra bu uygulamaların kullanım örneklerini ele alacağımız bir yazı dizisine başlamış ve http://halilozturkci.com/sleuth-kit-tsk-uygulamalari-ile-adli-bilisim-inceleme-ornekleri-1/ adresinde yer alan alıştırmalar ile bir sabit disk imajı içindeki slinmiş dosyaların nasıl kurtarılacağına değinmiştik. Bu makalemizde ise yine TSK uygulamalarını kullanarak bir disk imajı içinde bizim elimizdeki "dirty wordlist" içinde yer alan kelimelerin nasıl aranabileceğine değineceğiz. Örneğimizde kullanacağımız imaj dosyası bir önceki makalede de kullandığımız ve http://linuxleo.com/Files/able2.tar.gz adresinden indirebileceğiniz able2.dd isimli disk imajı dosyası olacak.
Senaryo adımlarını özetlersek;
Amaç: Oluşturulan dirty wordlist içindeki kelimelerin able2.dd isimli disk imajı içinde var olup olmadığını, varsa bu kelimelerin hangi dosya içinde geçtiğini ve bu dosya veya dosyaların allocation durumunu öğrenmek.
Araçlar: TSK uygulamaları.
Adımlar:
- Partition Table’ını Öğren (mmls)
- Partition’u Ayrı Bir Dosyaya Çıkart (dc3dd )
- Partition İçindeki Bütün Karakter Dizilerini Çıkart (srch_strings)
- Dirty Wordlist İçindeki Kelimeleri Ara (grep)
- Kelimelerin Bulundu Veri Bloğuna Ait Metadata Adresini Bul (ifind)
- İlgili Metadata Adresini Analiz Et (istat)
- Silinmiş Dosyaları Kurtar (icat)
Öncelikle aşağıda ekran görüntüsünde gösterildiği gibi mmls ile diskin partition yapısını öğrenip ardından dd ile üzerinde analiz yapacağımız disk bölümünü ayrı bir imaj dosyasına çıkartıyoruz.

Dirty Wordlist içinde yer alan kelimelerin partition imajı içinde nerde yer aldığını öğrenmek için öncelikle partition içindeki bütün karakter dizilerini srch_strings uygulaması ile ayrı bir dosyaya çıkartıyoruz ve ardından grep yardımı ile bu dosya içinde arama yapıyoruz. Karşımıza çıkan offset değerini blok boyutuna böldüğümüzde bu karakter dizisinin hangi blokta yer aldığını öğreniyoruz. Takip edilen adımların hangisinde hangi komutun çalıştırıldığını aşağıdaki ekran görüntüsünden öğrenebilirsiniz. Örnek olarak kullandığımız DirtyWordList.txt dosyasının içinde rootkit ve Cybernetik kelimelerinin yer aldığını ve bu kelimelerden herhangi birisinin geçtiği dosyaların hangileri olduğunu bulmayı amaçladığımızı bir kez daha hatırlatalım.

Örneğimizdeki 5308483 numaralı offsetde karşımıza çıkan kelime topluluğunun yer aldığı bloğu bulmak için bu offset değerini blok boyutuna bölüyoruz. Blok boyutunu fsstat ile öğrenebilirsiniz.
5308483/1024=5184 numaralı blok.
Bir sonraki aşamada ise 5184 numaralı bloğun hangi inode tarafından kullanıldığını öğreniyoruz. ifind ile 5184 numaralı bloğun 10090 numaralı inode tarafından kullanıldığını tespit ediyoruz ve ardından istat ile 10090 numaralı inode’a ilişkin detaylı bilgileri elde ediyoruz. İlgili inode'un detaylarını istat ile incelediğimizde 10090 numaralı inode’un allocation durumunun Not Alocated olduğunu görüyoruz. Bu işlemlere ilişkin çalıştırılan komutlar ve çıktıları aşağıdaki ekran görüntüsünde yer almaktadır.

Son olarak inode bilgisini öğrendiğimiz bu dosyanın içeriğini icat ile ekrana yada bir dosyaya yazdırabiliyoruz. Bu işlem ile aradaığımız kelimelerden birisini içeren silinmiş bir dosyayı kurtarmış olduk. Çalıştırılan komut ve bu komuta ilişkin ekran görüntüsü aşağıda yer almaktadır.



