Bu yazımda HackTheBox platformunda bulunan Cap makinesinin çözümünü anlatacağım.
İlk önce bana verilen IP adresine nmap taraması yapıyorum.

3 adet açık port olduğunu tespit ediyorum.80 portunda çalışan web sitesini browserdan ziyaret ediyorum.

İlk bakışta anlamlı bir şey dikkatimi çekmiyor.Aklıma dizin taraması yapmak geliyor.

data adlı dizin dikkatimi çekiyor.Sayfayı her yenilediğimde ID kısmı değişiyor.ID’yi manuel olarak değiştirebildiğimi fark ediyorum.Bu bana bir IDOR açığı olduğunu gösteriyor.ID’yi 0 olarak değiştirdiğimde snapshot sonuçları değişiyor.

Pcap dosyasını indiriyorum ve wireshark ile inceliyorum.

Pcap dosyasında nathan kullanıcısının username ve password bilgilerine ulaşıyorum.Bu kimlik bilgileri ile FTP ve SSH’ye giriş yapabilirim.

FTP’ye başarılı şekilde giriş yapabiliyorum ve user.txt dosyasını kendi makineme indiriyorum.

Kendi makinemde dosyayı görebiliyorum.Dosyayı okuyorum ve user flag’i alıyorum.Şimdi SSH ile giriş yapmayı deniyorum.

Başarılı şekilde giriş yapabiliyorum.Linpeas’i görüyorum ve çalıştırıyorum.

Çıktıda /usr/bin/python3.8 dosyasına cap_setuid yetkisi verildiği dikkatimi çekti. Bu capability, Python’ın kendi UID’sini 0 (root) olarak değiştirmesine izin verir ve bu durum doğrudan privilege escalation zafiyetine yol açar. Python üzerinden os.setuid(0) komutunu çalıştırarak root haklarına sahip bir shell elde edebilirim.

Python içinden os.setuid(0) ile kullanıcı kimliğini root olarak değiştirmek ve ardından /bin/bash çalıştırarak root yetkilerine sahip bir shell açmak için yukardaki komutu yazıyorum.

Root olarak shell aldığımı görüyorum.root dizinine gidiyorum ve root.txt dosyasını görüyorum.

Dosyayı okuyorum ve root flag’i almış oluyorum.













