Merhaba, Bu yazımda sizlere VULNHUB ‘da yer alan KB-VULN: 2 adlı makinanın çözümünden bahsedeceğim. Makina için KernelBlog ekibine teşekkür ederim. Keyifli okumalar…

1. Keşif Aşaması

Makina kalıp dosyası siteden indirildikten sonra sanallaştırma yazılımları tarafından import edilir ve çalıştırılır. DHCP servisi tarafından atanan ip adresinin tespit edilmesi için netdiscover aracı ile ağda tarama yapılır.

netdiscover -i eth0
Hay aksi

Ip adresi tespit edildikten sonra nmap ile makinenin açık portları ve portlarda çalışan servisleri tespit edilir.

Hay aksi

Tarayıcı ile istek atıldığında Apache Web server varsayılan sayfası açılmaktadır. Web dizin taraması gerçekleştirilir.

gobuster dir -u http://192.168.56.108/ -w /usr/share/wordlists/dirb/big.txt
Hay aksi

/wordpress dizinine istek atıdığında anasayfanın düzgün görüntülenmediği tespit edilir. /etc/hosts dosyasına 192.168.56.108 kb.vuln eklenir ve yenilenir. Sayfa kaynak kodları incelenir. Herhangi bir bilgiye rastlanmaz.

Hay aksi

Daha sonra Wordpress CMS dizininde tarama gerçekleştirilir. Standart wordpress dosyaları dışında ilave bir bilgi görülmemektedir.

gobuster dir -u http://192.168.56.108/wordpress -w /usr/share/wordlists/dirb/big.txt
Hay aksi

Nmap taramasında tespit edilen 445 ve 139 numaralı portlarda çalışan samba uygulaması için (SMB Servisi) için smbclient adlı yazılım ile enumeration yapılır.

smbclient -L ///192.168.56.108
# -L parametresi ağda paylaşılan dosyları listeler
# Username '', Password '' (Anonim Erişim)
Hay aksi

Anonymous adlı klasöre şifresiz erişim sağlanabilmektedir. Ayrıca Linux makinalarda samba servisine enum4linux aracı ile tarama işlemi gerçekleştirilebilmektedir. Erişime açık olan klasöre bağlantı sağlanır. ls komutu ile dizin listelenir.

smbclient \\\\192.168.56.108\\Anonymous
Hay aksi

Bir yedek dosyasının şifresiz bir şekilde paylaşıma açıldığı görülmektedir. Dosya get komutu ile indirilir ve arşiv dosyası açılır. Dosya içerisinde çalışan wordpress uygulmasına ait dosyalar ve bir adet remember_me.txt dosya yer almaktadır.

Hay aksi

Admin kullanıcısına ait parola bilgisi görülmektedir. Wordpress admin paneline giriş yapılır. Daha sonra shell bağlantısı yapmak için tema dosyalarında düzenleme yapılır. Bu işlem için Appearance -> Theme Editor sekmeleri tıklanır. Açılan sayfada tema secilir. Sağ sütunda php sayfaları yer almaktadır. Ben genelde 404.php dosyasında değişiklik yapmaktayım.

Hay aksi

2. Erişim Sağlanması

http://kb.vuln/wordpress/wp-content/themes/twentynineteen/404.php

Netcat ile 4444 numaralı port dinlenir. Yukarıda yer alan adrese istek atıldığında www-data kullanıcısı ile terminal bağlantısı sağlanmış olur.

python -c 'import pty;pty.spawn("/bin/bash")'

Komutu ile interaktif shelle geçilir. Home dizinine gidilerek kullanıcılar listelenir.

Hay aksi

Kbadmin klasör yetkilerine dikkat edildiğinde tüm kullanıcılar tarafında okuma ve çalıştırma yetkisi verildiği görülmektedir. Dizin içerisine girilir.

Hay aksi

User.txt değeri okunarak ilk flag elde edilir.

Hay aksi

3. Yetki Yükseltme

Kbadmin dizininde yer alan note.txt dosyası okunur. Yetki yükseltilmesi ile ilgili docker kullanılması yönünde bir ipucu olabilir.

Hay aksi

İlk olarak wordpress admin panelinde elde edilen parola kbadmin kullanıcısı için denenir. su kbadmin Başarılı bir şekilde kbadmin kullanıcısı ile oturum açılır. 🙈 sudo -l komutu ile kullanıcı yetkileri kontrol edilir.

Hay aksi

Kbadmin kullanıcısına sudo işlemlerinde parola girmek şartıyla sınırsız yetki verildiği görülmektedir. sudo su komutu ile root kullanıcısına geçilir. /root dizinine geçilerek flag değeri okunur.

Hay aksi