← Ana Sayfaya Dön

OverTheWire Bandit: Seviye 19 → Seviye 20

Teknik Not

Bağlam

Normalde Linux’ta bir programı çalıştırdığınızda, o program sizin yetkilerinizle çalışır. Eğer siz bir dosyayı okuyamıyorsanız, çalıştırdığınız program da okuyamaz.

Ancak SUID (Set User ID) bit’i ayarlanmış programlar istisnadır. Bu programlar, dosya sahibinin yetkileriyle çalışır. Örneğin passwd komutu root yetkisiyle çalışır ki bu sayede herkes kendi şifresini değiştirebilir (root’un dosyalarına yazarak).

Bu seviyede bize bandit20-do adında SUID bit’i olan bir program verilmiş. Sahibi ise bandit20.

Hedef

bandit20-do programını kullanarak, normalde okuma iznimiz olmayan /etc/bandit_pass/bandit20 dosyasını okumak.

Çözüm

Adım 1: Dosyayı İncele

Önce ev dizinine bakalım:

ls -la

Çıktıda şuna benzer bir satır göreceksiniz: -rwsr-x--- 1 bandit20 bandit19 14876 ... bandit20-do

  • Dosyanın sahibi: bandit20.
  • İzinlerdeki s harfi: SUID. Yani bu programı kim çalıştırırsa çalıştırsın, program kendini bandit20 zannederek çalışacak.

Adım 2: Programı Test Et

Programın ne yaptığını anlamak için argümansız çalıştıralım:

./bandit20-do

Çıktı: Run a command as another user. Example: ./bandit20-do id

Görünüşe göre bu program, ona verdiğimiz herhangi bir komutu bandit20 olarak çalıştırıyor. sudo’nun basitleştirilmiş hali gibi!

Hemen test edelim:

./bandit20-do id

Çıktı: uid=11019(bandit19) gid=11019(bandit19) euid=11020(bandit20) ...

Dikkat edin: euid (Effective User ID) bandit20 olarak görünüyor. Yani şu an o programın gözünde biz bandit20yiz.

Adım 3: Şifreyi Al

Artık bandit20 olduğumuza göre, onun şifre dosyasını okuyabiliriz:

./bandit20-do cat /etc/bandit_pass/bandit20

Çıktı:

GbKksEFF4yrVs6il55v6gwY5aVje5f0j

Tebrikler, yetki yükseltme (Privilege Escalation) yaptınız!

Öğrendiklerimiz

  1. SUID (SetUID): Bir dosyanın izinlerinde s harfi ile gösterilir. Bu dosyayı çalıştıran kişi geçici olarak dosya sahibinin haklarını kazanır. Güvenlik açısından çok kritiktir.
  2. Effective UID: İşletim sisteminin izin kontrolleri yaparken baktığı “gerçekte kim bu?” kimliğidir.