Neler yeni

InfoSecWarrior CTF – 03 | WriteUp (1 Viewer)

Arık Böke

Grafiker
majorrr
Mesajlar
356
Credits
0
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.

screenshot_1-2.png

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

screenshot_2-3.png

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

screenshot_3-2.png

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.

screenshot_4-2.png

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.

screenshot_5-2.png

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

screenshot_6-3.png

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

screenshot_7-2.png

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.

screenshot_8-2.png

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

screenshot_9-2.png

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

screenshot_10-3.png

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.

screenshot_11-2.png

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

screenshot_12-2.png

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.

screenshot_13-2.png

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

screenshot_14-2.png

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.

screenshot_16-2.png

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.

screenshot_17-2.png

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.

screenshot_18-5.png

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.

screenshot_18-2.png

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.

screenshot_19-2.png

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 .”

screenshot_21-4.png

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

DarksoN

Beyaz Takkeli
majorrr
Mesajlar
292
Credits
285
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.

screenshot_1-2.png

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

screenshot_2-3.png

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

screenshot_3-2.png

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.

screenshot_4-2.png

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.

screenshot_5-2.png

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

screenshot_6-3.png

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

screenshot_7-2.png

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.

screenshot_8-2.png

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

screenshot_9-2.png

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

screenshot_10-3.png

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.

screenshot_11-2.png

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

screenshot_12-2.png

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.

screenshot_13-2.png

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

screenshot_14-2.png

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.

screenshot_16-2.png

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.

screenshot_17-2.png

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.

screenshot_18-5.png

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.

screenshot_18-2.png

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.

screenshot_19-2.png

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 .”

screenshot_21-4.png

Step 22 : Ve sistem üzerinde root haklarına sahip olduk. Flag’imiz de burada :)
eline sağlık
 

Bu konuyu görüntüleyen kullanıcılar