InfoSecWarrior CTF – 01 | WriteUp

Merhabalar arkadaşlar, bu yazımda sizlerle InfoSecWarriorCTF – 01 isimli zafiyetli makinenin WriteUp’ını paylaşacağım. Adım adım ekran görüntülerini ekleyerek ve açıklamalar yaparak detaylı bir WriteUp hazırlamaya çalıştım. İyi okumalar dilerim.

Okumanıza başlamadan önce sizlere küçük bir uyarı vermek istiyorum. InfoSecWarriorCTF makinelerinin WriteUp’larını özellikle teknik bilgi gereksinimini en alçak seviyede tutarak hazırlıyorum. Bu sebepten dolayı belirli bir teknik bilgiye sahip kişiler için fazla detay ve açıklama içeren bu InfoSecWarriorCTF WriteUp’ları sıkıcı gelebilir.

O hâlde başlayalım (:

Step 1 : Öncelikle kendi saldırgan makinemizin IP’sini öğrendik.

Step 2 : Ağ keşfi için yani ağda ki aktif cihazları bulabilmek için “nmap -sn 10.0.2.0/24” komutu kullandık. Nmap toolunda ki <-sn> parametresi ile “Ping Scan” yaptırabiliyoruz.

nmap -sn 10.0.2.0/24

Step 3 : Kurban makinede “nmap -sS -sV -p- 10.0.2.13” komutunu çalıştırdık. 22. portunda bir SSH servisi ve 80. portunda bir http servisi çalıştığını gördük.

nmap -sS -sV -P- 10.0.2.13

Step 4 : Bir tarayıcı üzerinden saldırgan makinenin 80. portuna gittiğimizde, orada bir Apache test sayfasının yayınlandığını gördük.

Step 5 : İnternet sitesinde bulunan başka dizinleri brute-force(kabakuvvet) saldırısı ile bulan “dirb” toolunu kullandık. Bulunan dizinlerde tek tek dolaşarak bir ipucu var mı diye arayacağız.

dirb http://10.0.2.13

Step 6 : Aşağıda ki ekran görüntülerinde belirtilmiş olan dizinlerde “bağlantı hatası” veya “boş” sayfa bulduk.

Step 7 : Bu dizin,(wp-includes) wordpress’in çalışması için gerekli olan çekirdek dosyalarını bulundurur. Normal şartlarda burada bir şey çıkması mümkün değil fakat diğer dizinlerde bir şey bulamazsak bu klasörler arasında araştırmalar yapabiliriz.

Step 8 : Ekran görüntüsünde belirtilen dizine geldiğimizde, “url” tag’lerinin arasında bir adres belirtildiğini gördük. Fakat adresin “index.html” değil de “index.htnl” olarak verilmesi oldukça şaşırtıcı geldi.

Step 9 : Kurban makinemizin IP’si sonuna “/index.htnl” yazdıktan sonra asıl işimizin olduğu sayko GIF içeren internet sitesine erişebildik (:

Step 10 : Sayfa kaynak kodunu incelediğimizde /cmd.php sayfasında çalışan “hidden” yani gizlenmiş bir form gördük.

Step 11 : Inspect Element ile ilgili form’un “hidden=True” değerinin olduğu satırı bulduk.

Step 12 : Bu satırdan “hidden=True” parametresini tamamen sildik.

Step 13 : Sayfamızda ki form görünür hale geldi.

Step 14 : Burası bir komut satırı gibi gözüktüğü için(cmd.php) kendi makinemize ping atmayı denedik.

Step 15 : Fakat bir hata aldık ve pingimizi atamadık.

Step 16 : Bu defa listeleme komutu olan “ls” komutunu çalıştırmayı deneyeceğiz. Inspect Elements ile tekrar incelediğimde bu formun GET methoduyla çalıştığına gözümüze çarptı. Methodu “POST” olarak değiştirdikten sonra kodumuzu gönderdik.

Step 17 : Gönderdiğimiz “ls” komutunun başarıyla çalıştığını gördük. Cmd.php’in de bulunduğu dizinde başka hangi dosyaların var olduğunu görebildik.

Step 18 : Dizinde bulunan note.txt dosyasını görüntüleyecek olan “cat note.txt” komuıtunu çalıştırdık. Burada bize daha da zorlamamızı söyleyen bir ipucu verilmiş. Fakat burada bizi ilgilendirecek bir şey bulamadık.

Step 19 : Sistemde var olan kullanıcıların bulunduğu “passwd” dosyasını görüntüleyecek olan komutu çalıştırıyoruz. Bu dosya da gördüğümüz üzere “isw0, isw1, isw2” isimlerindeki kullanıcıları bulmuş olduk.

Step 20 : Dizinde bulunan bir diğer dosya olan “cmd.php”nin içeriğini görüntüleyebileceğimiz komutu çalıştırdığımızda, “isw0” kullanıcısını ve “şifresini” bulduk.

Step 21 : Kurban makinemizde SSH servisinin çalıştığını biliyoruz. Hemen “isw0” kullanıcısının kimlik bilgilerini(credentials) kullanarak kurban makinesinde oturum açmayı denedik. Ve başarılı bir şekilde kurban makinesine eriştik.

Step 22 : isw0 kullanıcısı ile yetkili erişime sahip olup olamayacağımızı deneyebilmek için “sudo su” komutunu çalıştırdık ve ardından isw0 kullanıcısının şifresini girdik. Fakat aldığımız hata mesajında isw0 kullanıcısının sudo haklarına sahip olamayacağı belirtildi. Biz de “sudo -l” komutu ile isw0 kullanıcısının bu makinede hangi komutları çalıştırabileceğini görüntüledik. isw0 kullanıcısı, root hakları ile /bin/ping, /bin/ping6, /bin/rpm, /bin/ls ve /bin/mktemp komutlarını çalıştırabiliyor gözüküyor.

Step 23 : isw0 kullancısının çalıştırabildiği bu komutlar ile bir Privilege Escalation(Yetki Yükseltme) işlemi yapılabiliyor mu diye Google üzerinden araştırmalar yaptık ve sonrasında şu siteyi bulduk.

Step 24 : “Sudo rpm” komutu ile yetki yükseltme yapılabilmenin mümkün olduğunu söyleyen ilgili internet sitesini bulduk.

Step 25 : Araştırmalarımız sonucu öğrendiğimiz,
<sudo rpm –eval ‘%{lua:os.execute(“/bin/sh”)}’>
komutunu çalıştırdık ve bizden istenen isw0 kullancısının şifresini girdik. Sonrasında “id” komutunu çalıştırdığımızda sistemde “root” olduğumuzu doğruladık (:

sudo rpm --eval '%{lua:os.execute("/bin/sh")}'

Step 26 : Root dizinine gittikten sonra flag.txt’nin orada olduğunu gördük. İşte bayrağımız (:

0x029

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

WordPress.com'da bir web sitesi veya blog oluşturun

Yukarı ↑

%d blogcu bunu beğendi: