LİNUX

OverTheWire | Bandit 0–10 Çözüm

Bu yazıda OverTheWire platformunda yer alan ve Linux komutlarını öğrenmek için çok faydalı bir challenge olan https://overthewire.org/wargames/ adresinden erişilebilen 34 seviyesi olan OverTheWire Bandit’in çözümünü 10. seviyesine kadar yapacağım. Diğer kısımların çözümünü ilerleyen yazılarda yapacağım.

Challenge çözümünde her seviyede bir şifre yer almaktadır ve bu şifreler ile bir üst seviyeye geçilmektedir.

İlk olarak Bandit makinesine baktığımızda ssh ile bağlanmamız için gerekli bilgiler verilmiş. Bu bilgiler ile bağlantımızı sağlıyoruz.

ssh [email protected] -p 2220

Giriş yaptıktan sonra ls komutu ile dosyaları listeliyoruz ve readme dosyasını cat komutu ile açarak ilk flagı alıp bu şifre ile bir üst seviyeye geçiyoruz.

cat readme

Bu seviyede ise ismi “-” olan bir dosya karşımıza çıkmakta.

Dosyayı okumak için doğrudan cat komutu ile denersek tire(-) işaretinden sonra sistem bizden bir komut daha isteyecek fakat bu tarz dosyaları açmak için başına ./ koyarak kolayca okuyabiliriz.

cat ./-

Bir sonraki seviyede ise dosya ismi arasında boşluklar olan kelimelerden oluşmaktadır.

Bu dosyayı okumak için dosya adını tırnak işaretleri içine alarak tamamını tek satırda okumasını sağlıyoruz.

cat “spaces in this filename”

Bu seviyede ise gizli bir dosya bulunmakta burada bizden istenen komut ls -la komutu ile gizli dosyaları listelemek.

ls -la komutu ile gizli dosyayı bularak cat komutu ile okuyoruz.

cat .hidden

Bu seviyede bize okunabilir bir dosya olduğunu olacağı söyleniyor.

inhere isimli dosyayı açtığımızda karşımıza birçok dosya gelmekte. Bu dosyaları tek tek okumak yerine dosya tipine bakarak aradığımız flagı bulabiliriz.

file inhere/-file0*

Bu komut ile -file0 ile başlayan dosyaların tipini öğrenerek flagı yakaladık.

Bir sonraki seviyede ise bize okunabilir bir dosya olduğu, 1033 byte olduğu gibi bilgiler verilmiş.

inhere isimli dosyayı açtığımızda birçok dosya ile karşılaşıyoruz. Bize aradığımız dosyanın 1033 byte olduğu bilgisi verilmişti. find komutu ile -size parametresine 1033 byte değerini vererek arama yapıyoruz ve hedefimize ulaşıyoruz.

find -size 1033c

Sonraki seviyede yine bize verilen bilgilere bakarsak userı bandit7 grubu bandit6 ve 33 byte olan bir dosya olduğu bilgisi veriliyor.

Öncelikle tüm sistem içerisinde arama yapacağımız için ana dizine geçiyoruz. Daha sonra bize verilen bilgiler ile find komutunu kullanarak hedefimize ulaşıyoruz.

find -size 33c -user bandit7 -group bandit6

Burada ise data.txt içerisinde millionth kelimesini aramamız gerekiyor.

Dosya içerisinde grep komutu ile millionth kelimesine denk gelen flagı alarak devam ediyoruz.

cat data.txt | grep millionth

Bu seviyede data.txt içerisinde bizi birçok veri karşılayacak. Verilerin hepsi 10 kez tekrarlanırken bir tanesi sadece 1 kez tekrarlanıyor.

Burada verileri sort -n komutu ile sıralıyoruz uniq -c komutu ile sayıp kaç kez sıralandığını yazıyoruz.

Yalnızca 1 kez sıralanmış olan flagı alıp çözüme devam ediyoruz.

9. seviyede ise data.txt içerisinde “=” işaretinden sonraki kısmı okumamız gerekiyor.

Burada grep komutu ile “=” işaretinden sonrasını okuyabiliriz fakat cat ile okumaya çalıştığımızda binary formatında bir dosya olduğu için okuyamayacağız. Burada strings komutunu kullanarak flagı elde ediyoruz.

strings data.txt | grep “=”

10. seviyede ise data.txt içerisinde flag base64 ile encode edilmiş olarak tutulmaktadır. Bunu terminal üzerinden decode ederek flagı elde edeceğiz.

data.txt içerisindeki veriyi terminal üzerinden decode etmek için aşağıdaki komutu vermemiz yeterli oluyor.

base64 -d data.txt

Yazıyı burada bitiriyorum fakat çözümlerin devamı sonraki yazılarımda gelecek.

Yazının Medium linki >> OverTheWire | Bandit 0–10

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

2 × 2 =

Başa dön tuşu