Makine CTF 101 – Vulnhub : Deception Writeup

Merhabalar bu yazıda başlangıç seviyesindeki bir makineyi çözerek temel makine çözme tekniklerini ve araçları keşfedeceğiz. Tabii ki teknikler ve araçlar makineden makineye değişir ancak bu çözümün temel seviyede makinelerin nasıl çözüldüğüne dair bir giriş niteliğinde olmasını umuyorum, iyi okumalar dilerim. Makineyi https://www.vulnhub.com/entry/haclabs-deception,427/ adresinden indirebilirsiniz.

Amacımız “Deception” makinesinde gizlenen 3 bayrağı bulmak. İlk adım hedef hakkında bilgi toplamak. Bu aşamada netdiscover aracını kullanacağız.

Netdiscover, ağdaki cihazları tespit etmek için kullanılan bir keşif aracıdır. Komut satırına netdiscover yazarak çalıştırıyoruz.

Hedefin IP adresini 192.168.1.106 olarak bulduk. Bilgi toplama işlemimiz daha bitmedi. Adresi bulduktan sonra sırada adresteki açık portları ve çalışan servisleri öğrenmek var. Adresteki açık portlar ve çalışan servisler bizlere o adresteki güvenlik risklerini tespit etmemizde işe yarar. Riskleri değerlendirip zafiyeti en yüksek seviyede olan servisi tespit etmek sızma sürecinin bir aşamasıdır. Bunun sonucunda makineye sızmaya nereden başlayacağımızı belirleriz. Bu aşamada kullanacağımız araç Nmap.

Nmap (network mapper), ağ keşfi ve güvenlik denetimi için kullanılan bir tarayıcıdır. Tarama sırasında hedefe paketler gönderir ve gelen yanıtlar sayesinde hedefin açık portlarını, çalışan servislerini ve sürümlerini ve işletim sistemi gibi bilgileri analiz edip önümüze sunar. Kullanımı

nmap [parametreler] [adres]

şeklindedir. Şimdi makinemiz üzerinde kullanalım:

“-sV” parametresini açık portlardaki servislerin neler olduğunu ve bu sürümlerini öğrenmek için kullandık.

Görüldüğü üzere 22 ve 80 olmak üzere 2 port açık durumda. 80 portunda bir apache web sunucusunun çalıştığı gözüküyor. Adresi tarayıcıda deniyoruz.

Apache2’nin varsayılan sayfası bizi karşıladı. Bu sunucunun arkasında bir şeyler var ancak şu anlık tarayıcıda göremediğimiz için terminale geri dönüp “enumerating” aşamasına geçiyoruz. Bunun tam olarak Türkçe karşılığını bilmiyorum ama sıralamak, ortaya çıkarmak da diyebiliriz. DIRB aracını kullanacağız.

Bu araç web sunucusuna içinde barındırdığı kelime listesi ile saldırı yapar ve gelen yanıtlara göre web sitesindeki dizinleri açığa çıkarır.

Aşina olduğumuz iki sayfa ile karşılaşıyoruz. “wordpress” ve “wordpress/robots.txt”. WordPress dizinini tarayıcıda açıyoruz ve sıradan bir sayfayla bizi karşılıyor. Sırada bu wordpress sitesinin içindeki zafiyetleri ve kullanıcıları keşfetmek var. Bunu çok bilinen bir wordpress zafiyet tarayıcısı olan WPscan’i kullanarak gerçekleştireceğiz.

–enumerate u parametresini kullanıcıları açığa çıkarmak için kullandık ve 2 kullanıcı ismi ortaya çıktı. Bu kullanıcı isimleri bir kenarda dursun ve şimdi de daha önce karşılaştığımız robots.txt sayfasını inceleyelim.

ve izin verilen robots.html sayfasına giriyoruz.

Örnek olarak kendi ismimizi yazıp butona tıklıyoruz.

Butundan bir şey elde edemedik. Sayfa kaynağına bakıyoruz.

admindelete.html adlı sayfaya giriyoruz.

Karşımıza çıkan sayfanın kaynak koduna bakınca hiçbir ipucu ile karşılaşmıyoruz ancak bize ipucuyu zaten gözümüzün önüne koymuş. Biraz deneme yanılma yoluyla hint.html sayfasını keşfediyoruz.

“İpucu: Anasayfadaki API tokenlerini topla.” Anasayfaya dönüp kaynak kodundan bütün API tokenleri topluyoruz.

Sırayla bütün tokenleri birleştirince 5F4DCC3B5AA765D61D8327DEB882CF99 değerini elde ediyoruz. Değeri tarayıcıda deniyoruz.

shell’e ulaşmanın başka bir yolu. Bu ipucu bize ssh kullanarak sunucuya bağlanmamızı söylüyor. wpscan’da keşfettiğimiz kullanıcı adlarını deniyoruz ve yash kullanıcısının parolasının birleştirdiğimiz tokenler olduğunu keşfediyoruz.

yash kullanıcı adıyla makineye giriş yaptık. Bundan sonraki aşamalarda sadece temel linux komutlarını kullanıyoruz. ls -la komutuyla dosya ve klasörleri gizli olanlarla birlikte listeliyoruz ve cat komutuyla flag1.txt yi okutup ilk bayrağımıza ulaşıyoruz.

Dosyalara göz atarken .systemlogs içinde birkaç ipucuya ulaşıyoruz.

haclabs

A=123456789

+A[::-1]

sonucu haclabs987654321 değerini çıkarıyoruz ve bu değeri daha önce wpscan’de bulduğumuz haclabs kullanıcı adıyla ssh bağlantısı gerçekleştiriyoruz. cd komutuyla /home/haclabs dizinine gelip ls ile dosya ve klasörleri listeliyoruz ve 2.  bayrağımızı da cat komutuyla buluyoruz (base64 ile şifrelenmiş bir küme).

Dizinde bulunan gen.py ve haclabs.py dosyalarını da inceliyoruz. gen.py’ye ilgimizi çeken bir şey çıkmıyor ancak haclabs.py’deki changetheworld yazısı dikkatimizi çekiyor.

Bu yazıyı “su root” komutunda deniyoruz ve makineye root olarak erişimi kazanıyoruz.

/root klasörüne gelip deception adlı dosyadan 3. ve son bayrağımızı da buluyoruz.

Çözüm buraya kadardı, faydalı olması dileğiyle..

 

About The Author

Reply