LİNUX

OverTheWire | Bandit 11–20 Çözüm

OverTheWire Bandit çözümüne kaldığım yerden devam ediyorum. OverTheWire Bandit çözümünü yaptığım bir önceki yazıya OverTheWire Bandit 0-10 linkine tıklayarak ulaşabiliriniz.

Bu seviyede data.txt içerisindeki veriler Caesar şifreleme tekniği ile şifrelenmiştir.

cat komutu ile data.txt dosyasını açıp şifreli metni görüyoruz.

Şifreli metni online olarak decode edebileceğim bir web site yardımı ile flagi alıyorum.

Sonraki seviyede ise iç içe sıkıştırılmış olan data.txt içerisinde yer almaktadır. Bu dosya ile çalışabilmek için /tmp dizinine mkdir /tmp/serdar adında bir dosya oluşturup cp komutu ile data.txt dosyasını oraya kopyalıyorum. data.txt dosyası okunabilir değil.

Linux sistemlerde xxd komutu ile bir dosyanın hex dumpı alınabilir. r parametresi ile reverse edebiliriz. Burada bu işlemi reverse edip “yeni” isminde bir dosya olarak output ediyoruz.

xxd -r data.txt yeni

File komutu ile dosyanın formatına baktığımızda gzip olduğunu görüyoruz. Formata uygun olarak mv komutu ile dosyamızı “yeni.gz” çeviriyoruz.

gzip -d yeni.gz

Yukardaki komut ile dosyayı zip içerisinden çıkardık. Daha sonra file komutu ile dosyanın formatına tekrar bakıyoruz ve bzip2 çıktısını alıyoruz. Aynı işlemi değiştirerek formata uygun şekilde dosyayı oluşturuyoruz ve zip içerisinden çıkarıyoruz.

bzip2 -d yeni.bz2

Çıkardığımız dosyanın tipine tekrar bakıyoruz ve gzip olduğunu görüyoruz. Önceden yaptığımız işlemleri tekrar ederek dosyayı zipe çevirip tekrar çıkartıyoruz.

gzip -d yeni.gz

Çıkardığımız dosya formatına baktığımızda tar olduğunu görüyoruz. Dosyayı çıkarıp formatına bakacağız.

tar -xvf yeni

Dosyayı çıkardığımızda data5.bin dosyasını elde ediyoruz. Ardından file ile formatına baktığımızda aynı şekilde tar olduğunu görüyoruz. Tekrar aynı işlemi yapıyoruz dosyayı çıkarıyoruz data6.bin dosyasını elde ediyoruz. data6.bin dosyasının formatına baktığımızda bzip2 olduğunu görüyoruz.

mv ile data6.bin dosyasına data7.bz2 ye çeviriyoruz.

mv data6.bin data7.bz2

Ardından tekrar aynı işlemleri uygulayarak en sonunda nihayet data8.bin dosyasına data9.gz olarak çevirip, zip içerisinden çıkaradığımızda data9 dosyamızı elde ediyoruz. Dosya formatına baktığımızda text olduğunu görüyoruz. cat komutu ile dosyayı okuyarak flagi elde ediyoruz.

Bu kısımda ise flagin olduğu dizin /etc/bandit_pass/bandit14 altında olduğu veriliyor ve bandit14 kullanıcısı ile okunabileceği belirtiliyor.

Verilen ssh keyi ile bandit14 kullancısına bağlanıyoruz.

ssh -i sshkey.private bandit14@localhost

Daha sonra bize verilen dizin yolunu takip ederek veya “cat /etc/bandit_pass/bandit14” komutu ile okuyabiliriz. Flagi alıp devam ediyoruz.

Bu seviyede ise localhostta 30000. portuna bağlanarak elde edebileceğimiz verilmiş.

Telnet ile porta bağlanıp önceki parolayı verdiğimizde flagi elde ediyoruz.

telnet localhost 30000

Sonraki kısımda ise flagi elde etmek için ssl şifreleme kullanılarak 30001 portuna bağlanarak bulunabileceği verilmiş.

openssl ile ilgili porta bağlanıp önceki şifreyi vererek flagi elde edeceğiz.

openssl s_client -connect localhost:30001 -ign_eof

Flagi alarak sonraki bölüme geçiyoruz.

Bu seviyede ise parolayı elde etmek için 31000 ve 32000 portları arasında bir port üzerinden elde edilebileceği verilmiş.

İlk olarak nmap ile port taraması yaparak işe başlıyoruz. Tarama sonucu 31790 portunda bir trick verildiğini görüyoruz ve bu port üzerinden ilerliyoruz.

31790. porta bağlandığımızda bize bir RSA anahtarı veriyor.

openssl s_client -connect localhost:31790

RSA anahtarını dosya içerisine yazmak için yine /tmp klasörüne geliyoruz ve dosyamızı oluşturuyoruz.

Dosyanın izinlerini chmod 600 ile dosyanın yalnızca bizim tarafımızdan okunup değiştirilmesi iznini verdik. RSA keyimiz ile bandit17 kullanıcısına bağlanıyoruz.

ssh -i key bandit17@localhost

Bağlantı sağlandıktan sonra daha öncek kısımdaki dizin üzerinden ilerleyerek flagi elde ediyoruz.

cat /etc/bandit_pass/bandit17

Bu kısımda ise flagin password.new dosyasında olduğu verilmiştir ve passwords.old dosyası ile aralarında değişmiş olan tek satırda olduğu verilmiştir.

diff komutu ile flagi elde ediyoruz.

diff passwords.old passwords.new

Sonraki seviyede ise .bashrc dosyası bağlantımızı sonlandıracak şekilde ayarlanmıştır.

Parola ile bağlantıyı sağladığımız anda bağlantı sonlandırılmaktadır.

Bağlantının sonlandırılmaması için -T parametresi ile komutu devre dışı bırakıyoruz.

ssh -T [email protected] -p 2220

Komutu durdurup readme dosyasını okuyarak flagi elde ediyoruz.

Sonraki seviyeye geçtiğimizde ise bize ana dizindeki setuid değerini çalıştırarak bulmamız istenmiş.

Karşımıza gelen dosyanın çalıştırılabilir bir dosya olduğunu bildiğimiz için normal olarak çalıştırıyoruz. Ardından çıktıyı inceleyip biraz kafa yorduktan sonra bu dosya ile flagin olduğu dosyayı açabileceğimi görüyorum.

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

Komut ile dosyayı okuyarak flagi elde ediyoruz.

Serinin devamı ilerleyen yazılarda gelmeye devam edecek.

Yazının Medium linki >> OverTheWire | Bandit 11–20

Bir yanıt yazın

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

ten + 15 =

Başa dön tuşu