CTF nədir? Hack The Box Strutted nədir? StruttedCTF həlli, Strutted ctf həlli azərbaycanca, HTB Strutted həlli, HTB Strutted reportu
Telegram kanalına qoşularaq bu və digər mövzular üzrə quizlərdə iştirak edə bilərsiniz!
Telegram (Kanal): https://t.me/xakeraz_official
HTB Strutted Writeup
Strutted, şəkil hostinqi həlləri təklif edən bir şirkət üçün veb saytı təqdim edən orta çətinlikli bir Linux maşınıdır. Veb sayt, sistemdə möhkəmlənmək üçün istifadə edilən CVE-2024-53677-yə qarşı həssas olan Apache Struts versiyasına malik Docker konteyneri təqdim edir.
Əlavə siyahıyaalma, james kimi təsdiqləmək üçün istifadə edilən düz mətn parolu olan tomcat-users.xml faylını ortaya qoyur. İmtiyazların artırılması üçün, sudo ilə birlikdə SUID bit dəsti ilə bash ikili faylının surətini yaratmaq üçün istifadə edilərkən tcpdump-dan sui-istifadə edirik və bu da bizə kök qabığı qazanmağa imkan verir.
Enumeration
nmap -A -p- –open -O -sV -T4 10.10.11.59
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 3e:ea:45:4b:c5:d1:6d:6f:e2:d4:d1:3b:0a:3d:a9:4f (ECDSA)
|_ 256 64:cc:75:de:4a:e6:a5:b4:73:eb:3f:1b:cf:b4:e3:94 (ED25519)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://strutted.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
İlkin Nmap skanlamasında iki açıq TCP portu, 22 nömrəli port SSH işlədir və 80 nömrəli port Nginx vasitəsilə veb serverə sahibdir. Etibarlı SSH etimadnaməmiz olmadığı üçün siyahıyaalmaya 80 nömrəli portu ziyarət etməklə başlayırıq. Çıxışda həmçinin /etc/hosts faylımıza əlavə edə biləcəyimiz strutted.htb domeni də görünür:
echo 10.10.11.59 strutted.htb >> /etc/hosts
HTTP
Açılış səhifəsinə daxil olduqda, şəkil hostinqi xidmətləri təklif edən bir şirkətin statik bir saytını görürük.

“Download” düyməsini basmaq, bu xüsusi tətbiq üçün Docker mühitini ehtiva edən zip faylının yüklənməsini tetikler. Məzmunu çıxardıqdan sonra, sadə mətnli sərt kodlu parola malik, lakin faydasız tomcat-users.xml faylını görürük. Docker faylı tomcat9-un hədəf üzərində openjdk-17 ilə birlikdə işlədiyini göstərir. Paketdəki digər faylları axtararkən pom.xml faylını görürük. Bu fayl tətbiqin bütün asılılıqlarını ehtiva edir.

Bu application Apache Struts2 6.3.0.1 istifadə edir. Bu versiya ilə biz internetdə potensial zəifliklər axtarırıq və CVE-2024-53677 tapırıq ki, bu da bu paketi fayl yükləmə parametrlərinin manipulyasiyası yolu ilə uzaqdan kod icrasına qarşı həssas edir və bu da yolu keçməyə imkan verir. FileUploadInterceptor istifadə edərkən, zərərli fayl yükləmək mümkündür və bu fayl serverdə icra edilə bilər. Bu biliklərdən istifadə edərək, biz əlavə araşdırma aparırıq və bu linki aşkar edirik. Bu ssenaridə, veb tətbiqi yüklənmiş fayllar üçün parametr kimi ixtiyari OGNL ifadələrini birbaşa qəbul etməyən tək bir fayl yükləmə funksiyasından istifadə etdikdə zəiflikdən istifadə olunur.
Breaking Down Exploitation Steps:
- Test məqsədləri üçün normal PNG şəkli yükləməyə və BurpSuite istifadə edərək sorğunu ələ keçirməyə çalışacağıq,

Bəzi PNG sətirlərini silə, shell.jsp kodunu əlavə edə və yenə də congrats mesajını və yükləmə yolunu ala bilərik.
İndi faylı Tomcat-ın ROOT qovluğu kimi həssas bir yerə kopyalamaq üçün top.uploadFileName parametrini əlavə edərək faylın yüklənməsini manipulyasiya etməliyik. Bundan əlavə, yükləmədə kiçik hərfli “u” hərfini böyük hərfli “U” hərfi ilə əvəz etməliyik:


http://strutted.htb/shell.jsp? linkinə daxil olmaq veb-sahəsinin işlədiyini təsdiqləyir.

Əvvəlcə /etc/passwd faylına baxırıq və ssh connection üçün parolu bilmədiyimiz üçün lazım olan istifadəçi james tapırıq, ona görə də parol fayllarını tapmaq üçün qovluqlara baxırıq.


Daha ətraflı axtarışdan sonra /etc/tomcat9/tomcat-users.xml qovluğunda administrator parolunu ehtiva edən bir fayl tapırıq. Bu yeni aşkar edilmiş parolu bütün istifadəçilərlə sınayaraq, tcpdump üçün sudo imtiyazlarına malik james olaraq uğurla SSH bağlantısı qururuq.



Linux Privilege Escalation
Növbəti olaraq, GTFObins saytından functions tapırıq.

Daha çox CTFlərin Azərbaycan dilində həlli üçün Bizi izləyin:
Telegram (Kanal): https://t.me/xakeraz_official
Paylaşımların səliqəli yığılmış halı: https://t.me/xakerazgroup
Fikir və şərhləriniz : https://t.me/xakerazchat