OverTheWire Bandit: Seviye 4 → Seviye 5
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
fileKomutu: 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,filekomutuna güvenin.- 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.
- Wildcard (*): Komutları tek tek yazmak yerine,
*karakteri ile o klasördeki her şeye aynı işlemi uygulayabiliriz (file ./*gibi).