The Sleuth Kit (TSK) Uygulamaları İle Adli Bilişim İnceleme Örnekleri – 1

The Sleuth Kit (TSK) Uygulamaları İle Adli Bilişim İnceleme Örnekleri – 1
[EXHIBIT_A] Featured evidence

The Sleuth Kit (TSK) uygulamaları ile dosya sistemi seviyesinde gerçekleştirilebilecek adli bilişim analizlerini ele aldığımız yazı dizimizden sonra şimdi de bu uygulamaların kullanım örneklerini ele alacağımız bir yazı dizisine başlıyoruz. Daha önce yazdığımız yazı dizimizde sırasıyla ilk makalede adli bilişim incelemelerinde dosya sistemi seviyesinde analiz yapmamıza imkan tanıyan The Sleuth Kit (TSK) uygulamalarına genel bir bakış atmış, ikinci makalede mmls ile fsstat'ın kullanımına değinmiş ve üçüncü makalede ise blkcat, blkstat, blkls gibi veri katmanı üzerinde işlem yapmamıza imkan tanıyan uygulamaları ele almıştık. Son makalemizde ise Metadata Katmanı (Metadata Layer) üzerinde işlem yapmamıza imkan tanıyan araçlar olan ifind, istat ve icat uygulamalarını incelemiştik. İlgili makaleleri okumak için aşağıdaki linklere tıklayabilirsiniz.

http://halilozturkci.com/adli-bilisim-the-sleuth-kit-tsk-ile-file-system-forensics-1

http://halilozturkci.com/adli-bilisim-the-sleuth-kit-tsk-ile-file-system-forensics-2/

http://halilozturkci.com/adli-bilisim-the-sleuth-kit-tsk-ile-file-system-forensics-3/

http://halilozturkci.com/adli-bilisim-sleuth-kit-tsk-ile-file-system-forensics-4/

Bu yazı dizimizde izlediğimiz adımları sizler de kendi sistemleriniz üzerinde takip edebilirsiniz. Örneklerde kullanacağımız imaj dosyası olan able2.dd imajını http://linuxleo.com/Files/able2.tar.gz adresinden indirebilirsiniz. Bu sıkıştırılmış dosya içinde yer alam able2.dd imaj dosyasının hash değeri aşağıdajki ekranda gösterilmiştir.

exhibit_viewer.exe
TheSleuthKit_Ornekleri_01
[EXHIBIT] TheSleuthKit_Ornekleri_01

Şimdi örnek senaryomuza geçebiliriz. Bu senaryomuzda ilgili disk imajı içinde yer alan silinmiş dosyaları TSK araçları ile nasıl tanımlayabileceğimizi ve ardından bu dosyaları yine TSK araçları ile nasıl kurtarabileceğimizi göreceğiz. Senaryoyu ve senaryoda takip edeceğimiz adımları aşağıdaki şekilde özetleyebiliriz.

Amaç: able2.dd isimli disk imajı içindeki silinmiş dosyaları kurtarmak.

Araçlar: TSK uygulamaları.

Adımlar:

  • Partition Table’ını Öğren (mmls)
  • Dosya Sistemi Detaylarını Öğren (fsstat)
  • Dosya Sisteminde Gezin (fls)
  • Silinmiş Dosyaları Tespit Et (fls)
  • Silinmiş Dosyaları Kurtar (icat)

Şimdi sırasıyla bu adımları izleyerek silinmiş dosyaları kurtaralım. Bu aşamada çalıştırdığımız komutlar ve komut parametreleri için ilgili aracın anlatıldığı blog yazısına bakmayı ihmal etmeyin 🙂

Öncelikle elimizdeki imajın bir disk imajı olduğundan yola çıkarak ilgili diskteki bölüm (partition) bilgisini mmls yardımı ile öğreniyoruz. Aşağıda mmls komutunun çalıştırılması sonucunda elde edilen çıktının yer aldığı ekran görüntüsü bulunmaktadır.

exhibit_viewer.exe
TheSleuthKit_Ornekleri_02
[EXHIBIT] TheSleuthKit_Ornekleri_02

Bir sonraki aşamada 3 numaralı bölüm hakkında detaylı bilgiyi öğrenmek için aşağıda gösterildiği gibi fsstat uygulamasını çalıştırıyoruz ve ilgili dosya sisteminin ext2 olduğunu öğreniyoruz. Aynı zamanda ilgili disk bölümünün düzgün şekilde unmount edilmediği bilgisini de aynı çıktıdan okuyabiliyoruz.

exhibit_viewer.exe
TheSleuthKit_Ornekleri_03
[EXHIBIT] TheSleuthKit_Ornekleri_03

Bir önceki adımda detaylarını öğrendiğimiz disk bölümünde hangi dosyaların yer aldığını öğrenmek için fls uygulamasını çalıştırıyoruz ve karşımıza aşağıdaki ekran görüntüsü çıkıyor.

exhibit_viewer.exe
TheSleuthKit_Ornekleri_04
[EXHIBIT] TheSleuthKit_Ornekleri_04

Yukarıdaki ekran görüntüsünde yer alan dosya ve dizin isimlerinden isimlerinin ilk harfi . olan dosya ve dizin dikkatimizi çekiyor. Bu dosya ve dizin gizli (hidden) olacak şekilde oluşturulan birer dosya ve dizin. Bunu bir yere not edip analizimize devam ediyoruz. Fls uygulamasını aşağıdaki parametreler ile çalıştırarak ilgili sadece disk bölümü içinde yer alan silinmiş dosyaların listesini elde ediyoruz.

exhibit_viewer.exe
TheSleuthKit_Ornekleri_05
[EXHIBIT] TheSleuthKit_Ornekleri_05

Burada yer alan ifadelerin en anlama geldiğini anlamlandırmak için fls'in ne iş yaptığını tekrardan hatırlayalım. fls "Dosya Adı Katmanı"nda çalışır ve bu fls çıktısında yer alan realloc ifadesi dosya isminin unallocated olarak işaretlendiğini gösterir. Yani, silinen dosyaya ait inode, başka bir dosyaya atanmış olabilir. Silinen dosyaya ait inode başka bir dosyaya atanmış olsa dahi bizim bu dosyaya ait dosya adı katmanındaki verileri görebiliyor olmamızın temel sebebi şudur;

  • Dosya Adı Katmanı ile Metadata Katmanı birbirinden bağımsızdır fakat her bir dosya için bu iki katmanda da birer kayıt bulunur ve her bir kayıdın kendine ait bir allocation durumu vardır.
  • Eğer bir dosya silindi olarak işaretlenirse (yani silinirse) bu katmanlardaki kayıtların ikisi de unallocated olarak işaretlenir. Bunun yanında eğer bir dosya "realloc" olarak işaretlenmişse bu şu anlama gelir; bu dosyaya ilişkin dosya adı unallocated, metadatası ise allocated durumdadır.

Aşağıdaki durumlar buna sebep olabilir;

  • Dosyanın ismi değiştirilmişse ve yeni dosya adı için dosya adı katmanında yeni bir kayıt oluşturulmuşsa,
  • NTFS tarafından isimler yeniden sıralanmışsa (bu durumda ismin eski kopyası unallocated olacaktır)
  • Dosya silinmiş ve dosyaya ait metadata adresi başka bir dosyaya atanmışsa

İlk iki durumda metadata, silinen dosya adına tam karşılık gelir. Fakat üçüncü durumda metadata artık yeni dosyaya karşılık gelir.

Bu bilgiler ışığında veri kurtarma işlemine devam edelim. Örnek olarak kurtaracağımız dosya yukarıdaki çıktıda yer alan ve inode numarası 2139 olan lrkn.tgz isimli dosya. Fakat yukarıdaki çıktıyı biraz daha dikkatli incelediğimizde 2139 numaralı inode'un iki dosya ismi kaydına denk geldiğini görüyoruz. Aşağıdaki gibi ffind uygumalası ile 2139 numaralı inode'un hangi dosyaları gösterdiği bilgisine ulaşabiliriz.

root@rock:~/able2 # ffind -o 10260 able2.dd 2139

*/dev/ttYZ0/lrkn.tgz

*/root/lrkn.tgz

Her iki dosyanın da silinmiş olduğunu görüyoruz. Bu inode üzerinden istat ile detaylı bilgilere ulaştığımızda karşımıza çıkan bilgiler ise aşağıdaki ekran görüntüsünde yer almaktadır.

exhibit_viewer.exe
TheSleuthKit_Ornekleri_06
[EXHIBIT] TheSleuthKit_Ornekleri_06

İlgili dosyanın 10 Ağustos 2003 tarihinde saat 04:29:58'de silindiğini görebiliriz. Aynı şekilde ilgili dosyaya ilişkin direck block bilgilerine ulaşabiliyoruz. Bu durum bizim silinen dosyaları kurtarabilme ihtimalimizi güçlendirir. Bu kurtarma işlemini gerçekleştirmek için icat uygulamasına ilgili inode bilgisini verip aşağıdaki şekilde çalıştırıyoruz ve ardından file komutunu kullanarak kurtardığımız dosyanın dosya tipi olarak nasıl göründüğünü öğreniyoruz.

exhibit_viewer.exe
TheSleuthKit_Ornekleri_07
[EXHIBIT] TheSleuthKit_Ornekleri_07

Yukarıdaki çıktıdan da görülebileceği üzere silinmiş bir dosyayı başarılı şekilde kurtarabildik. Bir sonraki örnek senaryomuzda elimizdeki "dirty word list" içinde yer alan kelimelerin sabit disk imajları içinde aranıp hangi dosyaların içinde geçtiğinin bulunması senaryosunu ele alacağız.

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.