InfoSecWarrior CTF – 03 | WriteUp

Merhabalar arkadaşlar, bu yazımda sizlerle InfoSecWarriorCTF – 03 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 : Kurban makinesi üzerinde çalışan servisleri ve bu servislerin version bilgilerini öğreneceğimiz nmap komutunu çalıştırdık.

nmap -sS -sV -p- 10.0.2.14

Step 2 : 80. portta bir http servisi çalıştığı için tarayıcımız üzerinden kurban makinenin IP’sine gittik.

Step 3 : Directory taraması için bu sefer gobuster aracını kullandık. Kullandığımız komut

gobuster dir -u http://10.0.2.14 -w /usr/share/wordlists/dirb/big.txt

Step 4 : Tarayıcımda kurulu olan “Open Multiple URL” add-onu’u kullanarak directory taraması sonucunda var olduğu söylenen URL’leri açmaya çalıştık.

Step 5 : Ekran görüntüsünde olan phpMyadmin sayfası dışında diğer URL’lere erişemedik. Forbidden veya error hataları aldık.

Step 6 : İlgili phpMyAdmin sitesinin kaynak kodunu incelediğimizde bir kaç satırda “user:root” şeklinde bilgilere rastladık.

Step 7 : Login sayfasında kullanıcı adına “root”, şifre olarak default şifreleri deneyerek login olmaya çalıştık. Ve başarılı da olduk.
Username : root
Password : root

Step 8 : Veritabanı hakkında çeşitli bilgilere sahip olduk. İlgili veritabanı sürümlerinde yayınlanmış güvenlik açıkları var ise bunları kullanabiliriz.

Step 9 : Veritabanı üzerinde enumeration yaparak işimize yarayabilecek bir şeyler bulabilmek için tüm tablolara göz attık.

Step 10 : ” wp_users ” tablosunun içinde “krishna” ve “user1” isimlerinde ki kullanıcıları ve parolalarının hash’lenmiş hallerini bulduk.

Step 11 İki farklı .txt dosyasına kullanıcı adı ve şifresinin hashlenmiş halini ekran görüntüsünde gözüktüğü gibi yazdık. Şöyle ki;
krishna:$P$B7CNxePWZrtyQSLKyQirMzEGoX87qx1
user1:$P$BgpY41TMEIWni3G0aryvshFyq6YFkK.

Step 12 : John tool’unu kullanarak hashlenmiş parolaları kırmaya çalıştık. Kullandığımız komut şu şekilde;

john --wordlist=/usr/share/wordlists/rockyou.txt /root/Desktop/krishna.txt

Kullandığımız rockyou.txt wordlist’i ile hashlenmiş parolaları kırdık. Kırdığımız parolaları görebilmek için ise kullandığımız komut şu şekilde;

john --show krishna.txt

Elde ettiğimiz sonuç ise;
krishna kullanıcısının parolası infosec
user1 kullanıcısının parolası ise user1

Step 13 : Kurban makinesi üzerinde SSH çalıştığını biliyoruz. Elde ettiğimiz kimlik bilgileri ile kurban makinesine SSH ile bağlanmaya çalıştık. “user1” kullanıcısının bilgileri ile bağlantı yapmayı denedik fakat bağlantı yapamadık.

Step 14 : Krishna kullanıcısının bilgileri ile bağlantı yapmayı denedik ve kurban makinesine başarılı şekilde bağlantı yapabildik.

Step 16 : Kurban makinesinde çalışan distro versiyonuna ve kernel sürümüne bakarken şu komutları kullandık;
Kernel sürümünü öğrenmek için “uname -a”
Distro sürümünü öğrenmek için “cat /etc/lsb-release”

Bu adımda ki amacımız, eğer baktığımız kernel sürümünde veya distro versiyonunda bir güvenlik açıklığı yayınlandıysa bunu kullanarak yetki yükseltebilir(Privilege Escalation) kurban makinesi üzerinde root haklarına sahip olabiliriz.

Step 17 : Kurban makinesinde farkı dizinlerde gezinerek işe yarar bilgiler toplamaya çalıştık. “loopspell” dizinin altında “backup.c” ve “code_compiler.sh” isimlerinde dosyalar bulduk ve içeriklerini görüntüledik.

Step 18 : Çalıştırdığımız “sudo -l” komutu ile “krishna” kullanıcısının bu makinede hangi komutları çalıştırabileceğini görüntüledik. Ekran görüntüsünde de gözüktüğü üzere “krishna” kullanıcısı, “loopspell” kullanıcısı üzerinden şifre gerekmeksizin “home/loopspell/code_compile.sh” isimli bash dosyasını yetkili bir şekilde çalıştırabileceğimizi gördük.

Step 19 : “code_compiler.sh” dosyasının içeriğini görüntülediğimizde “/usr/bin/gcc” çalıştırıldığını görmüştük. İnternet üzerinden “gcc ile sudo privilege escalation” benzeri cümleler ile araştırma yaptık ve aşağıda ki siteyi ve çalıştıracağımız komutu öğrendik.

Step 20 : Kullandığımız komut;

sudo -u loopspell /home/loopspell/code_compiler.sh "-wrapper /bin/sh,-s ."

Çalıştırdığımız bu komut ile loopspell kullanıcısının haklarına erişmiş olduk. Sonrasında “id” komutunu çalıştırdığımızda “loopspell” kullanıcısı olduğumuzu gördük ve burada user flag’ini aldık.

Step 21 : Root haklarına sahip olabilmek için “sudo -l” komutunu tekrar çalıştırdık. Komutun çıktısından öğrendiğimiz, şifre gerekmeksizin herhangi bir kullanıcı haklarıyla /home/loopspell/code_compiler.sh dosyasını/komutunu çalıştırabildiğimiz. Bunu öğrendikten sonra çalıştırdığımız komut;

sudo -u root/home/loopspell/code_compiler.sh "-wrapper /bin/sh,-s ."

Step 22 : Ve sistem üzerinde root haklarına sahip olduk. Flag’imiz de burada (:

0x031

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: