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

Bu yazı dizimizde dosya sistemi seviyesinde adli bilişim incelemelerinin nasıl yapılabileceğine değinip bu işlemler için kullanabileceğimiz ücretsiz bir analiz kiti olan The Sleuth Kit'in detaylarına bakacağız. The Sleuth Kit adli bilişim incelemelerinde kullanılabilecek komut satırı uygulamalarından oluşan bir kittir ve bu kitin son sürümüne http://www.sleuthkit.org adresinden ulaşabilirsiniz. Windows, Linux, OS X, FreeBSD, OpenBSD ve Solaris işletim sistemleri üzerinde çalışabilen bu araçlar ile EXT2, EXT3, EXT4, FAT, exFAT, HFS, ISO 9660, NTFS, UFS 1, UFS 2, YAFFS2 dosya sistemleri analiz edilebilir.

Bu kit içinde yer alan uygulamalar beş farklı ana kategoride toplanmışlardır. Bunlar;

  • File Sistem Araçları
  • Volume Sistem Araçları
  • İmaj Dosyası Araçları
  • Disk Araçları
  • Diğer Araçlar

​TSK içindeki komut satırı uygulamaları dosya sistemleri üzerinde işlem yaparken işletim sistemlerine bağımlı olmadıkları için gizlenmiş yada silimiş dosyaları kolaylıkla tespit edebilirler. TSK araçları ile DOS bölümleri, BSD ve Mac bölümleri ile Sun slice ve GPT diskleri incelenebiliyor. Raw (örneğin dd), Expert Witness (EnCase) ve AFF dosya sistemi veya disk imajlarını analiz edilmek üzere girdi olarak TSK uygulamalarına verilebilir. TSK araçları bir Incident Response sırasında canlı Windows ve Unix sistemler üzerinde de çalıştırılabilir. Bu sayede rootkitler tarafından gizlenmiş dosya ve dizinlerin tespiti kolaylaştırılır. Ayrıca bu araçlar ile yapılan incelemede ilgili dosyaların erişilme zamanlarında bir güncelleme yapılmaz.

TSK içindeki komut satırı uygulamalarının ilk harfi ilgili uygulamanın hangi katmanda çalışacak şekilde kodlandığını gösterir ve TSK’nın yazarı tarafından benimsenen katman yaklaşımında aşağıdaki listede bulunan katmanlar yer alır.

  • Dosya Sistemi Katmanı (File System Layer): Bu katmanda çalışan TSK uygulamalarının adı f ile başlar. Örneğin fsstat gibi.
  • Veri Katmanı (Data Layer): Bu katmanda çalışan TSK uygulamalarının adı b ile başlar. Örneğin blkcat gibi.
  • Metadata Katmanı (Metadata Layer): Bu katmanda çalışan TSK uygulamalarının adı i ile başlar. Örneğin ils gibi.
  • Dosya Adı Katmanı (File Name Layer): Bu katmanda çalışan TSK uygulamalarının adı f ile başlar. Örneğin fls gibi.
  • Journal Katmanı (Journal Layer): Bu katmanda çalışan TSK uygulamalarının adı j ile başlar. Örneğin jcat gibi.
  • Medya Yönetim Katmanı (Media Management Layer): Bu katmanda çalışan TSK uygulamalarının adı m ile başlar. Örneğin mmls gibi.
  • Disk Katmanı (Disk Layer (Sadece Linux'de)): Bu katmanda çalışan TSK uygulamalarının adı disk ile başlar. Örneğin disk_stat gibi.

Yukarıdaki yazılımların haricinde TSK içinde bir de otomatize araçlar olarak adlandırdığımız araçlar vardır. Bunlara kısaca değinmek gerekirse;

  • tsk_comparedir: Bir yerel dizin hiyerarşisini bir raw disk imajının içeriği ile karşılaştırmak için kullanılır. Rootkitlerin tespit edilmesinde kullanılabilir.
  • tsk_gettimes: Bir imaj içindeki dosya sistemlerinin metadatalarını çıkartmak için kullanılır. Bu uygulamanın çıktısı bir BODY dosyasıdır ve girdi olarak mactime uygulamasına verilerek bir oluşturulması sağlanabilir. Bu uygulamanın çalıştırılması, fls'nin "-m" parametresi ile çalıştırılmasına eşdeğerdir.
  • tsk_loaddb: Bu araç imaj, volume ve dosyalara ilişkin metadata bilgilerini bir SQLite veritabanına kaydedilmesini sağlar. Bu veritabanı daha sonradan başka uygulamalar tarafından kullanılabilir.
  • tsk_recover: Bir disk imajı içindeki unallocated (veya allocated) dosyaları yerel bir dizine çıkartmak için kullanılır.

​Şimdi sırasıyla bu kit içindeki uygulamaların adli bilişim incelemelerinde ne amaçla kullanılabileceğine değinelim. Her bir uygulama için yarı birer makale yazmayı planladığım için bu makalede sadece temel manada ne amaçla kullanılabileceklerine değineceğim.

Dosya Sistemi Katmanı Araçları

  • fsstat: Dosya sistemi hakkında detayları ve istatistikleri gösterir.

Dosya Adı Katmanı Araçları

  • ffind: Kendisine parametre olarak verilen bir inode yada cluster numarasına ait allocated yada unallocated dosya ismini gösterir.
  • fls: Kendisine parametre olarak verilen bir inode yada cluster numarasına ait dosya yada dizin kayıtlarını gösterir.

Meta Data Katmanı Araçları

  • icat: Disk imajı içindeki bir dosyanın içeriğinin STDOUT'a basar. Unix sistemlerdeki cat ile aynı işlevi görür fakat parametre olarak dosyanın adını değil, dosyaya ilişkin meta data adresini (örneğin inode numarası gibi) alır.
  • ifind: Block veya cluster gibi veri birimleri ile metadata adresleri arasındaki eşleştirmeyi bulmak için kullanılır. Aynı şekilde bir dosya ismini de girdi olarak alabilir. Kendisine girdi olarak verilen dosya ismi yada block veya cluster numarasını karşılık gelen metadata adresini bulur (örneğin inode numarasını gibi.)
  • ils: Kendisine girdi olarak verilen imaj içindeki dosya sisteminde yer alan metadata yapısını ve bunların içeriklerini ekrana ayrılmış şekilde basar. Bu uygulamanın çıktısı başka uygulamalara girdi olarak kullanılabilir.
  • istat: Kendisine girdi olarak verilen meta data adresi hakkında istatistiki ve detaylı bilgileri kolay okunabilir formatta sunar.

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.

Dosya Sistemi Journal Araçları

Bu araçlar bazı dosya sistemlerindeki journallar üzerinde işlem yaparlar. Metadata üzerinde yada bazende içerik üzerinde yapılan değişiklikleri journal kaydeder. Bu özellik en son silinmiş dosyaların kurtarılmasında yardımcı olabilir. Ext3 ve NTFS'de journal vardır.

  • jcat: Belirlenen journal bloğunun içeriğini gösterir.
  • jls: Dosya sistemi journali içindeki kayıtları listeler.

Volume Sistem Araçları

Bu araçlar bir disk imajını girdi olarak alıp bu diskin bölüm yapısını analiz ederler.

  • mmls: Diskin mimarisi hakkında bilgi verir.
  • mmstat: Volume sistemi hakkında detaylı bilgi verir.
  • mmcat: Belirtilen spesifik volume'ün içeriğini çıkartıp STDOUT'a basar.

İmaj Dosyası Araçları

Bu kategoride yer alan uygulamalar imaj dosya formatları ile ilgili işlem yapmaya imkan tanıyan uygulamalardır.

  • img_stat: Girdi olarak kendisine verilen imaj dosyasının formatını çıktı olarak verir.
  • img_cat: Kendisine girdi olarak verilen imaj dosyasının başlangıç ve bitiş sektörleri arasında kalan kısmına ait raw içeriği ekrana basar.

Disk Araçları

Bu kategorideki araçlar bir ATA diskte Host Protected Area (HPA)'nın olup olmadığını tespit etmeye ve varsa bu alanı kaldırmaya yarar.Bu araçlar sadece Linux işletim sistemleri üzerinde çalışır.

  • disk_sreset: Bu araç diskteki HPA'yı geçiçi olarak kaldırır. Diskin enerjisinin kesilip yeniden başlatılması durumunda HPA aktif hale gelir.
  • disk_stat: Disk üzerinde bir HPA olup olmadığını tespit etmek için kullanılır.

Diğer Araçlar

  • hfind: İkili sıralama algoritmasını kullanarak NIST NSRL, Hashkeeper yada md5sum ile oluşturulmuş bir hash veritabanı içindeki hash değerlerinin indeksini oluşturmaya yarayan araçtır.
  • mactime: fls veya ils araçlarının çıktılarını girdi olarak alan ve dosya aktiviteleri için bir timeline oluşturan araçtır.
  • sorter: Dosya türlerine göre dosyaları sınıflayan ve uzantı kontrolü ile hash veritabanı sorgulaması yapmayan imkan tanıyan araçtır.
  • sigfind: Kendisine girdi olarak verilen ikili değeri yine kendisine girdi olarak verilen offset'den itibaren arayan bir uygulamadır.

Son olarak TSK içinde yer alan uygulamaların parametre alırken nelere dikkat ettiklerine değinerek bu makaleyi bitirelim. TSK içindeki uygulamaların tamamına zorunlu olarak analiz yapılacak disk yada partition imajının adı girdi olarak verilir. Bunun yanında genellikle ikinci bir parametre daha alırlar ve bu parametre de genellikle bir adres olur. Girdi olarak kullanılacak imaj dosyası bölünmüş bir imaj dosyası olabileceği gibi, tek parça bir imaj dosyası da olabilir ve bu uygulamalar raw, EnCase veya AFF formatındaki imajlar üzerinde çalışabilirler. Aşağıda TSK içinde yer alan uygulamalardan iki tanesinin örnek kullanımı açıklamalarıyla birlikte verilmiştir.

mmls able2.dd ->Bu uygulama sadece imaj dosyasının adını girdi olarak alıyor.

blkcat able2.dd 200 3 -> Bu uygulama ise girdi olarak sadece imaj dosyasının adını değil, blok başlangıç adresini ve blok sayısını da parametre olarak alıyor.

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.