2 minutes
VULN KB VULN:2 Write Up
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
Ip adresi tespit edildikten sonra nmap ile makinenin açık portları ve portlarda çalışan servisleri tespit edilir.
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
/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.
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
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)
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
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.
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.
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.
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.
User.txt değeri okunarak ilk flag elde edilir.
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.
İ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.
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.