← Ana Sayfaya Dön

OverTheWire Bandit: Seviye 25 → Seviye 26

Teknik Not

Bağlam

Bu seviye, Hacker filmlerini aratmayacak bir taktik içeriyor. Elimizde bandit26 için bir SSH anahtarı var, ancak giriş yaptığımızda sistem bizi hemen atıyor (kicked out). Çünkü bandit26 kullanıcısının kabuğu (shell) standart /bin/bash değil, bizi kısıtlayan bir script.

Hedefimiz: Bu kısıtlı ortamdan “kaçmak” (jailbreak/shell escape) ve gerçek bir shell almak.

Çözüm

Adım 1: SSH Anahtarını Kopyala

bandit26 anahtarı dizinimizde. Not: OverTheWire sunucuları kaynak tasarrufu için localhost üzerinden SSH bağlantılarını engeller. Yani bandit25 içinden direkt bağlanamayız.

Anahtarı kendi bilgisayarımıza almalıyız:

  1. Anahtarı ekrana yazdır: cat bandit26.sshkey
  2. İçeriği kopyala.
  3. Kendi bilgisayarınızda bir dosya oluşturun (örn: bandit26.key) ve yapıştırın.
  4. İzinleri ayarlayın: chmod 600 bandit26.key

Adım 2: Terminali Küçült (Trick Noktası)

Sistemin kullandığı script, more komutunu kullanarak ekrana yazı basıyor. more komutunun bir özelliği vardır: Eğer metin ekrana sığmazsa durur ve sizden komut bekler (--More--).

İşte açığımız bu!

  1. Terminal pencerenizi farenizle iyice küçültün. Sadece 5-10 satır kalsın.
  2. Kendi bilgisayarınızdan SSH ile bağlanın:
ssh -i bandit26.key bandit26@bandit.labs.overthewire.org -p 2220

Artık bağlantı kapanmayacak, altta --More-- yazısını (%0 veya benzeri) göreceksiniz. Sakın Enter veya Space’e basıp yazıyı bitirmeyin!

Adım 3: ‘vi’ Editörüne Geçiş

more programı çalışırken v tuşuna basarsanız, o anki içeriği düzenlemek için vi editörünü başlatır.

  1. --More-- yazısını görünce klavyeden v tuşuna basın.
  2. Şu an vi editörünün içindesiniz.

Adım 4: Shell Çağırma (Shell Spawning)

vi çok güçlüdür, içinden sistem komutları çalıştırılabilir.

  1. vi içindeyken Esc tuşuna basın (garanti olsun).
  2. Şu komutu yazın ve Enter’a basın (bu vi’ın kullanacağı shell’i ayarlar): :set shell=/bin/bash
  3. Şimdi shell’i başlatın: :shell

Adım 5: Özgürlük

Tebrikler! Komut satırına düştünüz. Kim olduğunuzu kontrol edin:

whoami
# Çıktı: bandit26

Artık sistemde bandit26 yetkileriyle özgürce dolaşabilirsiniz. Şifreyi almak için bir sonraki seviyeye geçelim, çünkü şifre dosyası bandit26 kullanıcısının ev dizininde değil. (Aslında şifreyi şu an kullanmıyoruz, SSH Key ile giriş yaptık).

Öğrendiklerimiz

  1. Restricted Shells (Kısıtlı Kabuklar): Kullanıcının hareket alanını sınırlamak için /bin/bash yerine özel scriptler konulabilir.
  2. GTFOBins: Sistem üzerindeki standart programları (more, vim, less, man vb.) kullanarak yetki yükseltme veya kısıtlama aşma yöntemlerinin toplandığı bir konsepttir. more ve vi buna klasik örnektir.