RootMe CTF Çözümü İnceleyelim

Merhaba arkadaşlar, bugün hazırladığım blogun konusu Siber Güvenlik alanında olacak. TryHackMe sitesi üzerinde çalıştığım RootMe CTF (Capture the Flag) deneyimlerimden bahsederken, Web zaafiyetlerinden yararlanarak yeterince güvenli olmayan bir sunucunun nasıl hacklenebildiğini göreceğiz.

Tabii ki konu Siber Güvenlik ve Hacking olunca bu anlamda en önemli Pentest (Penetration Test) Tool'larını bulunduran ve bu iş için özelleştirilmiş olan Kali Linux işletim sistemini kullanacağız. Bu yazı boyunca Kali'de çeşitli tool'lar kullanarak birçok metot ve yöntem öğreneceğiz. Yukarıdaki ejderhayı daha önce gördüyseniz Kali'yi muhtemelen tanıyorsunuz. :
TryHackMe, siber güvenlik alanında çalışmak ve kendini geliştirmek isteyen her kullanıcı için sanal lab ortamları sunan bir web sitesidir. Hacking alanında öğrenilen bilgilerin gerçek dünyada art niyetle kullanılmaması gerektiğini hatırlatarak bu anlamda faydalı bir site olduğunu söylememiz gerekir.

ef7e4e_de40f93ebe0746838b64cf5fcaab9fcc~mv2.png




https://tryhackme.com/room/rrootme linki üzerinden CTF'e ulaşabilirsiniz.




Evet gelelim lab ortamını hazırlamaya, öncelikle CTF sayfasına giderek Task 1'i açıyoruz. "
Start Machine" butonuna basarak hackleyeceğimiz makinenin açılmasını sağlıyoruz.




ef7e4e_d4924acb18c24b3fac529892d421eca7~mv2.png






Görüldüğü gibi makine hazır hale geldikten sonra IP bilgisini bize veriyor.




ef7e4e_5fb1ca78b2244778ad63a740e416e8f2~mv2.png






Makine hazır olduğuna göre artık bizim VPN'e bağlanmamız gerekiyor. VPN'e bağlanmak için soru işaretli butona tıklayıp daha sonra görselde belirtilen "
See Instruction" adımları takip edilmelidir. Bu adımlara değinmeyeceğim.




ef7e4e_f8cfa4d03f5941c4a6828154ef68444e~mv2.png






Adımları takip ettikten sonra size özel .ovpn uzantılı bir dosya indirmeniz gerekiyor ve bu dosya ile vpn ağına bağlanıyoruz.


# openvpn <YOUR_FILE>.ovpn




Bu adımdan itibaren, CTF'i kendi çözmek veya denemek isteyenler bloga ara verebilir. Ben daha önce çözdüğüm için cevaplar gözükecektir.




ef7e4e_874c6451054e4aa5a70801d286b9c313~mv2.png






VPN ağına katıldıktan sonra Task 2'ye geçebiliriz. Task 2'nin amacı Reconnaissance (Keşif) olacaktır. Bu adımda elimizde sadece IP bilgisi olan sunucudaki açık portları tarayarak keşife başlamamız bekleniyor.




ef7e4e_1775c74f371242809e6f3cbcfb091792~mv2.png






Terminal ekranına geçerek hedefteki sunucuyu pingliyoruz, ping gittiğine göre hedefle iletişim kurabiliyoruz. Eğer VPN ağına katılmada problem yaşasaydık pingin gitmediğini görecektik. Açık portları taramak için Nmap aracını kullanacağız. Nmap aracının -F opsiyonu ile bilinen portları hızlıca tarayacağız. Tarama sonucunda
22/SSH ve 80/HTTP portlarının açık olduğunu keşfettik.


# ping <HEDEF_IP>
# nmap <HEDEF_IP> -F




ef7e4e_a5c82c2dd5234faaa62a4e2e7d5c18a4~mv2.png






HTTP portunun açık olduğunu gördükten sonra bu sunucunun bir uygulama sunucusu olduğunu düşünerek tarayıcıya IP adresini girdik. Index sayfasında manidar bir karşılama ile selamlandıktan sonra terminale geri dönüyoruz.




ef7e4e_cc65270b2103481b9e051de0248684ff~mv2.png






Sunucu hakkında daha fazla bilgi edinmek için web sayfasına Head Http isteği atıyoruz. Hedefteki sunucunun Ubuntu ve Apache versiyonun 2.4.29 olduğu bilgisini de cebimize atıyoruz.


# HEAD HTTP/1.1 <HEDEF_IP>



ef7e4e_ca8813e516cc4c60b79d88c7427e5667~mv2.png






Sırada web sitesinin hidden page'lerini taramak var. Bu işi yapacak tool olan Gobuster için gerekli kurulumu yapıyoruz. Gobuster belli bir web sitesi için gizli sayfaları ve alt dizinleri tarama işlemini verilen wordlist ile yapar. "
gobuster -h" komutu ile tool'un kabiliyetlerini inceleyebilirsiniz.


# apt-get install gobuster
# gobuster -h




ef7e4e_935c729f4d0a4243915e5f22cfe3040d~mv2.png







Gobuster'a güzel bir wordlist bulmak için google'lıyoruz.




ef7e4e_6e68083a7ad3496293a067a0ee486525~mv2.png






Bu iş için kullanabileceğimiz anlamlı bir wordlist bulduk. Unutmayın wordlist ne kadar anlamsız ve uzun olursa tarama işlemi o kadar uzun sürecektir. Öte yandan wordlist ne kadar kısa ise gözden kaçırabileceğiniz hidden page sayısı da o kadar fazla olacaktır.


# git clone GitHub - aels/subdirectories-discover: Perfect wordlist for discovering directories and files on target site
# cd subdirectories-discover



ef7e4e_84b960a5c01c4d5089a96872a38224bc~mv2.png






Gobuster saldırıya başladıktan yaklaşık 15 saniye sonra tüm wordlist'i tarayarak hidden sayfaları buldu. Burada özellikle panel ve uploads sayfaları dikkat çekiyor.


# gobuster -u <HEDEF_IP> -w dsstorewordlist.txt dir



ef7e4e_563c739c529242dca99b133dec4181e9~mv2.png






Görünüşe göre panel sayfası site kullanıcılarının çeşitli dosyaları siteye yüklemesi için kullanılan bir arayüz. Bu arayüz üzerinden siteye zararlı bir yazılım yükleyebilirsek içeriye sızabiliriz.




ef7e4e_b6cd918d4ae44749b308734ee968533f~mv2.png






Uploads sayfası ise muhtemelen yüklenen dosyaların görüntülenmesi için tasarlanmış bir arayüz.




ef7e4e_6c23f820765c4f4db3536955cd18a534~mv2.png






CTF sayfasında Task 2'ye ait tüm görevler yerine getirildi. Sıra Task 3'e geldi.


Sunucudan shell alarak "user.txt" adlı dosyaya erişmemiz isteniyor. Burada önemli adım az önce de tahmin ettiğimiz gibi "file upload bypass" yöntemi, yani yüklemek istediğiniz zararlı yazılımı bir şekilde bu web sitesine kabul ettirmek. Diğer bir teknik ise "PHP reverse shell" , bu teknik php dilinde hazırlanmış bir zararlı yazılımı kullanarak tcp ile hedef sunucudan tersine shell almamızı sağlayacak.




ef7e4e_f6f11655c41d4916b72f34bf79173a6b~mv2.png




ef7e4e_2ff4f1ffc42c42c19081634cd4d21b41~mv2.png






PHP reverse shell için google'lıyoruz. Bu konuda hazırlanmış açık kaynak bir yazılım karşımıza çıkıyor.




ef7e4e_43c55a55ea7f467d94aaa79c44db3f4e~mv2.png






Bu kaynağı indirdikten sonra kodu düzenlemek için php dosyasını açıyoruz.


# git clone GitHub - pentestmonkey/php-reverse-shell
# cd php-reverse-shell
# vi php-reverse-shell.php



ef7e4e_08e018b7c73040e382f7db4d4a72b7ef~mv2.png






Değiştirmemiz istenen ip ve port değişkenlerini görüyoruz. Saldırının hedefi hedef sunucudaki shell'i kendi sunucumuza yönlendirmek olduğu için buradaki ip değişkenine kendi ip'mizi ve port değişkenine kendi sunucumuzda kullanılmayan bir port'u yazıyoruz.




ef7e4e_844f5247c97d4d5c93f105800c4b5465~mv2.png






O zaman şu zararlı php yazılımını siteye yüklemeyi deneyelim.




ef7e4e_a114ff4038314e30934dc8fc04839ab8~mv2.png






Portekizce dilince bir hata mesajı karşımıza çıktı. PHP uzantılı dosyaların yüklenmesine izin verilmediği görülüyor. Geliştiriciler bu noktada bir güvenlik önlemi almış gibi gözüküyor.


Şimdi "file upload bypass" metotlarını araştırmanın zamanı geldi.




ef7e4e_67f903e17bdd45188b3bc0a3120ea38b~mv2.png






Bu dosya yükleme işlemini bypass edebilmek için çeşitli yöntemler denedim, siz de bu yöntemleri kendiniz araştırabilirsiniz. Dosya uzantısı pHP, phP, Php, php5, pHP5 vb. gibi farklı uzantılar şeklinde yüklemeye çalışıp defalarca hata mesajını aldım. Bu arada ek bir terminalden yazılıma vermiş olduğumuz portu dinlemesi için nc komutunu çalıştırdık. Bu sayede yükleme başarılı olur ve yazılımı çalıştırmayı başarırsak bu port'a dönecek shell'i yakalayacağız.


# nc -nvlp <YOUR_PORT>



ef7e4e_42dd79a731f74f2a9086d4d50870858c~mv2.png






Nihayet denemelerimden biri sonuç verdi ve .pHP5 uzantılı dosyamı başarılı şekilde siteye yükledi. Şimdi uploads sayfasına gidelim.




ef7e4e_2b0d5fd63de842f3981ff44cacac6761~mv2.png






Yüklediğimiz dosyanın uploads sayfasına geldiğini gördük ve kodun çalışması için zaman kaybetmeden .pHP5 uzantılı dosyaya tıklıyoruz.




ef7e4e_31c45a93ca964b9cae67a7e38de8916d~mv2.png






İşte bu! Sağ terminalde görüldüğü gibi hedef sunucuda shell'i yakaladık. Basit komutlarla sunucuda kim olduğumuzu ve hangi yetkilere sahip olduğumuzu kontrol ediyoruz.


$ whoami
$ id
$ ls -l




ef7e4e_978ef4a27eea47c7b0ffcb1255064676~mv2.png






Task 3'teki flag'i yakalamak için user.txt'yi bulup okumaya çalışalım.


$ find / -name user.txt 2>/dev/null
$ cat /var/www/user.txt




ef7e4e_4890f8fea1034d10b4e68b8efb35af30~mv2.png






Artık sunucuda shell'e bağlandık fakat hala süper güçlerimiz olmadığı için hareket kapasitemiz çok dar. Burada son kısım olan Task 4'e geçiyoruz. Şimdi hedefimiz sunucuda hareket alanımızı genişletmek için süper güçlere sahip olabilmek yani Root olabilmek. Bu task'ın amacı "Privilege Escalation" yani ayrıcalıklarımızı yükseltmek.




ef7e4e_8bca376a08334759a6a7e4e70cb1db49~mv2.png






Sızılan sunucuda yapılacak ilk iş SUID özel yetkilerini (special permissions) taramak olmalıdır. Root kullanıcısına ait SUID yetkilerine sahip dosyaları görmek için kendimizin ve hedefin sunucusunda find komutunu çalıştıralım. Burada hemen görülmesi gereken python dosyasıdır. Bu şu anlama geliyor, siz bu sunucuda python komutunu herhangi bir kullanıcı için root yetkileriyle çalıştırabilirsiniz.


$ find -user root -perm /4000 2>/dev/null



ef7e4e_5ac52aa5b007439bb28ef5242371d7b9~mv2.png






Tam bu noktada anahtar kelimemiz "GTFObins" olacaktır. GTFObins, yanlış yapılandırılmış sistemlerde yerel güvenlik kısıtlamalarını atlamak için kullanılabilecek, derlenmiş bir Unix ikili dosyaları listesidir.




ef7e4e_c7fa9e09067746029d0a2f8dc7559d1a~mv2.png




ef7e4e_d239197f796841a1a810c2ac56b4aeff~mv2.png






Kullanmamız gereken python komutunu GTFObins yardımı ile bulduk.




ef7e4e_2c5fab8f466349f78dccb674e6620eae~mv2.png






www-data kullanıcısı ile sızdığımız hedef sunucuda yanlış yapılandırılmış python komutunu kullanarak root shell'ini de ele geçirdik, son bayrak düştü ve artık bu sunucuya tam olarak hükmetmek bizim elimizde.


$ which python
$ python -c 'import os; os.setuid(0); os.system("/bin/bash")'

whoami
find / -name root.txt 2>/dev/null
cat /root/root.txt




ef7e4e_9941b36d7c5746d5b4e20fc81bdc72c2~mv2.png






Aslında bu noktada CTF bitmiş oldu. Fakat bu noktadan sonra yapılabilecek diğer bir manipülasyon backdoor dediğimiz bir arka kapı bırakmaktır. Bunun için yeni bir kullanıcı oluşturulup, sudo yetkilerini veririz. Ve artık kendi makinemizden hedef makineye doğrudan ssh bağlantısı yapabilir ve sudo yetkilerine sahip olabiliriz.


useradd system
passwd system
usermod -aG sudo system

# ssh system@<HEDEF_IP>




ef7e4e_dc9e7527315146bcac880955f169a8aa~mv2.png




ef7e4e_c13aa04c210f4936836963fe8547d24a~mv2.png






Kaynak:TryHackme
Kaynak:Alperen ÜLKÜ


 

Yeni Kullanıcıyım Ben

Katılımcı Üye
11 Ara 2022
795
301
Matrix
Merhaba arkadaşlar, bugün hazırladığım blogun konusu Siber Güvenlik alanında olacak. TryHackMe sitesi üzerinde çalıştığım RootMe CTF (Capture the Flag) deneyimlerimden bahsederken, Web zaafiyetlerinden yararlanarak yeterince güvenli olmayan bir sunucunun nasıl hacklenebildiğini göreceğiz.

Tabii ki konu Siber Güvenlik ve Hacking olunca bu anlamda en önemli Pentest (Penetration Test) Tool'larını bulunduran ve bu iş için özelleştirilmiş olan Kali Linux işletim sistemini kullanacağız. Bu yazı boyunca Kali'de çeşitli tool'lar kullanarak birçok metot ve yöntem öğreneceğiz. Yukarıdaki ejderhayı daha önce gördüyseniz Kali'yi muhtemelen tanıyorsunuz. :
TryHackMe, siber güvenlik alanında çalışmak ve kendini geliştirmek isteyen her kullanıcı için sanal lab ortamları sunan bir web sitesidir. Hacking alanında öğrenilen bilgilerin gerçek dünyada art niyetle kullanılmaması gerektiğini hatırlatarak bu anlamda faydalı bir site olduğunu söylememiz gerekir.

ef7e4e_de40f93ebe0746838b64cf5fcaab9fcc~mv2.png




https://tryhackme.com/room/rrootme linki üzerinden CTF'e ulaşabilirsiniz.




Evet gelelim lab ortamını hazırlamaya, öncelikle CTF sayfasına giderek Task 1'i açıyoruz. "
Start Machine" butonuna basarak hackleyeceğimiz makinenin açılmasını sağlıyoruz.




ef7e4e_d4924acb18c24b3fac529892d421eca7~mv2.png






Görüldüğü gibi makine hazır hale geldikten sonra IP bilgisini bize veriyor.




ef7e4e_5fb1ca78b2244778ad63a740e416e8f2~mv2.png






Makine hazır olduğuna göre artık bizim VPN'e bağlanmamız gerekiyor. VPN'e bağlanmak için soru işaretli butona tıklayıp daha sonra görselde belirtilen "
See Instruction" adımları takip edilmelidir. Bu adımlara değinmeyeceğim.




ef7e4e_f8cfa4d03f5941c4a6828154ef68444e~mv2.png






Adımları takip ettikten sonra size özel .ovpn uzantılı bir dosya indirmeniz gerekiyor ve bu dosya ile vpn ağına bağlanıyoruz.



# openvpn <YOUR_FILE>.ovpn




Bu adımdan itibaren, CTF'i kendi çözmek veya denemek isteyenler bloga ara verebilir. Ben daha önce çözdüğüm için cevaplar gözükecektir.




ef7e4e_874c6451054e4aa5a70801d286b9c313~mv2.png






VPN ağına katıldıktan sonra Task 2'ye geçebiliriz. Task 2'nin amacı Reconnaissance (Keşif) olacaktır. Bu adımda elimizde sadece IP bilgisi olan sunucudaki açık portları tarayarak keşife başlamamız bekleniyor.




ef7e4e_1775c74f371242809e6f3cbcfb091792~mv2.png






Terminal ekranına geçerek hedefteki sunucuyu pingliyoruz, ping gittiğine göre hedefle iletişim kurabiliyoruz. Eğer VPN ağına katılmada problem yaşasaydık pingin gitmediğini görecektik. Açık portları taramak için Nmap aracını kullanacağız. Nmap aracının -F opsiyonu ile bilinen portları hızlıca tarayacağız. Tarama sonucunda
22/SSH ve 80/HTTP portlarının açık olduğunu keşfettik.


# ping <HEDEF_IP>
# nmap <HEDEF_IP> -F




ef7e4e_a5c82c2dd5234faaa62a4e2e7d5c18a4~mv2.png






HTTP portunun açık olduğunu gördükten sonra bu sunucunun bir uygulama sunucusu olduğunu düşünerek tarayıcıya IP adresini girdik. Index sayfasında manidar bir karşılama ile selamlandıktan sonra terminale geri dönüyoruz.




ef7e4e_cc65270b2103481b9e051de0248684ff~mv2.png






Sunucu hakkında daha fazla bilgi edinmek için web sayfasına Head Http isteği atıyoruz. Hedefteki sunucunun Ubuntu ve Apache versiyonun 2.4.29 olduğu bilgisini de cebimize atıyoruz.



# HEAD HTTP/1.1 <HEDEF_IP>



ef7e4e_ca8813e516cc4c60b79d88c7427e5667~mv2.png






Sırada web sitesinin hidden page'lerini taramak var. Bu işi yapacak tool olan Gobuster için gerekli kurulumu yapıyoruz. Gobuster belli bir web sitesi için gizli sayfaları ve alt dizinleri tarama işlemini verilen wordlist ile yapar. "
gobuster -h" komutu ile tool'un kabiliyetlerini inceleyebilirsiniz.


# apt-get install gobuster
# gobuster -h




ef7e4e_935c729f4d0a4243915e5f22cfe3040d~mv2.png







Gobuster'a güzel bir wordlist bulmak için google'lıyoruz.




ef7e4e_6e68083a7ad3496293a067a0ee486525~mv2.png






Bu iş için kullanabileceğimiz anlamlı bir wordlist bulduk. Unutmayın wordlist ne kadar anlamsız ve uzun olursa tarama işlemi o kadar uzun sürecektir. Öte yandan wordlist ne kadar kısa ise gözden kaçırabileceğiniz hidden page sayısı da o kadar fazla olacaktır.



# git clone GitHub - aels/subdirectories-discover: Perfect wordlist for discovering directories and files on target site
# cd subdirectories-discover




ef7e4e_84b960a5c01c4d5089a96872a38224bc~mv2.png






Gobuster saldırıya başladıktan yaklaşık 15 saniye sonra tüm wordlist'i tarayarak hidden sayfaları buldu. Burada özellikle panel ve uploads sayfaları dikkat çekiyor.



# gobuster -u <HEDEF_IP> -w dsstorewordlist.txt dir



ef7e4e_563c739c529242dca99b133dec4181e9~mv2.png






Görünüşe göre panel sayfası site kullanıcılarının çeşitli dosyaları siteye yüklemesi için kullanılan bir arayüz. Bu arayüz üzerinden siteye zararlı bir yazılım yükleyebilirsek içeriye sızabiliriz.




ef7e4e_b6cd918d4ae44749b308734ee968533f~mv2.png






Uploads sayfası ise muhtemelen yüklenen dosyaların görüntülenmesi için tasarlanmış bir arayüz.




ef7e4e_6c23f820765c4f4db3536955cd18a534~mv2.png






CTF sayfasında Task 2'ye ait tüm görevler yerine getirildi. Sıra Task 3'e geldi.


Sunucudan shell alarak "user.txt" adlı dosyaya erişmemiz isteniyor. Burada önemli adım az önce de tahmin ettiğimiz gibi "file upload bypass" yöntemi, yani yüklemek istediğiniz zararlı yazılımı bir şekilde bu web sitesine kabul ettirmek. Diğer bir teknik ise "PHP reverse shell" , bu teknik php dilinde hazırlanmış bir zararlı yazılımı kullanarak tcp ile hedef sunucudan tersine shell almamızı sağlayacak.




ef7e4e_f6f11655c41d4916b72f34bf79173a6b~mv2.png




ef7e4e_2ff4f1ffc42c42c19081634cd4d21b41~mv2.png






PHP reverse shell için google'lıyoruz. Bu konuda hazırlanmış açık kaynak bir yazılım karşımıza çıkıyor.




ef7e4e_43c55a55ea7f467d94aaa79c44db3f4e~mv2.png






Bu kaynağı indirdikten sonra kodu düzenlemek için php dosyasını açıyoruz.


# git clone GitHub - pentestmonkey/php-reverse-shell
# cd php-reverse-shell
# vi php-reverse-shell.php



ef7e4e_08e018b7c73040e382f7db4d4a72b7ef~mv2.png






Değiştirmemiz istenen ip ve port değişkenlerini görüyoruz. Saldırının hedefi hedef sunucudaki shell'i kendi sunucumuza yönlendirmek olduğu için buradaki ip değişkenine kendi ip'mizi ve port değişkenine kendi sunucumuzda kullanılmayan bir port'u yazıyoruz.




ef7e4e_844f5247c97d4d5c93f105800c4b5465~mv2.png






O zaman şu zararlı php yazılımını siteye yüklemeyi deneyelim.




ef7e4e_a114ff4038314e30934dc8fc04839ab8~mv2.png






Portekizce dilince bir hata mesajı karşımıza çıktı. PHP uzantılı dosyaların yüklenmesine izin verilmediği görülüyor. Geliştiriciler bu noktada bir güvenlik önlemi almış gibi gözüküyor.


Şimdi "file upload bypass" metotlarını araştırmanın zamanı geldi.




ef7e4e_67f903e17bdd45188b3bc0a3120ea38b~mv2.png






Bu dosya yükleme işlemini bypass edebilmek için çeşitli yöntemler denedim, siz de bu yöntemleri kendiniz araştırabilirsiniz. Dosya uzantısı pHP, phP, Php, php5, pHP5 vb. gibi farklı uzantılar şeklinde yüklemeye çalışıp defalarca hata mesajını aldım. Bu arada ek bir terminalden yazılıma vermiş olduğumuz portu dinlemesi için nc komutunu çalıştırdık. Bu sayede yükleme başarılı olur ve yazılımı çalıştırmayı başarırsak bu port'a dönecek shell'i yakalayacağız.



# nc -nvlp <YOUR_PORT>



ef7e4e_42dd79a731f74f2a9086d4d50870858c~mv2.png






Nihayet denemelerimden biri sonuç verdi ve .pHP5 uzantılı dosyamı başarılı şekilde siteye yükledi. Şimdi uploads sayfasına gidelim.




ef7e4e_2b0d5fd63de842f3981ff44cacac6761~mv2.png






Yüklediğimiz dosyanın uploads sayfasına geldiğini gördük ve kodun çalışması için zaman kaybetmeden .pHP5 uzantılı dosyaya tıklıyoruz.




ef7e4e_31c45a93ca964b9cae67a7e38de8916d~mv2.png






İşte bu! Sağ terminalde görüldüğü gibi hedef sunucuda shell'i yakaladık. Basit komutlarla sunucuda kim olduğumuzu ve hangi yetkilere sahip olduğumuzu kontrol ediyoruz.



$ whoami
$ id
$ ls -l




ef7e4e_978ef4a27eea47c7b0ffcb1255064676~mv2.png






Task 3'teki flag'i yakalamak için user.txt'yi bulup okumaya çalışalım.



$ find / -name user.txt 2>/dev/null
$ cat /var/www/user.txt




ef7e4e_4890f8fea1034d10b4e68b8efb35af30~mv2.png






Artık sunucuda shell'e bağlandık fakat hala süper güçlerimiz olmadığı için hareket kapasitemiz çok dar. Burada son kısım olan Task 4'e geçiyoruz. Şimdi hedefimiz sunucuda hareket alanımızı genişletmek için süper güçlere sahip olabilmek yani Root olabilmek. Bu task'ın amacı "Privilege Escalation" yani ayrıcalıklarımızı yükseltmek.




ef7e4e_8bca376a08334759a6a7e4e70cb1db49~mv2.png






Sızılan sunucuda yapılacak ilk iş SUID özel yetkilerini (special permissions) taramak olmalıdır. Root kullanıcısına ait SUID yetkilerine sahip dosyaları görmek için kendimizin ve hedefin sunucusunda find komutunu çalıştıralım. Burada hemen görülmesi gereken python dosyasıdır. Bu şu anlama geliyor, siz bu sunucuda python komutunu herhangi bir kullanıcı için root yetkileriyle çalıştırabilirsiniz.



$ find -user root -perm /4000 2>/dev/null



ef7e4e_5ac52aa5b007439bb28ef5242371d7b9~mv2.png






Tam bu noktada anahtar kelimemiz "GTFObins" olacaktır. GTFObins, yanlış yapılandırılmış sistemlerde yerel güvenlik kısıtlamalarını atlamak için kullanılabilecek, derlenmiş bir Unix ikili dosyaları listesidir.




ef7e4e_c7fa9e09067746029d0a2f8dc7559d1a~mv2.png




ef7e4e_d239197f796841a1a810c2ac56b4aeff~mv2.png






Kullanmamız gereken python komutunu GTFObins yardımı ile bulduk.




ef7e4e_2c5fab8f466349f78dccb674e6620eae~mv2.png






www-data kullanıcısı ile sızdığımız hedef sunucuda yanlış yapılandırılmış python komutunu kullanarak root shell'ini de ele geçirdik, son bayrak düştü ve artık bu sunucuya tam olarak hükmetmek bizim elimizde.



$ which python
$ python -c 'import os; os.setuid(0); os.system("/bin/bash")'

whoami
find / -name root.txt 2>/dev/null
cat /root/root.txt




ef7e4e_9941b36d7c5746d5b4e20fc81bdc72c2~mv2.png






Aslında bu noktada CTF bitmiş oldu. Fakat bu noktadan sonra yapılabilecek diğer bir manipülasyon backdoor dediğimiz bir arka kapı bırakmaktır. Bunun için yeni bir kullanıcı oluşturulup, sudo yetkilerini veririz. Ve artık kendi makinemizden hedef makineye doğrudan ssh bağlantısı yapabilir ve sudo yetkilerine sahip olabiliriz.



useradd system
passwd system
usermod -aG sudo system

# ssh system@<HEDEF_IP>




ef7e4e_dc9e7527315146bcac880955f169a8aa~mv2.png




ef7e4e_c13aa04c210f4936836963fe8547d24a~mv2.png






Kaynak:TryHackme
Kaynak:Alperen ÜLKÜ


Çok güzel olmuş, red team Pentest ile uğraşıyorum bayağı iyi oldu.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.