TryHackMe Pickle Rick Write Up

Bu rapor, TryHackMe platformunda yer alan "Pickle Rick" odasına ilişkin hazırlanmış bir write-up çalışmasıdır.

author image

Written by

Furkan İbiş

Published on

Apr 19

TryHackMe Pickle Rick Write Up

Esenlikler,

Bugünkü yazımda sizlere, TryHackMe’nin sunduğu ve benim için özel bir yere sahip olan, Rick and Morty temalı “Pickle Rick” adlı makineyi çözmeye çalışacağım.

Information Gathering

İlk olarak, hedefe ilişkin TryHackMe tarafından sunulan bilgilere bakalım:

“This Rick and Morty-themed challenge requires you to exploit a web server and find three ingredients to help Rick make his potion and transform himself back into a human from a pickle.”

Kısaca, Rick ve Morty’nin Rick’i tekrar insana çevirebilmesi için gerekli olan üç malzemeyi web sunucusunu istismar ederek bulmamız gerekiyor.

İlk olarak, tahmin edebileceğiniz üzere bir nmap taraması yaparak işe başlayacağım. Ardından tarama sonuçlarına göre web hizmetini analiz edeceğim. Bu analiz sırasında ise Burp Suite aracını kullanacağım.

sudo nmap -sS -sV 10.113.147.143 -O -o rm_nmap.txt -p-

Tüm portları taramak elbette zaman alacaktır; ancak bu çalışma için yeterli vaktimiz var.

Tarama devam ederken, bir yandan da Burp Suite ile hedefi inceleyelim. TryHackMe’nin verdiği bilgilere göre bir web servisi olduğunu biliyoruz; bu nedenle büyük ihtimalle 80 (HTTP) ya da 443 (HTTPS) portları üzerinden hizmet veriyor olmasını bekliyorum.

Zaten Rick bizi yönlendiriyor…

Burp Suite üzerinden ana sayfanın HTML kodlarını incelediğimde bir kullanıcı adı ile karşılaşıyorum: R1ckRul3s

Bu sırada nmap taraması da tamamlanıyor. Tahmin ettiğim üzere yalnızca SSH ve HTTP portlarının yanıt verdiğini görüyorum:

Peki, kullanıcı adını bulduk; parolayı nasıl elde edeceğiz, ya da elde edebilecek miyiz? Bunun için dirb ile web sunucusunun başka sayfalar sunup sunmadığını keşfetmem gerekiyor.

gobuster dir -x php,html -t 100 -u http://10.112.186.243/ -w /usr/share/wordlists/dirb/big.txt

robots.txt dosyasını incelediğimde anlam veremediğim bir metinle karşılaşıyorum. Acaba doğrudan SSH parolası olabilir mi diye deneme yapıyorum; ancak sonuç başarılı olmuyor.

Wubbalubbadubdub

Biraz araştırma yaptığımda bu metnin aslında Rick’in kendi tarzında “acı çekiyorum, lütfen yardım edin” anlamına geldiğini öğreniyorum.

Ah be Rick…

Sonrasında bunun parola olabileceğini düşünüyorum. Kullanıcı adını da daha önce bulduğumuz için login.php sayfasına gidiyorum.

Kullanıcı adını ve parolayı girdikten sonra, başarılı bir şekilde giriş yapmış oluyoruz.

First Ingredient

Sayfaya giriş yaptığımızda bizi bir komut paneli karşılıyor. Burada komutları doğrudan çalıştırabiliyoruz; bu durum açıkçası oldukça şaşırtıcı ve biraz fazla basit görünüyor.

Sonrasında bulunduğum dizinde neler olduğunu görmek istedim ve gördüğünüz gibi ilk ingredient’imizi bulduk; en azından dosyasını diyelim.

Dosyayı okumak istediğimde ise:

Maalesef. Ancak burada aslında ders çıkarabileceğim bir durumla karşılaşıyorum: Hayatta bazı şeyler düşündüğümüz kadar zor olmayabiliyor. Çünkü burada cat komutunu çalıştıramadığımız için diğer dosya okuma araçlarını da kullanamayacağımızı düşündüm ve bu nedenle şöyle bir yöntem denedim:

Amacım, dosyanın içeriğini bir output değişkenine atayıp ardından echo ile bu değeri okumaktı; ancak maalesef istediğim gibi olmadı.

Sonrasında bir şey fark ettim: Sayfanın bulunduğu dizin içerisinde olduğumuz için bu dosyayı aslında iki farklı yolla okuyabilirdik. Birincisi, doğrudan http://10.112.186.243/Sup3rS3cretPickl3Ingred.txt adresine giderek içeriği görüntüleyebiliriz.

Ya da dosyayı doğrudan less komutu ile açabilirdik.

Hayatta her şey düşündüğüm kadar zor olmayabiliyor.

Second Ingredient

Şimdi sırada ikinci ingredient’i bulmak var. Bunun da büyük ihtimalle kullanıcının home dizininde olduğunu tahmin ediyorum. Hatta şimdiden söyleyeyim: üçüncü ingredient’in de root kullanıcısı altında olacağını ve muhtemelen bir privilege escalation gerektireceğini düşünüyorum. Ama bakalım, ilerleyince göreceğiz.

Home dizinini kontrol ettiğimde mevcut kullanıcılar arasında rick ve ubuntu olduğunu görüyorum.

Rick kullanıcısının dizini altında “second ingredients” adlı dosyayı görüyorum. Bu dosyayı açtığımda ise ikinci ingredient’i elde ediyorum.

Third Ingredient

Sıradaki ingredient’in muhtemelen root dizini altında olduğunu düşünerek bu dizini kontrol ediyorum; ancak herhangi bir şey göremiyorum.

Burada muhtemelen gerekli yetkilere sahip değiliz; ancak makinenin basitliğini göz önünde bulundurarak, root yetkisiyle çalıştırabileceğimiz komutları incelediğimizde:

www-data kullanıcısının, parolasız şekilde istediği komutu sudo yetkisiyle çalıştırabildiğini görürüyorum. O halde:

Sonrasında...

Son ingredient’i de bulduğumuza göre, bu raporu burada tamamlamış oluyoruz.

Teşekkürler.

Yazımı bu noktaya kadar okuduğun için çok teşekkür ederim. Bir sonraki yazımda görüşmek üzere; kendine iyi bak, esenlikler.