Vulnhub’dan indirdiğim ve başlangıç düzeyi bu makineyi beraber çözelim.

Anasayfanın görüntüsü bu şekilde.

PwnLab

Netdiscover’dan faydalanarak ip adresini buldum ve 80 portu açıktı.
80 Portu Üzerinden Yoğunlaştım.

Dosya yüklemek için kullancı adı ve şifre istiyordu.
Boş durmadım hemen bir sql injection login bypass denedim tabiki işe yaramadı 🙂

Sayfaları değiştirirken ?page=login gibi bir parametre dönüyor.
Aklıma LFI geldi. Çeşitli şeyler denedim ve Bwapp’de de kullanılan bu yöntem ile verileri elde ettim.
../../etc/passwd  veya türevleri çalışmıyor.

php://filter/read=convert.base64-encode/resource=config
PwnLab

Config dosyalarını okudum.Ve bunun ile mysql üzerinde giriş yapabilirim.

Base64  çıktı verdiği için bunu bir siteden decode ettim.

PwnLab
Cpanel aradım fakat yok. Daha sonra google’dan terminal ile mysql girişini nasıl yapabileceğimi görmek için bunu buldum.

PwnLab

mysql -u root -p -h 192.168.244.139

PwnLab

Ve şifreyi girip mysql girişini sağladım.

use Users;

show tables;

select * from users;

Sorguları ile bilgileri aldım veriler base64 ile şifrelenmiş.(Facebook’un verileri text olarak tutmasından iyidir :D)

PwnLab

Bilgileri decode ettim ve dosya yükleme ekranı geldi.

Dosya yükleme için Php Reverse Shell ayarladım.
Şu kaynaktan faydalandım:Php Reverse Shell

Dosya yükleme bölümünün sıkıntısız bir şekilde phpyi yükleyeceğini düşünerek devam ederken bütün ayarları yaptım.
Yazılım php’yi kabul etmedi gif olarak yükleniyor ve bunun için php’nin başına GIF89a; yazdım.Fakat dosya yükleme yöntemleri ile faydalanmak çok zorlaştı.
Daha sonra index ve upload içindeki php kodlarını okudum.Index’de şöyle bir durum var lang cookie’yi kullanıyor ve bundan burpsuite ile faydalanmak mümkün.Lang cookie ekrana olduğu gibi yazdırıyor bu bir php kodunu çalıştırabileceğinden
lang=../upload/dosyaadi.gif şeklinde çalıştırdım.

PwnLab

Sonrasında :
Terminalden su komutunu kullandım.;
Hata mesajı must be run from a terminal aldım.
Bunu interaktif shell ile çözdüm.
interaktif olmayan bir shell size rahat bir çalışma ortamı sunmuyor.Bu shell tipi veri girişi sağlamıyor.
python -c 'import pty; pty.spawn("/bin/bash")'

su kane
Girişinden sonra /home/kane/ dizinindeki dosyalara baktım.
msgmike bash dosyasını buldum ama çalıştıramadım. PATH Çevre Değişkenini ayarladım.

export PATH=.:$PATH
echo "/bin/bash" > cat
chmod +x cat

Komutları yetki yükseltmiş oldum..
./msgmike yaptığımda mike kullancısına geçtim.

Bu seferde cd /home/mike giderek burdaki bir dosyayı çalıştırmak için çabalara girdim.

Bir komut soru sorması gerek daha sonrasında komut enjeksiyonu ile root yetkisi eldiyorsunuz.
Bunu  aşağıdaki kodu sonuna ekleyerek elde ettim.
Bunu çeşitli kaynaklardan bakarak edindim 🙂
opensesame; bash -p

Root kullancısı ile flag.txt okuduğumuzda
Tebrik eden bir yazıyla karşılaşıp makine bitmiş oluyor.

Congrats!

Kaynaklar :
Çözemediğim ve takıldığım durumlarda çok fazla kaynaktan kopya aldım ,denedim 🙂 Özellikle bu son taraftaki path variable ve komut enjeksiyonunda.