Sitemap

Waldo - Hack The Box

4 min readFeb 8, 2021

Merhaba !!!

Şimdi Hack The Box içerisinde yeni emekliye ayrılmış Waldo makinesinin çözümünü paylaşacağım.

Öncelikle nmap taramasıyla port durumlarını inceleyelim.

Press enter or click to view image in full size

SSH servisi ve HTTP servisi çalışıyormuş. Büyük ihtimal web tarafından birşeyler yaparak ssh ile bağlanmamızı istiyor. Web sayfasını inceleyelim.

Press enter or click to view image in full size

Bir html sayfası geldi. Liste yönetimi adında bir sayfa. Liste ekleyebiliyoruz silebiliyoruz listeleyebiliyoruz. Buradan böyle birşey çıkmayacak gibi duruyor. Birde proxy ile inceleyelim. Burp suite ile biraz daha inceleyelim. Burp suite için küçük bir ayar gerekiyor.

Press enter or click to view image in full size

Ayarımızı yaptıktan sonra liste ekleme silme ve listeleme işlemlerini yapıp içeriklerini inceliyorum.

Press enter or click to view image in full size

Liste eklemede fileWrite.php dosyasını çalıştırıyor. Numara ve içeriğini alıyor. Ben deneme amaçlı Ridvan yazdım ve numarasını 34 yaptım. Yazıldığına dair true değerini döndürdü. Birde bunu okuyalım. Okumak için ise fileRead.php dosyasını çalıştırıyor.

Press enter or click to view image in full size

Dosyamızı okuduk. Peki biz bunu nasıl kendi amacımız için kullanabiliriz ? Mesela buradan sunucuya ait dosyalar okuyabilir miyiz diye aklımıza gelmesi gerekiyor. Birde dirRead.php dosyası var. O anki dizinde neler olduğunu listelemek için. En üst dizinde neler varmış bakalım.

Press enter or click to view image in full size

Mesela fileRead.php varmış. Bu dosyanın içeriğine bakalım.

Press enter or click to view image in full size

Evet kaynak kodlarını görebiliyoruz. Buradan biraz karmaşık olduğu için biraz düzenledim.

Press enter or click to view image in full size

Biraz php kodu okuyabiliyorsanız rahatlıkla olayı anlıyorsunuzdur. Bu koddaki tek sorun gönderilen dosya ismini değiştiriyor ( str_replace kısmı ) olması. İki tane nokta ve / işareti yanyana olduğunda farklı karakterle değiştiriyor. Bunu şu şekilde atlattım.

….//….//….//etc/passwd şekilde.

Press enter or click to view image in full size

Evet /etc/passwd içeriğini okuduk. Hatırlarsanız SSH portu açıktı. Uzaktan bağlanabilmek için rsa keyi var mı yok mu bakalım. Home içerisindeki kullanıcının ismi nobody. Ama birkaç deneme yapınca .ssh içindeki key’in ismini bulamadım. Aklıma dirRead.php ile bakmak geldi. Aynı şekilde çift .. ve çift / işareti kullanınca onuda atlattım

Press enter or click to view image in full size

Dosyamızın ismi .monitor. Ve içeriğini okuyoruz.

Press enter or click to view image in full size

Keyimize ulaştık ve ssh ile bağlanalım.

Press enter or click to view image in full size

Bağlandık ve user.txt mizi okuduk.

Kullanıcıyı ele geçirdikten sonra sıradaki amacımız root kullanıcısı olmak. Dizinleri incelerken .ssh içerisinde ki dosyada farklı bir kullanıcıylada ssh ile bağlanabildiğimi gördüm.

Press enter or click to view image in full size

Ssh ile bağlandım ve karşıma bir docker çıktı. Ama bu makinede komutları çalıştıramıyordum. Ekran görüntüsündeki gibi komut bulunamadı hatası aldım.

Press enter or click to view image in full size

Bunu atlatabilmek için internette biraz araştırma yaptım ve karşıma –noprofile ve –norc komutları karşıma çıktı.

Press enter or click to view image in full size

Monitor kullanıcısı olarak normal shell’e sahibiz. Bundan sonra biraz daha araştırıyoruz ve ilginç birşeyler bulmaya çalışıyoruz.

Ve /sbin/getcap te değişik birşeyler olduğunu buldum. Nasıl buldunuz derseniz sunucuda ne varsa araştırıyorsunuz. 5 dakika içerisinde bulmuş değilim. Uzun bir süre inceleme yapmıştım.

Press enter or click to view image in full size

Getcap dosyaların yeteneklerini inceler.

-r parametresi ile / (kök dizini) altında yinemeli arama yapar. Yetki hatalarını ekrana bastırmaması içinde 2>/dev/null ile göstermez.

2 sonuç çıktı. tac komutu cat komutunun aynısı tek farkı dosyayı son satırdan okumaya başlar. Örnekteki gibi.

Press enter or click to view image in full size

cap_dac_read_search+ei ise isminde de anlaşılacağı üzere okuma işlemi için tam yetkisi vardır anlamı taşıyor diyebiliriz.

Yani anlaşılacağı üzere ikisini birleştirdiğimizde tac ile root yetkilerinde ki dosyaları okuyabiliriz.

Ve root yetkisiyle okunabilen root.txt’mizi de okuduk.

Okuduğunuz için teşekkürler. Yazılarımda herhangi bir teknik hata varsa bildirmekten çekinmeyiniz…

Gereksiz Bilgi : Bu makineyi aktif olduğu 2. veya 3. haftasında çözmüştüm. Direkt root shell’i almaya çalışmıştım ama alamamıştım.

--

--

Rıdvan Kaplan
Rıdvan Kaplan

Written by Rıdvan Kaplan

Cyber Security & Blue Team | OSCP & eCTHPv2 & eCIR & CySA+

No responses yet