The Sleuth Kit (TSK) İle File System Forensics – 3

The Sleuth Kit (TSK) İle File System Forensics – 3
[EXHIBIT_A] Featured evidence

Yazımızın ilk kısmında adli bilişim incelemelerinde dosya sistemi seviyesinde analiz yapmamıza imkan tanıyan The Sleuth Kit (TSK) uygulamalarından kısaca bahsetmiş, detaylarını sonraki makalelerde ele alacağımızı belirtmiştik. İkinci makalemizde ise The Sleuth Kit (TSK) uygulamalarının detayların girmeye başlamış ve mmls ile fsstat'ın kullanımına değinmiştik. İlgili makaleleri okumayanlar http://halilozturkci.com/adli-bilisim-the-sleuth-kit-tsk-ile-file-system-forensics-1 ve http://halilozturkci.com/adli-bilisim-the-sleuth-kit-tsk-ile-file-system-forensics-2/ adreslerini ziyaret edebilirler. Şimdi bu araç kiti içindeki data birimi katmanı uygulamalarının detaylarına bakalım. Tekrar özetlemek gerekirse;

Data Birimi Katmanı Araçları

  • blkcat: Kendisine girdi olarak verilen veri biriminin(block veya cluster) içeriğini STDOUT'a basar.
  • blkls: Veri birimleri hakkında detayları listeler. Aynı zamanda dosya sistemindeki unallocated alanları extract etmek için de kullanılır.
  • blkstat: Kendisine girdi olarak verilen veri birimine ilişkin istatistiki bilgileri gösterir.
  • blkcalc: blkls ile üretilen dosya içinde bulunan verinin orjinal imaj içinde nerede olduğunu bulmaya yarar.

blkstat, kendisine girdi olarak verilen veri birimine ilişkin istatistiki bilgileri gösterir. Genellikle veri biriminin allocation durumunu ve Unix dosya sistemlerinde bu veri biriminin hangi grubun içinde yer aldığı bilgisini verir. Aşağıdaki ekran görüntüsünde blkstat uygulamasının örnek bir kullanımını görebilirsiniz. İlk satırda ext2 dosya sistemine sahip bir disk bölümündeki 22456 numaralı bloğun durumu, ikinci satırda ise bir NTFS disk bölümündeki 32 numaralı clusterın durumu sorgulanmıştır.

exhibit_viewer.exe
blkstat
[EXHIBIT] blkstat

blkcat uygulaması ise kendisine girdi olarak verilen bir veri biriminin içeriğini ekrana basar. İstenirse çıktı bir dosyaya yönlendirilebilir. -h parametresi ile kullanılması durumunda çıktıyı hex formatında sunar. Varsayılan olarak sadece bir tane veri biriminin içeriğini gösterir. Örnek bir kullanımını aşağıdaki ekranda görebilirsiniz.

exhibit_viewer.exe
blkcat
[EXHIBIT] blkcat

Bununla birlikte, opsiyonel olarak sunulacak bir parametre ile gösterilecek veri birimi sayısı belirlenebilir. Örneğin aşağıdaki kullanımda 19. veri biriminden başlayarak 3 veri biriminin içeriğinin gösterilmesi sağlanmış olur.

#blkcat NTFSImage.001 19 3

Blkls uygulaması ise kendisine parametre olarak verilen veri birimleri hakkında detayları listeler. Aynı zamanda dosya sistemindeki unallocated alanları extract etmek için de kullanılır. Bu sayede silinmiş dosyaların kurtarılması mümkün olabilir. Varsayılan olarak sadece unallocated verileri kopyalar. Bunun yanında istenirse bütün verilerin içeriğinin kopyalanması sağlanabilir. blkls ile birlikte kullanılabilecek anahtarlar ve anlamları şöyledir;

  • -e: Bütün bloklar üzerinde işlem yap (‘dd’ ile yapılan işlemin aynısıdır)
  • -l: Her bir blok hakkında detay göster (içerik göstermez)
  • -s: FAT ve NTFS imajlarında yer alan slack space'leri göster. (Unix tabanlı sistemlerde slack space yoktur.)

Girdi olarak bir veri birimi aralığı belirtilebilir. Unallocated alanlarda yapılacak bir arama işlemi daha hızlı sonuç verir. Bu sayede silinmiş dosyaların tespiti daha çabuk yapılmış olur. -s parametresi ile kullanılması halinde sadece slack space’ler extract edilebilir. Örnek blkls kullanımı şu şekildedir;

#blkls NTFSImage.001 > NTFSImage.unallac

Örnek ekran görüntüsü aşağıda gösterilmiştir. İlk satırda ilgili disk bölümü içindeki unallocated alanlar çıkartılıp ayrı bir dosyaya yazılmış, ikinci satırda çalıştırılan komut ile de ilgili disk imajı içindeki slack space olarak geçen artık alanlar ayrı bir dosyaya çıkartılmıştır.

exhibit_viewer.exe
blkls
[EXHIBIT] blkls

blkcalc ise blkls ile extact edilen unallocated alanlar içinde yapılan arama işlemi sonunda bulanan verinin, orjinal imajda nerede olduğunu bulmamızı sağlar. Blkls adresini girdi olarak alır ve çıktı olarak orjinal imaj adresini verir. Şimdi bunu bir senaryo içinde daha anlaşılır kılmaya çalışayım. Elimizdeki vakada belirli anahtar kelimelerin geçtiği silinmiş dosyaların neler olduğunu bulmamız istensin. Bunun için öncelikle bir önceki aşamada elde ettiğimiz unallocated alanların olduğu dosyadaki karakter dizilerini srch_strings uygulaması ile çıkartıp ayrı bir dosyaya yazıyoruz.

#srch_strings –a –t d NTFSImage.unallac > NTFSImage.unallac.str

Ardından arayacağımız kelimelerin yer aldığı dosyada (ki bu kelimelerin yer aldığı dosyaya adli bilişim dünyasında "Dirty Word List" denir) geçen kelimelerin bu dosya içinde nerede yer aldığını bulmamıza yarayacak aşağıdaki komutu çalıştırıyoruz.

# grep –i –f dirty_words.txt NTFSImage.unallac.str > aramasonuclari.blkls

Bu işlemin sonucunda aradığımız kelimelerin bulunduğu yerin yazıldığı dosyayı cat ile görüntüleyelim. Bu işlem sonucunda aşağıdaki gibi bir çıktı ile karşılaşırsınız. Örneğimizdeki Dirty Word List içinde yer alan aramamoturu.com ifadesinin unallocated alanlardaki yerinin 56347383 olduğunu öğreniyoruz.

#cat aramasonucları.txt

……..

56347383 aramamoturu.com

….…

56347383 ‘un karşılık geldiği blok numarası için şu işlemi yapıyoruz. 4096 sayısı bir önceki makalede detaylarını ele aldığımız gibi ilgili disk bölümünündeki block size değeridir.

56126934/4096 = 13756,

13756 numaralı unallocated blokda bizim aradığımız kelimelerden olan aramamoturu.com'a rastlanmış. Bu kelimenin orjinal disk imajı içinde nerde yar aldığını öğrenmek için blkcalc'ı kullanıyoruz.

exhibit_viewer.exe
blkcalc
[EXHIBIT] blkcalc

AUTHOR
Halil Öztürkci

Halil Öztürkci

Cybersecurity expert with 25 years of hands-on experience across the full attack-defense spectrum.

I've spent my career on both sides of the battlefield—investigating breaches through digital forensics, hunting APT groups through threat intelligence, building and leading security operations, dissecting malware, and executing red team engagements. Now I'm focused on the next frontier: LLM security, AI red teaming, and building secure AI/ML pipelines.

From incident response to adversary simulation, from SOC architecture to AI-powered threat detection—I decode complex security challenges and translate them into actionable defense.

enjoyed this? get more like it.