top of page

Hackthebox Nibbles Writeup

ree

Herkese merhaba! Bugün Hack The Box’taki Nibbles makinesini çözeceğiz. Bu makine, web tarama ve yetki yükseltme için harika bir pratik sunuyor. Kolay görünse de login blacklist ve NOPASSWD sudo ile ufak sürprizler var. Adım adım nasıl çözdüğümü anlatıyorum, hadi başlayalım!


1 Nibbles üzerinde kaç tane TCP portu açık ?


Öncelikle rustscan taraması yaptım

rustscan -a nibbles.htb (Burada normalde IP adresi yazmam gerekirdi ama ben /etc/hosts dosyasına nibbles.htb olarak ismini tanımladığım için direkt bu şekilde kullanabiliyorum. Bu hem işimi kolaylaştırıyor hem de daha okunaklı oluyor.)


ree

2 açık port bulduk nmaple versiyon taraması yaptım

cevap :2


ree

2. Webserver üzerindeki blogun relative path’i (göreli yolu) nedir?


web sunucusunu açıyorum sadece boş bir hello world yazılı sayfa ile karşılaşıyorum

sayfanın kaynak kodlarına baktığımda ise bir not var


ree

<! — /nibbleblog/ dizini. Burada pek ilginç bir şey yok! → yazan küçük bir not var


ree

yönlendirdiği sayfaya gidiyorum


ree

blog sayfasıyla karşılaştım yani


cevap /nibbleblog


3. Blogda hangi içerik yönetim sistemi (CMS) kullanılıyor?


ree

Atom · Top · Powered by Nibbleblog (Yani: Atom · En Üst · Nibbleblog tarafından destekleniyor)


Bu genellikle sitenin alt kısmında bulunur ve sitenin Nibbleblog CMS ile yapıldığını gösterir.

cevap:Nibbleblog


4. Admin kullanıcı adını içeren XML dosyasının göreli yolu (relative path) nedir?


İpucu kısmında feroxbuster adında bir brute force aracı kullanmam öneriliyordu. Daha önce denemediğim için küçük bir Google araştırması yaptım ve nasıl kullanacağımı öğrendim. Şimdi onunla dizin taraması yapacağım.

ree

tarama sonucunda http://nibbles.htb/nibbleblog/content/private/users.xml adlı sayfaya ulaştım içeriğinde kullanıcı adı admin olduğunu söylüyordu


ree

cevap: /nibbleblog/content/private/users.xml


5. Bloga giriş yapmak için admin kullanıcısının parolası nedir?


İpucu kısmında makine adını şifre olarak kullanmamız gerektiğini söylüyor


cevap : nibbles


6. Hedef makinede çalışan nibble blog’un versiyonu nedir? “v” harfini dahil etme.

Forexbuster ile dizin taraması yaptığımda kullanıcı girişi olduğunu farkettim


ree

verilen user ve passwordu kullandığımda giriş yapabildim


ree

versiyon bilgisi admin paneli içerisindeki "Settings" (Ayarlar) kısmında net şekilde yazıyordu:


Nibbleblog 4.0.3 “Coffee” — Developed by Diego Najar


Yani burada cevabımız sadece sayı kısmı: 4.0.3 Çünkü soru bize özellikle "v harfini dahil etme" diyordu. Versiyonun başında v olsa bile, bunu yazmadan giriyoruz.

cevap:4.0.3


7. Bu NibbleBlog sürümünde, dosya yükleme yoluyla kimliği doğrulanmış code execution (kod çalıştırma) açığına ait 2015 tarihli CVE ID’si nedir?


nibbleblog cve 4.0.3 ü google araması yaptığımda


ree

cve bilgisini buldum

cevap:CVE-2015–6967


8. Hedef makinadaki Nibbleblog instance’ı hangi user (kullanıcı) üzerinde çalışıyor?


Nibbleblog’un versiyonu 4.0.3 idi. Bu sürümde CVE-2015-6967 numaralı, kimliği doğrulanmış kullanıcı üzerinden dosya yükleyerek uzaktan komut çalıştırmaya (RCE) izin veren bir zafiyet mevcut. GitHub'da bulduğum bir Python exploit dosyasını kullanarak bu açığı test ettim.


ree
  • -t: hedef URL

  • -u & -p: admin kullanıcı adı ve şifresi (önceden brute force veya gözlemle elde edilmişti)

  • -rce: çalıştırmak istediğimiz komut (whoami)


Görüldüğü üzere exploit başarılı şekilde çalıştı, zararlı PHP dosyamı yükledi ve whoami komutunun çıktısı olarak sistemde çalışan kullanıcıyı verdi: nibbler.

cevap:nibbler


9. Nibbler kullanıcısının home dizininde bulunan flag’i gönder.


exploit scripitini kullanarak shell aldım ve kendi makineme yönlendirdim


ree
ree

Exploit’i çalıştırdıktan sonra payload yüklendi ve bana geri bağlantı geldi. Artık hedef makinada interaktif shell’im vardı. Öncelikle dizinler arasında gezindim home dizini altında nibbles klasörü içinde user.txt yi buldum ve ilk flağımızı aldım


ree

10.Nibbles makinesinde nibbler kullanıcısının root olarak çalıştırabileceği scriptin adı nedir?


Yetki yükseltme aşamasında ilk işim, sistemde setuid (suid) bit’i set edilmiş dosyaları bulmak oldu. Setuid, dosyanın çalıştırıldığı kullanıcıya, dosya sahibinin (genellikle root) yetkilerini geçici olarak verir. Böyle dosyalar, yetki yükseltme için potansiyel fırsatlar sunar.

Bunun için terminalde şu komutu kullandım:

sudo -l

Yani nibbler kullanıcısı, şifre sormadan root olarak /home/nibbler/personal/stuff/monitor.sh scriptini çalıştırabiliyor. Bu çok güzel çünkü bu scripti kullanarak root yetkisi kazanabilirim.


ree


11 monitor.sh dosyasına verilen izinleri girin. Linux dosya izinleri formatını kullanın, örneğin: -rw-rw-r —


ree

dosyayı zip dosyasından çıkarıp monitor.sh dosyasını buldum ls -l komutu ile izinlerini ortaya çıkardım

cevap:-rwxrwxrwx


12.Root kullanıcısının ana dizininde bulunan flag’i gönder.


Yetki yükseltme için monitor.sh dosyasını kendim oluşturdum. İçine basit bir bash shell komutu yazdım ki root yetkisiyle shell açabileyim. Komutum şu şekildeydi:

echo -e ‘#!/bin/bash\n/bin/bash’ > /home/nibbler/personal/stuff/monitor.sh

echo komutu, terminalde yazdığım metni çıktı olarak veriyor.

-e parametresi ise echo’nun içinde yazdığım özel karakterleri, mesela \n yeni satır karakterini, gerçek anlamda satır atlama olarak algılamasını sağlıyor.


‘#!/bin/bash\n/bin/bash’


kısmı yazdırmak istediğim metin. Burada ilk satır #!/bin/bash scriptin bash scripti olduğunu belirtmek için kullanılıyor, buna shebang diyoruz. Sonraki \n yeni satır anlamına geliyor, yani alt satıra geçiyor. İkinci satırda ise /bin/bash var, bu da script çalıştığında yeni bir bash shell açması için yazıldı.

Son olarak > /home/nibbler/personal/stuff/monitor.sh diyerek, bu yazdıklarımı monitor.sh dosyasına yönlendirdim. Eğer dosya yoksa oluşturuyor, varsa önce içini siliyor, sonra yeni metni yazıyor.

Böylece kendi basit ama etkili shell açan scriptimi oluşturmuş oldum.

Sonra bu dosyayı sudo ile çalıştırdım:


sudo /home/nibbler/personal/stuff/monitor.sh


Ve gerçekten root olarak shell açıldığını gördüm. whoami komutunu çalıştırdığımda çıktı root oldu.


Artık root klasörüne girip root.txt dosyasını okuyabildim:


ree

Nibbles, “Easy” kategorisinde olsa da içinde gizli cevherler barındıran bir makineydi. Özellikle sudo -l ile nibbler kullanıcısının hangi scriptleri şifresiz root olarak çalıştırabileceğini görmek ve oradan root shell almak çok keyifliydi.

Eğer sen de bu yazıyı okuyorsan ve benzer makineleri çözmek istiyorsan, sakın pes etme! Denemeye devam et, çünkü her deneme seni daha da geliştirir.

CTF dünyasında her çözüm bir şey öğretir. Bir sonraki yazıda görüşmek üzere!

bottom of page