Rehber › Kategori Rehberleri
Kategori Rehberleri

Steganografi CTF: Gizli Veriyi Bulma Sanatı

Steganografi, bir dosyanın içine gözle görünmeyecek şekilde başka bir veri saklamaktır. Bu rehberde bir görselin, ses dosyasının veya metnin içine saklanan flag'i hangi yöntemlerle ve hangi araçlarla ortaya çıkaracağını sıfırdan öğreneceksin.

Özet
  • Steganografi = veriyi "görünmez" saklama; kriptografiden farkı, verinin varlığını bile gizlemesidir.
  • Her dosyaya önce şu 4 komutu uygula: file, strings, exiftool, binwalk.
  • En sık teknikler: LSB (en önemsiz bit), metadata (EXIF), dosya sonuna veri ekleme ve zero-width karakterler.
  • Ses dosyasında flag çoğu zaman spektrogramda gizlidir; Audacity ile bakılır.
  • Doğru araca gitmeden önce hipotez kur: "Bu veri nereye saklanmış olabilir?"

Steganografi tam olarak nedir?

Steganografi, bir veriyi başka bir masum görünen dosyanın içine saklama sanatıdır. Kelime Yunanca "gizli yazı" anlamına gelir. Bir kedi fotoğrafı ekranda tamamen normal görünürken, piksellerinin arasında bir flag saklı olabilir.

Bunu kriptografi ile karıştırma. Kriptografi veriyi okunamaz hale getirir; herkes şifreli metnin var olduğunu görür ama içeriğini çözemez. Steganografi ise verinin var olduğunu gizler. CTF'te ikisi sık sık birlikte kullanılır: önce gizlenmiş veriyi bulursun, sonra o veri şifreliyse çözersin. CTF'in ne olduğunu hiç bilmiyorsan önce CTF Nedir? yazısına göz atmanı öneririm.

İlk 60 saniye: her dosyaya uygulanan kontroller

Bir stego challenge'ında dosyayı indirdiğinde paniklemeden önce refleks hâline getirmen gereken dört komut var. Bunlar zamanın en az yarısında flag'i doğrudan verir. Bu araçlar Kali Linux'ta hazır gelir; kendi bilgisayarında da apt install ile kurulur.

  1. file — Dosyanın gerçekte ne olduğunu söyler. Uzantı .jpg olabilir ama içerik aslında bir ZIP olabilir.
    file gizemli.png
  2. strings — Dosyanın içindeki okunabilir metin parçalarını döker. Flag düz metin olarak saklanmışsa anında görürsün.
    strings gizemli.png | grep -i flag
  3. exiftool — Görselin metadata (EXIF) alanlarını okur. Flag çoğu zaman "Comment", "Artist" veya "Description" alanına yazılmıştır.
    exiftool gizemli.jpg
  4. binwalk — Bir dosyanın içine gömülmüş başka dosyaları tespit eder. Bir görselin sonuna eklenmiş ZIP'i böyle bulursun.
    binwalk gizemli.png

Bu dört kontrolü hiç atlamadan yaparsan zaten yolun yarısını almış olursun.

Görselde veri saklama yöntemleri

Stego challenge'larının çoğu görsel dosyalarla gelir. En sık karşına çıkacak dört teknik şunlar:

1. LSB (En Önemsiz Bit)

Bir pikselin rengi sayılarla ifade edilir (örneğin kırmızı = 200). Bu sayının en son bitini değiştirirsen renk gözle fark edilmeyecek kadar az kayar (200 yerine 201). İşte gizli veri o son bitlere gizlenir. Binlerce pikselin son bitini birleştirince flag ortaya çıkar. PNG ve BMP için zsteg, görsel inceleme için StegSolve bu işin klasik araçlarıdır.

zsteg gizemli.png

2. Metadata (EXIF)

Fotoğraflar çekildikleri cihaz, tarih gibi bilgileri metadata olarak taşır. Challenge yazarı flag'i buraya elle ekleyebilir. Çözümü exiftool. Bu en kolay saklama yöntemidir; bu yüzden ilk kontrolün arasındadır.

3. Dosya sonuna veri ekleme (appended data)

Görsel formatları belirli bir "bitiş işareti" ile sonlanır. Programlar o işaretten sonrasını okumaz ama veri orada durmaya devam eder. Yani bir JPEG'in sonuna koca bir ZIP yapıştırabilirsin; görsel hâlâ açılır. binwalk bunu görür, çıkarmak için:

binwalk -e gizemli.jpg

Bu teknik forensics kategorisiyle de yakından akrabadır, çünkü ikisi de dosyanın ham yapısına bakar.

4. Parola korumalı gömme (steghide)

steghide, JPEG ve WAV dosyalarına parolayla veri gömer. Parola çoğu zaman challenge'ın açıklamasında, görselin adında ya da metadata'da bir ipucu olarak saklıdır.

steghide extract -sf gizemli.jpg

Ses dosyalarında gizli veri

Bir .wav veya .mp3 dosyası verildiyse ilk şüphen spektrogram olmalı. Ses, frekanslara göre görselleştirildiğinde saklı bir yazı ya da desen "çizilmiş" olabilir. Sesi dinlerken hiçbir şey duymazsın ama spektrograma bakınca flag kelime kelime karşına çıkar.

Zero-width ve metin steganografisi

Bazen dosya bile verilmez; sana sadece bir metin verilir. Metin normal görünür ama içinde zero-width (sıfır genişlikli) karakterler gizlidir. Bunlar ekranda hiç yer kaplamayan görünmez Unicode karakterlerdir: zero-width space (U+200B), zero-width non-joiner (U+200C) gibi. Bu karakterlerin varlığı/yokluğu 0 ve 1'e karşılık gelir ve bir mesaj kodlar.

Nasıl fark edersin? Metni kopyalayıp bir hex editöre yapıştırırsan, gözle görünmeyen bu fazladan baytlar ortaya çıkar. Çevrimiçi "zero-width detector" araçları veya kısa bir Python betiği bu karakterleri ayıklayıp mesajı çözer. Metnin uzunluğu görünenden fazlaysa şüphelen.

Nereden başlamalı ve dürüst çerçeve

Steganografi bir hipotez oyunudur: "Bu veri nereye saklanmış olabilir?" diye sorar, sonra o hipotezi test edecek aracı seçersin. Ezber değil, refleks kazanmak gerekir. En iyi öğrenme yolu bol bol pratik yapmak.

Öğrendiğin bu teknikleri stego kategorisindeki challenge'lar üzerinde dene; kolaydan zora doğru ilerle. Farklı konulara da göz atmak istersen Rehber sayfasındaki diğer kategori yazılarına bakabilirsin.

Son olarak: bu araçlar ve teknikler yalnızca eğitim ve yetkili CTF ortamları içindir. Amaç, gizlenmiş verinin nasıl saklandığını ve nasıl fark edileceğini öğrenerek hem daha iyi bir çözücü hem de saklanan verileri tespit edebilen daha bilinçli bir savunmacı olmaktır.

Sıkça Sorulan Sorular

Steganografi ile kriptografi aynı şey mi?

Hayır. Kriptografi veriyi okunamaz hale getirir ama şifreli verinin var olduğu bellidir. Steganografi ise verinin var olduğunu bile gizler. CTF'te ikisi birlikte de kullanılabilir: önce gizli veriyi bulur, sonra şifreliyse çözersin.

Bir stego challenge'ında ilk ne yapmalıyım?

Dosyaya sırayla file, strings, exiftool ve binwalk komutlarını uygula. Bu dört kontrol, saklanan verinin büyük bölümünü daha derine inmeden ortaya çıkarır. Sonuç çıkmazsa LSB veya spektrogram gibi ileri tekniklere geç.

LSB ne demek ve neden gözle görünmüyor?

LSB, bir pikselin renk değerinin en son (en önemsiz) bitidir. Bu biti değiştirmek rengi gözle fark edilemeyecek kadar az kaydırır, bu yüzden görsel normal görünür. Gizli veri işte bu son bitlere saklanır ve zsteg gibi araçlarla okunur.

Ses dosyası verildi ama içinde hiçbir şey duymuyorum, ne yapmalıyım?

Sesi Audacity veya Sonic Visualiser ile açıp görünümü spektrograma çevir. Flag çoğu zaman ses olarak değil, frekans grafiğine çizilmiş bir yazı olarak saklanır. Tıkırtılı sesler ise LSB gizlemesine işaret edebilir.

Bu araçları kullanmak yasal mı?

exiftool, binwalk, strings gibi araçlar tamamen yasal analiz araçlarıdır ve kendi dosyalarında ya da yetkili CTF ortamlarında serbestçe kullanılır. Önemli olan, öğrendiklerini yalnızca izinli/eğitim ortamlarında ve savunma amacıyla uygulamandır.

Hadi pratiğe dök

Bu rehberdeki teknikleri Steganografi kategorisindeki gerçek challenge’larda dene.

Steganografi Challenge’ları →

Devam et