[TR] Hack The Box — Cronos Write-Up

Anıl Çelik
5 min readAug 18, 2020

Herkese merhaba. Bu yazımda, Hack The Box platformunda bulunan Cronos isimli makinenin çözümünü sizlerle paylaşıyor olacağım.

Öncelikle her zamanki gibi nmap taramasıyla başlayalım:

Nmap çıktısından görebileceğimiz gibi; 22 numaralı portta SSH servisi, 53 numaralı portta DNS servisi ve 80 numaralı portta da HTTP servisi çalışmakta. Öncelikle HTTP servisi üzerinde enumeration işlemine başlayalım:

HTTP servisini ziyaret ettiğimizde Apache2 Web Server’a ait varsayılan sayfa ile karşılaşmaktayız ancak burada “Advertisement” adında ilgimizi çeken başka bir kısım olduğunu görüyoruz. Sayfa kaynağını incelediğimizde bu alan ile ilgili başka bir kısmı görebiliriz:

Buradaki reklama tıkladığımızda aşağıdaki sayfaya yönlendirilmekteyiz:

Burada aklıma gelen ilk şey, yukarıdaki search box içerisinde çözmekte olduğumuz Cronos isimli makineyle ilgili veya Hack The Box ile ilgili şeyler aratmak oldu ancak herhangi bir şey elde edemedim:

Buradan bir şey elde edemedikten sonra, bir gobuster taraması gerçekleştirebiliriz:

Ancak buradan da maalesef işe yarar bir şey elde edememekteyiz.

80 numaralı porttan bir şey elde edemediğimize göre, bir sonraki hedef olarak 53 numaralı porta göz atabiliriz. Öncelikle bu makinenin sahip olduğu IP adresinin çözümlendiği diğer adreslere göz atmak için bir nslookup sorgusu yapalım:

Nslookup çıktısında bu makineye ait IP adresinin “ns1.cronos.htb” adındaki başka bir adrese daha çözümlendiğini görüyoruz. Bu adres bir subdomain olduğu için bu IP adresinin ayrıca “cronos.htb” adresine de çözümlendiğini varsayabiliriz. Şimdi bu adresi hosts dosyamıza ekleyelim:

Şimdi “cronos.htb” adresini ziyaret edelim:

Şimdi ise “dig axfr” komutu ile bu domain’e yönelik bir zone transfer işlemi gerçekleştirerek bu domain’e ait bütün hostnameleri bulmaya çalışalım:

Diğer hostnameleri de bulduğumuza göre, bu verileri de hosts dosyamıza ekleyelim:

Şimdi öncelikle admin sayfasını ziyaret edebiliriz:

Burada basit bir SQL Injection payload’u deneyerek sisteme giriş yapabiliriz:

Başarılı bir şekilde giriş yaptık. Şimdi burada bize komut çalıştırmamız için verilen yere basit bir komut girip çalıştırmayı deneyelim:

Öncelikle “whoami” komutunu çalıştırmayı denedik ancak çalışmadı. “8.8.8.8 & whoami” şeklinde bir önceki komutun devamı olarak istediğimiz komutu çalıştırdığımızda ise “whoami” komutunu çalıştırabilmekteyiz:

Şimdi burada bir reverse shell komutu çalıştırarak sistem üzerinden local makinemize bir ters bağlantı sağlamaya çalışalım. Öncelikle bash reverse shell deneyebiliriz:

Ancak bash reverse shell ile bir bağlantı elde edemedik. Şimdi de Python ile deneyelim:

Burada hem Bash hem de Python ile reverse shell oluştururken bu sayfada bulabileceğiniz kendi geliştirmiş olduğum reverse shell payload generator’ı kullandım.

Reverse shell’i Python ile denediğimizde başarılı bir şekilde bağlantıyı elde ettik. Şimdi ilk adım olarak user flag’i elde etmeye çalışalım:

User flag’i “/home/noulis” dizini altında elde etmeyi başardık. Şimdi yetkilerimizi yükselterek root flag’i elde etmeye çalışalım. Öncelikle sistem üzerinde kolay bir şekilde enumeration yapmamıza olanak sağlayan linPEAS isimli araçtan faydalanalım:

Çıktıya göz attığımızda, yukarıdaki gibi cronjobların altında zamanlanmış bir işlem olduğunu görebiliriz. Şimdi çalıştırılan bu dosyanın içeriğine göz atmaya çalışalım:

Burada aklımıza gelen ilk şey, sistem üzerinde root kullanıcı tarafından çalıştırılan bir cronjob olduğu için bu cronjob üzerinde manipülasyon yaparak root seviyesindeki kullanıcı üzerinden shell almak olmalıdır. Tekrar kontrol ettiğimizde “artisan” dosyası üzerinde tanımlanmış yetkiler de bu düşüncemizi desteklemektedir:

Şimdi bir PHP Reverse Shell oluşturarak dosyayı manipüle etmeye çalışalım:

Ve sonrasında netcat listener’ı çalıştıralım:

Gördüğümüz gibi root flag’i de elde etmeyi başardık.

Bu makine ile ilgili sizlerle paylaşmak istediklerim bu kadardı. Yazımı okuduğunuz için teşekkür ederim.

Bir sonraki yazımda görüşmek üzere.

--

--