
CTF - OverTheWire Bandit Çözümleri 26-33 - SON
İçindekiler
OverTheWire Bandit CTF çözümlerinin bu yazsında yer alan bölümlerde yoğun olarak Git kullanılmakta. Devam etmeden önce git versiyon kontrol sistemi ile ilgili temel bir araştırma yapılması yardımcı olacaktır. İyi eğlenceler..
Bölüm 27 → 28
İpucu: ‘ssh://bandit27-git@localhost/home/bandit27-git/repo’ adresinde bir repo olduğu ve bu reponun şifresinin bir sonraki bölümün şifresi olduğu belirtilmiş.
Her zamanki gibi tmp dizinine geçip çalışma alanımı oluşturuyorum. Ve git ile linkteki depoyu clonluyorum.
git clone ssh://bandit27-git@localhost/home/bandit27-git/repo
Daha sonra reponun içerisindeki dosyayı okuyorum.
Şifre: 0ef186ac70e04ea33b4c1853d2526fa2
Bölüm 28 → 29
İpucu: Önceki bölüm ile aynı şeyler yazılmış.
Önceki bölümde yaptığımız gibi ilgili linkteki repoyu clonelayalım.
Bu sefer şifrenin sansürlenmiş olduğunu görüyoruz.
git log --oneline
ile commit loglarına bakıyoruz.
Eksik verinin eklendiği bir önceki comite dönmek için commit hashi ile checkout alalım(deponun o commit yapıldığı halini görelim) ve dosyayı kontrol edelim.
git checkout c086d11
Şifre: bbc96594b4e001778eee9975372716b2
Bölüm 29 → 30
İpucu: Önceki bölüm ile aynı şeyler yazılmış.
Yine daha önceki clone rutinlerini gerçekleştiriyorum.
Üretim aşamasında şifre olmadığı not düşülmüş. Branchlerimizi kontrol edelim. Bütün branchleri*(uzaktaki ve lokaldeki)* görebilmek adına *-a* parametresi ile komutumuzu çalıştıralım.
git branch -a
Dev adında bir branch olduğunu görüyorum muhtemelen aktif olarak geliştirmenin yapıldığı branch burası.
Checkout ile dev branchine geçelim ve readme.md dosyasını kontrol edelim.
git checkout origin/dev
Şifre: 5b90576bedb2cc04c86a9e924ce42faf
Bölüm 30 → 31
İpucu: Önceki bölüm ile aynı şeyler yazılmış.
Rutin kontrolleri gerçekleştirelim.
Bir şey bulamadık. Git etiketlerine göz atalım.
Git tag -l
**Şifre: ** 47e603bb428404d265f59c42920d81e5
Bölüm 31 → 32
İpucu: Önceki bölüm ile aynı şeyler yazılmış.
Yine rutin kontrolleri gerçekleştirelim.
Bu sefer key.txt adında içerisinde ‘May I come in?' yazan bir dosya oluşturup dosyayı pushlamamızı istiyor.
Vim ile ilgili dosyayı oluşturuyorum
Git add ile dosyayı git’e eklemeye çalıştığım zaman .gitignore dosyası tarafından keys.txt dosyasının yok sayıldığı ve dosyayı eklemek istiyorsak '-f’ parametresini kullanmamız gerektiği yazan bir hata alıyoruz.
'-f' kullanarak dosyayı ekliyoruz ve her şey yolunda mı diye kontrol ediyoruz.
Commit’imizi alıyoruz ve pushluyoruz.
**Şifre: ** 56a9bf19c63d650ce78e6ec0354ee45e
Bölüm 32 → 33
İpucu: Git ile ilgili bu kadar bölümden sonra yine kaçış zamanı olduğu belirtilmiş.
Bölüme bağlandığımız da UPPERCASE SHELL adında bir kabuk bizi karşılıyor. Yazdığımız hiç bir komut geçerli değil ve hata mesajlarında yazdığımız komutun büyük harfe çevrilerek sh üzerinde çalıştığını görüyoruz.
Bir dizi başarısız özel karakter denemesinden sonra değişken ile dosya adı geçirebileceğimi böylece büyük harfe çevrilmeden sh‘ta çalıştırılabileceği aklıma geldi.
Bu noktada en kolay seçenek shell‘in kendisini çalıştırmak olacaktı. Bash scriptlerinde $0‘ın ilk argüman olduğunu ve dosyanın kendisini taşıdığını biliyoruz. dolayısı ile $0‘ı çalıştırıyorum.
ls ile kontrol edince normal komutların çalışabildiğini görüyorum ve buradan devam ediyorum.
uppershell adlı dosya shell olarak tanımlı bandit33 kullanıcsına ait ve bandit32 tarafından çalıştırılabilir. Bir escalated privilege durumumuz var. '/etc/bandit_pass/bandit33’ dosyasını kontrol ediyoruz.
Şifre: c9c3199ddf4121b10cf581a98d51caee
Son Söz
Bandit CTF’in bölümleri burada sona eriyor. Linux temellerinin konu alındığı bu CTF’i çözerken oldukça keyif aldım ve bir çok şey öğrendim. Umarım sizin için de keyifli geçmiştir.
Bu Serideki Yazılar
- CTF - OverTheWire Bandit Çözümleri 26-33 - SON
- CTF - OverTheWire Bandit Çözümleri 15-26
- CTF - OverTheWire Bandit Çözümleri 1-15