← Ana Sayfaya Dön

OverTheWire Bandit: Seviye 6 → Seviye 7

Teknik Not

Ön Hazırlık

Bu seviyeye başlamadan önce bir önceki seviyeden (Level 5) aldığınız şifre ile bandit6 kullanıcısına geçiş yapmalısınız: ssh bandit6@bandit.labs.overthewire.org -p 2220

Bağlam

Önceki seviyede sadece bulunduğumuz klasörde (inhere) arama yapmıştık. Ancak gerçek dünyada aradığımız dosyanın yerini bilmiyorsak, tüm dosya sistemini (/) taramamız gerekebilir.

Bu durumda karşımıza büyük bir engel çıkar: İzin Hataları. Normal bir kullanıcı olarak tüm sistemi taramaya kalktığımızda, erişim iznimiz olmayan her klasör için “Permission denied” hatası alırız ve ekranımız kirlenir.

Bu seviye, hem sahiplik (ownership) kavramını hem de hata mesajlarını nasıl yönetebileceğimizi öğretiyor.

Hedef

Şifre, sunucunun herhangi bir yerinde saklanıyor ve şu özelliklere sahip:

  1. owned by user bandit7 (Sahibi bandit7 kullanıcısı)
  2. owned by group bandit6 (Grubu bandit6 grubu)
  3. 33 bytes boyutunda

Çözüm

Aramaya kök dizinden (/) başlamalıyız.

İlk deneme (Hatalı Yöntem):

find / -user bandit7 -group bandit6 -size 33c

Bunu çalıştırdığınızda yüzlerce “Permission denied” hatası göreceksiniz. Aradığımız sonuç bu hataların arasında kaybolur.

Hata Mesajlarını Gizlemek (Error Redirection)

Linux’ta standart çıktı (stdout) 1, standart hata (stderr) 2 numaralı kanaldır. Hataları “hiçlik” (/dev/null) cihazına yönlendirerek gizleyebiliriz:

find / -user bandit7 -group bandit6 -size 33c 2>/dev/null

Komutun Analizi:

  • /: Kök dizinden başla.
  • -user bandit7: Sahibi bandit7 olan dosyalar.
  • -group bandit6: Grubu bandit6 olan dosyalar.
  • -size 33c: Boyutu tam 33 bayt olanlar.
  • 2>/dev/null: Hata mesajlarını (stderr) çöpe at.

Çıktı:

/var/lib/dpkg/info/bandit7.password

Sonucu bulduk! Okuyalım:

cat /var/lib/dpkg/info/bandit7.password
# Şifre ekrana gelir

Öğrendiklerimiz

  1. Sahiplik Filtreleri: find komutu -user ve -group parametreleri ile dosya sahibine göre arama yapabilir.
  2. Stderr Redirection (2>): Linux’ta temiz bir çıktı almak için hata mesajlarını yönlendirmek hayati bir yetenektir. /dev/null Linux’un kara deliğidir; oraya gönderilen her şey yok olur.