PicoCTF: Riddle Registry Nasıl Çözülür?

Siber güvenlik dünyasına adım atan her meraklı yolun başında PicoCTF platformuyla el sıkışır. Bazı CTF soruları vardır ki sizi labirentlerin içine sokar; bazıları ise “sağ gösterip sol vuran” cinstendir. Bugün, hem eğlendiğim hem de “tavşan deliklerine” (rabbit holes) düşmemeyi öğreten Riddle Registry sorusunun çözümünü adım adım inceleyeceğiz.

1. PicoCTF: Riddle Registry İlk Keşif
Soruyu başlattığımızda karşımıza bir PDF dosyası çıkıyor. Dosyayı indirip standart bir PDF görüntüleyici ile açtığımızda, metnin bazı kısımlarının siyah bantlarla karartıldığını görüyoruz. İlk refleksimiz, bayrağın (flag) bu gizlenmiş sözcüklerin altında olduğunu düşünmek oluyor.
Ancak siber güvenlikte altın kural: En bariz görünen ipucu, genellikle sizi oyalamak için oradadır.

Gizlenen kelimelerin flag olmadığını kanıtlamak için basit ama etkili bir yöntem kullandım: Tüm metni CTRL + A ile seçip kopyaladım ve bir çeviri aracına yapıştırdım. Metin ortaya çıktığında karşılaştığımız şey, hazırlayan kişinin bizimle dalga geçtiği o meşhur cümleydi: “Burada flag yok. İyi denemeydi!” Siber güvenlik literatüründe, analisti asıl hedeften uzaklaştıran bu tür sahte ipuçlarına “Tavşan Deliği” (Rabbit Hole) diyoruz.

2. Derin Analiz: Exiftool ile Gizli Verileri Gün Yüzüne Çıkarmak
Tavşan deliğinden çıktığımıza göre, dosyanın görsel yüzünü bırakıp teknik detaylarına, yani Metadata (Üst Veri) kısmına bakmamız gerekiyor. Bu aşamada imdadımıza Kali Linux’un vazgeçilmezi olan Exiftool yetişiyor.
Exiftool, dosyaların içine gömülü olan gizli bilgileri (yazar ismi, oluşturulma tarihi, konum vb.) görmemizi sağlar. Kullanımı oldukça basittir:
Bash
exiftool confidential.pdf

Terminalde bu komutu çalıştırdığımızda karşımıza çıkan listede bir satır hemen dikkat çekiyor: Author (Yazar).

Yazar kısmında normal bir isim yerine, sonunda “ = " işareti bulunan karmaşık bir karakter dizisi görüyoruz:
3. Son Adım: Base64 Deşifre İşlemi
Metadata alanında bulduğumuz bu dizilim, tipik bir Base64 kodlamasıdır. Bu şifreli metni çözmek için terminalin gücünden yararlanıyoruz:
Bash
echo "sifreli_metin" | base64 -d

Enter’a bastığımız anda flag (bayrak) tüm netliğiyle karşımıza çıkıyor!
” NASIL ÇALIŞTI “
1. echo "sifreli_metin"
Bu komutun görevi basittir: tırnak içindeki metni terminalin standart çıktısına (stdout) yazdırır. Yani sadece ekrana basar.
2. | (Pipe – Boru İşareti)
Linux’un en güçlü özelliklerinden biridir. Solundaki komutun çıktısını (yani ekrana basılan şifreli metni), sağındaki komuta girdi (input) olarak gönderir. Bir nevi veri köprüsü kurar.
3. base64
Bu, sistemdeki Base64 kodlama ve kod çözme aracıdır. Varsayılan olarak kendisine gelen veriyi Base64 formatına çevirmeye çalışır.
4. -d (Decode) Parametresi
Komutun en kritik parçasıdır.
-d(veya--decode): Base64 aracına “sana gelen veriyi kodlama, aksine çöz (deşifre et)” talimatını verir. Eğer bu parametreyi koymazsan, elindeki şifreli metni tekrar şifrelemeye çalışır ve anlamsız bir çıktı alırsın.
Çıkarılan Dersler
Bu çözümden öğrenmemiz gereken üç önemli nokta var:
- Görsel Yanılsamalar: PDF üzerindeki karartmalar her zaman veri saklamak için değildir; bazen sadece dikkatinizi dağıtmak içindir.
- Metadata Analizinin Gücü: Dosyaların üst verileri, çoğu zaman dosya içeriğinden daha fazla bilgi barındırır.
- Basit Araçlar, Büyük İşler:
exiftoolvebase64gibi temel komutlar, en karmaşık görünen CTF’lerin anahtarı olabilir. - Kısa yollar: base64 kodlama mantığını bilmiyorsanız terminalde vakit kaybederim diye düşünüyorsanız biyerden aşağı atlayın yada tarayıcınızda cybercheff sitesine gidip şifre çözümlemelerinizi orada yapın. Terminal candır…