HacktheBox – FriendZone Makine Çözümü

Merhaba, bu yazımızda yeni emekliye ayrılan Friendzone isimli makinenin çözümünü ele alacağız.

İşe herzaman olduğu gibi nmap taraması ile başlıyoruz.

139. ve 445. portlarda Samba servisi çalıştığı için smbmap taraması yapalım.

General ve Development klasörlerine erişimimiz oldğunu görüyoruz. Ayrıca 10.10.10.123:445 ip sinin “uploads.friendzone.red” isimli bir hostnam e sahip. Önce general ve Development klasörlerine göz atalım.

Smbclient //10.10.10.123/Development komutu ile bakabiliriz.

Password kısmını direkt enter ile geçebilirsiniz.

Development kısmı boş.

General kısmında creds.txt isimli bir dosya var. Bunu “get creds.txt” komutu ile indirebiliriz.

Creds.txt dosyasının içine baktığımızda bir admin şifresi olduğunu görüyoruz. Henüz elimizde bir giriş sayfası yok. Giriş sayfası aramaya başlayalım. Önce 80. porttaki http serverine gidelim.

Bizi bir resim ve altında bir email adresi karşılıyor. Resmi indirip steghide komutu ile içinde herhangi bir veri olup olmadığını kontrol ettim.

Parola kısmına creds.txt de bulduğumuz parolayı denedim. Lakin bu parolayla herhangi bir veriye ulaşamadık.

443. portundaki ssl serverine bakalım.

Ssl sertifikalı olduğu için başına https:// yazıp tekrar denediğimizde bizi bir sayfaya götürüyor. Burdan sertfika bilgilerine bakabiliyoruz.

Burada hostname in friendzone.red olduğunu bulduk. /etc/hosts dosyasına ekleyelim.

Bu şekilde ekleyip https://friendzone.red adresine gidelim.

İçinde gif olan bir sayfa karşıladı beni. Yine steghide komutuyla herhangi bir şey var mı diye kontrol ettim ama bir şey çıkmadı.

/etc/hosts kısmına friendzoneportal.red i ekledim aynı şekilde.

Bu sayfadan da bir şeye ulaşamadık. Zone transfer yöntemini kullanarak 10.10.10.123 ip sinin tüm dns lerine ulaşmaya çalışalım. Bunun için “dig axfr <subdomain> @ip” komutunu kullanabiliriz.

İki farklı hostname gözüme çarpıyor. Birisi administrator1.friendzone.red diğeri admin.friendzoneportal.red. İkisini de /etc/hosts dosyama ekliyorum.

Tek tek adreslerimize bakalım şimdi.

Creds.txt içindeki bilgilerle giriş yapmayı deniyoruz.

Henuz geliştirme aşamasında olduğunu bir diğerine bakmamızı söylüyor. Diğerine bakalım.

creds.txt içindeki bilgilerle giriş yapmayı deniyoruz.

Girişimizi yaptık. /dashboard.php sayfasına bakalım.

Yüklediğimiz dosyalara nasıl ulaşacağımız hakkında bilgi verilmiş. Bundan sonraki adımlarda reverse shell kodunu yükleyerek shell alacağız.

Reverse shell kodunu https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php adresinde bulabilirsiniz.

Reverse shell kodunu iki farklı şekilde yükleyebiliriz. Smb üzerinden veya uploads.friendzone.red adresinden.

Ben smb üzerinden gideceğim.

Development dizinine yükledim çünkü hem okuma hem de yazma iznimiz var. Reverse shell kodumu yükledim.

Yüklendiği adres https://administrator1.friendzone.red/dashboard.php?image_id=b.jpg&pagename=/etc/Development/rt şeklinde olacaktır. Bu adrese gitmeden önce nc komutu ile portumu dinlemeye alıyorum. Ardından adrese gittiğimde shell geliyor.

User.txt imizi alalım.

User.txt imizi aldık ama halen düzgün bir kullanıcımız yok. Www-data kullanıcısınız izni olduğu kadarıyla sistem içinde biraz gezindim. /var/www içinde mysql_data.conf isimli bir dosya gördüm. Dosyayı okuduğum zaman friend kullanıcısının parolasına ulaştım.

Ssh ile bağlanalım.

Kullanıcımızı aldık. Şimdi sıra root.txt dosyamıza ulaşmakta.

Sistem üzerinde çalışan işlemlere bakalım. Bunun için pspy64 isimli bir araç kullandım. https://github.com/DominicBreuker/pspy/releases/download/v1.0.0/pspy64 linkinden indirebilirsiniz.

Root işlemlerine (uid=0) bakacağız.

/reporter.py ilginç duruyor. İçeriğine göz atalım.

Os isimli bir kütüphaneyi import etmiş. Yorum satırı olarak os.system(command) olarak bir satır dikkatimi çekti. Python klasörlerinin içinde os isimli bir dosya olup olmadığına baktım.

Python2.7 full izinli bir klasör. İçinde os.py isimli bir python kodu var ve bu da full izinli. Bu demek oluyor ki kod içinde değişiklik yapabiliriz.

Kodu biraz inceledikten sonra os.system(command) kodunu ekleyip, root.txt dosyasını kopyalamayı denedim.

Kodun son kısmı resimdeki gibidir. Kaydedip çıkıyoruz. Terminalde os.py ı çalıştırıyorum ama cp komutu için izin verilmiyor.

Root.txt dosyasını kopyalayamadık henüz ama biliyoruz ki sistem reporter.py isimli kodu çalıştırıyor. Reporter.py root izinli bir kod. Bu yüzden bizim için root.txt dosyasını kopyalayacaktır. Sistemin çalıştırmasını bekliyoruz. Bu birkaç dakika sürebilir. Ara ara /tmp klasörünü kontrol edelim.

Root.txt dosyamıza ulaştık.

Bizleri sosyal medyadan takip edebilir, sorularınızı yorum veya mesaj olarak iletebilirsiniz. Başarılar.

Bir cevap yazın

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