← Ana Sayfaya Dön

OverTheWire Bandit: Seviye 4 → Seviye 5

Teknik Not

Bağlam

Siber güvenlik analizlerinde sıkça karşımıza çıkan bir durum: Elimize bir dosya geçer ancak uzantısı yoktur veya yanlış uzantılıdır.

Windows dünyasında .exe çalıştırılabilir dosyadır, .jpg resimdir. Linux’ta ise işler böyle yürümez. Linux aslında dosya uzantılarını (extensions) pek umursamaz. Dosyanın “ne” olduğuna, içindeki Magic bytes (Sihirli Baytlar) ve içeriğine bakarak karar verir.

Bu seviye, bize dosya türlerini nasıl analiz edeceğimizi öğretiyor.

Hedef

inhere klasörü içindeki dosyaların tamamı anlamsız isimlere sahip (örneğin -file00). Şifre, insan tarafından okunabilir (human-readable) olan tek dosyanın içinde saklı.

Çözüm

Önce klasörü inceleyelim:

ls -F
# inhere/

Klasör olduğunu gördük, içine girelim ve listeyelim:

cd inhere
ls -la

Karşımıza şöyle bir karmaşa çıkacak:

-file00
-file01
-file02
...
-file09

Hepsi aynı boyutta ve aynı isim yapısında görünüyor. Tek tek cat ile bakmaya çalışırsak ekranımız bozulabilir (çünkü binary dosyalar terminali çökertebilir).

İşte burada file komutu hayat kurtarır. Bu komut, dosyayı açmadan başındaki “imza” (signature) verisine bakar ve türünü söyler.

Tüm dosyaları tek seferde taramak için wildcard (*) kullanalım:

file ./*

Çıktı:

./-file00: data
./-file01: OpenPGP Public Key
./-file02: OpenPGP Public Key
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: data

Gördüğünüz gibi, -file07 hariç hepsi sadece saf data (binary veri). Ancak -file07 ASCII text yani düz metin olarak işaretlenmiş.

Hedefimizi bulduk:

cat ./-file07
# Şifre ekrana gelir

Öğrendiklerimiz

  1. file Komutu: Bir dosyanın türünü (resim mi, metin mi, çalıştırılabilir mi) anlamanın en güvenilir yoludur. Uzantıya güvenmeyin, file komutuna güvenin.
  2. Binary vs Text: “Data” olarak görünen dosyalar genellikle okunamaz binary verilerdir. “ASCII text” veya “UTF-8 Unicode text” ise bizim okuyabileceğimiz metin dosyalarıdır.
  3. Wildcard (*): Komutları tek tek yazmak yerine, * karakteri ile o klasördeki her şeye aynı işlemi uygulayabiliriz (file ./* gibi).