0703155507
info@sina.az
Azerbaijani flag
Azerbaijani
Dil seçin
Azerbaijani flag
Azerbaijani
English flag
English
0
Sina Forum HackTheBox

HackTheBox-da "Three" maşınının sındırılma prosesi

Nargilə
Nargilə
27/03/2025 21:03
0 Paylaşımlar
0 Aktiv Üzvlər
Nargilə

Nargilə

Sadiq İstifadəçi
Forumların Ən Yaxşı İstifadəçisi
Paylaşımlar: 10
Bəyənmələr: 8
Üzvlük Tarixi: 1/10/2024

                                                                                 HackTheBox-da "Three" maşınının sındırılma prosesi 


    "Three" maşınının sındırılma prosesində də digər maşınlarda olduğu kimi ilk öncə VPN qurulur. Eyni ardıcıllıq ilə VPN qurulduqdan sonra İP ünvanını tuturuq və "10.129.227.248" İP ünvanını alırıq. İP ünvanını tapdıqdan sonra "nmap -sc -sV -Pn {ip ünvanı}" komandası ilə İP ünvanını skan edirik:


    


    Yuxarıda da göründüyü kimi 2 port açıqdır: 22(SSH) və 80(HTTP). SSH girişi var, amma parol olmadan daxil ola bilmirik. Buna görə də HTTP saytına baxacayıq. Bunun üçün google axtarış yerinə İP ünvanını yazıb axtarış edirik və qarşımıza aşağıdakı şəkildə kimi sayt çıxır:


    


    Bu saytda "CTRL + U" ilə mənbə koduna baxan zaman orada "Contact" formu "/action_page.php" faylına müraciət edir. Bu o deməkdir ki, saytda PHP istifadə edilir. Yəni, PHP backend ilə işləyən bir sistem var. Buradan belə nəticə çıxara bilərik ki, burada LFİ(Local File İnclusion) zəifliyi ola bilər. Bunu araşdıraq. 

    Saytda aşağıya doğru enəndə orada bir email adresinin olduğunu görürük. Bu email adresi "thetoppers.htp" domeninə aiddir. Biz bu domeni /etc/hosts faylına əlavə etməliyik ki, brauzerdə aça bilək. Bunun üçün "echo "{ip ünvanı} thetoppers.htb" | sudo tee -a /etc/hosts" komandasından istifadə edirik:


    


    Bu komanda vasitəsilə /etc/hosts faylı, sistemə "thetoppers.htb" domeninin "10.129.227.248" İP ünvanına aid olduğunu bildirir. Brauzerdə bu domenin adını yazıb axtarış etsək, eyni sayt açılar:

    Daha sonra serverdə subdomenləri tapmaq üçün "gobuster  vhost -w {wordlist} -u {sayt linki} --append-domain" komandasından istifadə edirik. Burada "vhost" parametri virtual host adlarını brute force etmək üçün istifadə edilir, yəni serverdə olan fərqli subdomenləri kəşf etmək üçün müxtəlif mümkün adları yoxlayır,  "--append-domain" parametri wordlistdən çıxan hər nəticəyə "thetoppers.htb" uzantısını əlavə edir.  Subdomenlər bəzən məlumatların sızmasına səbəb ola bilər, buna görə subdomenləri axtarırıq:


    


    Gördüyümüz kimi 2 subdomen tapıldı. Burada "s3.thetoppers.htp" S3 bucket-in hədəf maşında açıq olduğunu göstərir. S3 bucket nədir? AWS S3 — bulud əsaslı bir yaddaş sistemidir, vebsayt və ya tətbiqlərdə faylları saxlamaq üçün istifadə olunur. S3 bucket-də icazələri düzgün qurulmadıqda kənar şəxslər buraya daxil olub fayl yükləyə bilərlər. Bu maşında da S3 bucket vebsaytın əsas fayllarını saxlamaq üçün istifadə olunurdu. Bu subdomeni də /etc/hosts faylına əlavə edirik ki, brauzerdə və ya terminalda oxuya bilək:


    


    Daha sonra AWS CLİ ilə S3 bucket-i yoxlayaq, əgər zəiflik varsa, burada görə bilərik. AWS CLİ —  AWS sistemləri ilə terminaldan işləmək üçün istifadə olunan proqramdır. AWS CLİ quraşdırıb sonra s3 bucket-i listləyirik, bunun üçün "aws --endpoint=http://s3.thetoppers.htb s3 ls" komandasından istifadə edirik. Burada "aws" parametri AWS CLİ-ni işə salır, "--endpoint=http://s3şthetoppers.htb" bir S3 serverə qoşulmaq üçündür, "s3" AWS CLİ-nin S3 xidmətini idarə edən bölməsidir, "ls" isə S3 bucket-lərin siyahısını almaq üçün istifadə olunur.


    


    Daha sonra bucket-in içini görmək üçün "aws --endpoint=http://s3.thetoppers.htb s3 ls s3://thetoppers.htb" komandasından istifadə edirik. Burada "s3://thetoppers.htb" parametri thetoppers.htb adlı S3 bucket-in içindəkiləri göstərir, həm də s3 ls əmrinə bucket yolunu göstərir ki, bütün S3 bucketləri deyil, yalnız bu bucket-in içindəkiləri siyahilasın:


    

    
    Gördüyümüz kimi index.php faylı mövcuddur. Deməli, biz öz fayllarımızı buraya yükləyə bilərik.

    Biz hər hansı bir zərərli PHP faylı yükləyib, onun vasitəsilə serverdə əmrlər icra edə bilərik. Bunun üçün əvvəlcə sadə PHP faylı yaradırıq:

    

   


   Burada "system($_GET["cmd"])" — PHP funksiyası "cmd" parametri ilə gələn hər hansı bir əmri icra edəcək. Məsələn, "http://thetoppers.htb/shell.php?cmd=id" komandasını yazsaq, "id" əmri icra olunacaq.

   Daha sonra bu faylı S3 bucket-ə yükləyirik ki, brauzerdə və ya terminalda(curl ilə) aça bilək:


   


   Sonra "curl" ilə faylı açırıq:


   


   Gördüyümüz kimi "id" əmri icra olundu və biz "www-data" istifadəçisi kimi sistemdə kod icra edə bilərik. 

   Daha sonra biz daimi bağlantı əldə etmək üçün reverse shell-dən istifadə etməliyik. Bunun üçün ilk olaraq hədəf maşından bağlantı almaq üçün "netcat listener" açmalıyıq. Buna görə də ayrı bir terminalda "nc -nvlp 1337" komandasından istifadə edirik. Bu komanda terminalda 1337 portunu dinləyir. Bunu açıq saxlayıb başqa bir terminal açırıq. Bu terminaldada hədəf maşına göndərəcəyimiz shell faylını host edirik. Bunun üçün ilk olaraq shell.sh faylının olduğu qovluğa "cd" komandası ilə gedirik. Daha sonra "python3 -m http.server 8000" komandası ilə 8000 portunda HTTP server açır. Burada "python3" parametri Python 3 interpreterini işə salır, "-m http.server" http.server adlı python modulunu işə salır, lokal bir HTTP sever yaradır və işlədildiyi qovluqdakı faylları xidmətə təqdim edir, 8000 isə serverin istifadə edəcəyi portdur. Qisacası bu komanda, python vasitəsilə lokal bir web server açır, bu server mr işlədilən qovluqdakı bütün faylları HTTP vasitəsilə paylaşır. Biz brauzerdə http://localhost:8000 unvanına daxil olaraq bu fayllara baxa bilərik. Bu komandanı yazdığımız terminalı da açıq saxlamalıyıq, əks halda hədəf maşın faylı götürə bilməz:


   


   Daha sonra "curl" komandası ilə hədəf maşında olan shel.php faylı shell.sh faylını endirib icra edir. Burada İP ünvanını yazan zaman openvpn-nin ip ünvanını yazırıq:

  

   


   shell.sh fylı işləyəndə hədəf maşın netcat-ə bağlantı gəlir və biz orada hansı istifadəçi ilə daxil olduğumuzu, cari qovluğumuzu, icazələri gğrmək üçün "whoami, id, hostname, pwd" kimi komandaları icra edirik:

   

   


   Şəkildə də gördüyümüz kimi istifadəçi adımız "www-data"dır, yəni root deyilik, buna görə də ancaq vebsaytın işlədiyi qovluqlara baxa bilərik. Hal-hazırda biz /var/www/html/ qovluğundayıq. Flag, adətən /var/www/ , /home/ və /root/ qovluqlarında olur. Bu qovluqların içərisinə baxmaq üçün " ls -la {qovluq adı} " komandasından istifadə edirik. Məsələn /var/www/ qovluğunun içərisinə baxmaq üçün "ls -la /var/www/" komandasından istifadə edirik:


   


   Yuxarıdada göründüyü kimi flag.txt faylı /var/www/ qovluğunun içərisindədir. Faylı oxumaq üçün "cat" komandasından istifadə edirik və flag-ı tapırıq.


    Yuxarıda etdiklərimizə əsasən hackthebox-dakı sualları cavablayaq:


   1. Neçə TCP portu açıqdır?

       2 dənə açıq idi: 22 və 80-ci port.


   2. Vebsaytın "Əlaqə" bölməsində verilən e-poçt ünvanının domeni nədir?

       Saytın aşağısına enən zaman tapdığımız email-in domeni idi, yəni "thetoppers.htb".


   3. DNS server olmadıqda, həmin host adlarına yönləndirilmiş vebsaytlara daxil olmaq üçün host adlarını IP ünvanlarına çevirmək məqsədilə hansı Linux faylından istifadə edə bilərik?

      Domein adlarını brauzerdə və ya terminalda işlədə bilməyimiz üçün faylları yklədiyimiz qovluğu soruşur, yəni /etc/hosts qovluğu.


   4. Daha ətraflı araşdırma zamanı hansı alt-domen aşkar olunur? 

       Gobuster. ilə axtarıb tapdığımız subdomen-i soruşur, yəni "s3.thetoppers.htb".


   5. Aşkar olunan alt-domen üzərində hansı xidmət işləyir?

       Amazon S3

   

   6. Aşkar olunan alt-domen üzərində işləyən xidmətlə qarşılıqlı əlaqə qurmaq üçün hansı əmrlərdən istifadə edilə bilər?

      "awscli" əmrindən istifadə edilir.


   7. AWS CLI qurulumunu tənzimləmək üçün hansı əmr istifadə olunur?

      "aws configure" əmri AWS CLİ-ni AWS S3 bucket ilə əlaqələndirmək üçün istifadə olunur.


   8. Bütün S3 buketlərini siyahıya salmaq üçün istifadə olunan əmr nədir?

       aws s3 ls

     

   9. Bu server hansı veb skript dili ilə yazılmış faylları işlətmək üçün konfiqurasiya olunub?

       PHP faylları.


   Submit root flag:

   Sonda /var/www/ qovluğundakı flag.txt faylının içərisindəki məlumatdır, yəni "a980d99281a28d638ac68b9bf9453c2b".

27/03/2025 | 21:03
0 Bəyənmələr

Cavab vermək üçün daxil olun

Bu mövzuya cavab vermək üçün zəhmət olmasa daxil olun.

Daxil ol