Tryhackme / The Blob Blog Çözümü

Bu yazımda TryHackMe The Blob Blog makinesinin çözümünü paylaşacağım. İlk olarak makineye nmap taraması yaparak başlıyorum.

nmap -A -T4 10.10.185.254
Tryhackme / The Blog Blog Çözümü

Tarama sonucunda 22-ssh portunun ve 80-http portunun açık olduğunu görüyorum . Gobuster ile http web sitesinin alt dizinlerini taratıyorum ama elime herhangi bir sonuç dönmüyor. Web sitesine girdiğimde ise karşıma “default ubuntu page” çıkıyor. Sayfanın kodlarını incelediğim yorum satırları arasına base64 encode edilmiş bir not görüyorum.

Tryhackme / The Blog Blog Çözümü

Notu decode ettiğimde bu sefer brainfuck ile encode edilmiş bir yazı çıkıyor ve onu da decode ediyorum. Karşıma şu not çıkıyor:

Kodları incelemeye devam ettiğimizde ise karşımıza bir tane daha yorum satırı çıkıyor  bu yorum satırında ise base58 ile encode edilmiş bir şifre var.

Tryhackme / The Blog Blog Çözümü

En başta karşıma çıkan şifre ile bob kullanıcı adını kullanarak ssh bağlantısı yapmayı deniyorum ama başarılı olmuyor. Bende ilk önüme çıkan yorum satırından dolayı portlara knocking yapmaya karar veriyorum.

Peki Port Knocking nedir?

Sunuculardaki ve makinelerdeki bazı portlar güvenlik sebebiyle belli bir istek dışındaki bütün isteklere kapatılır. Ve ulaşmak istediğimiz portun açılması için açılmasını sağlayacak o belli bağlantı isteği gönderilip kodun açılması sağlanır.

Bu aşama için knockd aracını kullanıyorum yine ilk yorum satırında çıkan nottan kaynaklı 1 3 5 şeklinde knocklamaya karar veriyorum.

knock 10.10.185.254 1 3 5

Ardından yine bir nmap taraması yapıyorum.

Tryhackme / The Blog Blog Çözümü

Bu taramanın ardından 445 ve 8080 portlarında http ve 21 portunda ftp servisi karşıma çıkıyor. Http portlarını gobuster ile tararken ftp portuna da bulduğumuz şifre ile giriş yapmayı deniyorum ve başarılı oluyor.

ftp 10.10.185.254
Tryhackme / The Blog Blog Çözümü

Dizinlerde gezerken ftp/files dizininde cool.jpeg isimli bir resim bulup resimi kendi bilgisayarıma get komutu ile indiriyorum.

Tryhackme / The Blog Blog Çözümü

Http taramalarından ise 445 portundan bir şey elde edemiyorum web sitesine girdiğimde karşıma yine “default ubuntu page” çıkıyor. Kodlarını incelediğimde yine bir yorum satırı ile karşılaşıyorum.

Tryhackme / The Blog Blog Çözümü

Stegcracker ile en başta default bir wordlist ile cool.jpeg dosyasının içinden bilgileri çıkartmaya çalışıp başarılı olamadığımdan dolayı bu sefer yorum satırında bulduğum passphrase’i kullanarak dosyanın içinden bilgileri çıkartmaya deniyorum ve başarılı oluyor.

Tryhackme / The Blog Blog Çözümü

Karşıma bir dizin ve Vigenere ile şifrelenmiş bir username:password bilgisi çıkıyor. Şifre anahtarını aramak için fotoğrafın içinden çıkan dizine gidiyorum.

Tryhackme / The Blog Blog Çözümü

Anahtar olarak “youmayenter”’ı alıyorum .

Tryhackme / The Blog Blog Çözümü

445 portunda daha fazla yapabileceğim bir şey kalmayınca 8080 portunun tarama sonuçlarına bakıyorum.

gobuster dir -w /usr/share/wordlists/dirb/common.txt -u http://10.10.185.254:8080
Tryhackme / The Blog Blog Çözümü

Blog kısmına bulduğumuz kullanıcı ve şifre ile giriş yapıyorum. Karşıma girdi verebildiğim bir sayfa çıkıyor ben de komut çalıştırabiliyor muyum diye ls komutunu deniyorum.

Tryhackme / The Blog Blog Çözümü
Tryhackme / The Blog Blog Çözümü

Reverse shell

Dosyaları inceliyorum ama işime yarar bir şey elime geçmiyor ben de bash dilini kullanarak reverse shell elde etmeyi deniyorum.

Tryhackme / The Blog Blog Çözümü Reverse shell

Şifre kullanmadan kullanabildiğim bir sudo komutu olmadığını görüyorum ben de kullanabildiğim komut izinlerini inceliyorum.

find / -type f –perm -4000 2> /dev/null
Tryhackme / The Blog Blog Çözümü Reverse shell

Kullanabildiğim komutlara bakınca “blogFeedback” komutunu incelemeye karar veriyorum “strings” komutu ile incelediğimde elime sadece üç çıktı verdiği ile ilgili bilgi veriyor ama devamı hakkında bilgi alamıyorum ben de dosyayı kendi bilgisayarıma geçirip tersine mühendislik yapmaya karar veriyorum. Kurban makinede server başlatıyorum.

Tryhackme / The Blog Blog Çözümü Reverse shell

Kendi makinemden ise “wget” komutu ile dosyayı alıyorum.

wget http://10.10.29.88:8000/blogFeedback
Tryhackme / The Blog Blog Çözümü Reverse shell

Kodu incelerken “undefined8 main()” fonksiyonu buluyorum ve kodu inceliyorum.

Tryhackme / The Blog Blog Çözümü Reverse shell

Kod çözümleme

Else döngüsüne baktığımızda while döngüsünün isteğini yerine getiren bir kod girilirse daha üst bir kullanıcıya geçebileceğimizi görüyoruz. Elimizdeki kod while döngüsünü local_c yediden küçük olduğu sürece çalıştırıyor ve “ivar1” ise bir parametre ile işi bittikten sonra diğer parametreye geçiyor. Ve local_c her döngüde 1 artıyor. Yani bu kodumuza girdiğimiz bir altı parametre ile daha üst bir kullanıcıya geçebileceğimiz anlamına geliyor ama hangi altı parametre? If döngüsüne baktığımızda parametremiz eğer “7-local_c”ye eşit olmazsa “Hmm… I disagree!” dediğini görüyoruz. İlk parametre için local_c=1 olarak düşünürsek ilk parametremiz 7-1’den kaynaklı altı olmalıdır. Böyle devam edersek bizi üst kullanıcıya geçirecek komutun blogFeedback 6 5 4 3 2 1 olduğunu görebiliriz.

Kod çözümleme

Bir üst kullanıcıya geçtiğimize göre user.txt’yi okuyabiliriz.

Kod çözümleme

“Sudo –l” komutu ile kullanabildiğim komutlara baktığımda “echo” komutunu kullanabildiğimi görüyorum.

Kod çözümleme

Daha ileri bir işlem yapmadan Shell Upgrade’i yapıyorum.

Kod çözümleme

Karşıma sürekli “You haven’t rooted me yet? Jeez” diye bir yazı çıkıyor bu da sistemin belirli bir dosyayı sürekli çalıştırdığı anlamına geliyor .

 Crontablara bakıyorum ama elime bir şey geçmiyor.Dizinler ve dosyalar arasında gezinmeye başlıyorum . Gizli dosyaları da listeliyorum çünkü makine de çok fazla gizli belge var. Documents dizininde “.boring_file.c” dosyasıyla karşılaşıyorum.

Kod çözümleme

İçeriğini okuduğumda karşıma “You haven’t rooted me yet? Jeez” yazısını çıkaran dosyanın bu olduğunu görüyorum bu demektir ki makine bu dosyayı belirli bir aralıkta çalıştırıyor ve ben dosya içeriğine c ile yazılmış bir reverse shell kodu eklersem makineyi rootlayabilirim. Echo komutunu da şifresiz bir şekilde kullanabildiğim için dosyanın içine yazamk için ‘echo “reverseshell” > .boring_file.c’ komutunu kullanıyorum.

Kod çözümleme

Makineyi rootladıktan sonra root.txt dosyasını okuyup sonuncu bayrağı elde ediyorum.

Tryhackme / The Blog Blog Çözümü bayrak

Tryhackme / The Blob Blog Çözümü” üzerine 4 yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir