Hackthebox – Traverxec Makinası Çözümü

Hackthebox – Traverxec Makinası Çözümü

Merhabalar bu yazıda, Hackthebox platformu üzerinden bulunan kolay seviye olarak belirlenmiş Traverxec adlı makinenin çözümünü anlatmaya çalışacağım. Traverxec Linux bir makine olup, üzerinde çalışan nostromo servisindeki açıktan faydalanarak shell alıp, içerisinde buluna kullanıcıya ait ssh dosyasının backup’ı ele geçirilerek user flag değerinin elde edilmesi ve ardından user sudo izinlerini kullanarak gtfobins ile root flag değerinin elde edilmesi şeklinde Hackthebox da genel olarak rastlanan user flag değerinin elde edilmesinin root’a göre daha zahmetli olduğu bir senaryosu bulunmaktadır.

ENUMERATION AND SHELL

Her zaman olduğu gibi ilk olarak nmap taraması başlatıyoruz ve aşağıdaki sonuçtan da görüldüğü üzere 80 portu üzerinde nostromo servisinin 1.9.6 versiyonu çalışmakta.

Elde ettiğimi sonuç ile Google üzerinden bu servis ve versiyona ait bulunmuş olan zafiyetleri taradığımızda makinenin isminin ( Traverxec ) bir hint olduğunu anlıyoruz ve 2019 yılında bulunmuş bir directory traversal zafiyetinden kaynaklı bir command execution zafiyeti karşımıza çıkmakta. Zafiyet metasploit  modülünde bulunduğundan manuel olarak exploitation yapmaya gerek duymadım. Metasploit aracımızı çalıştırıp explotimizi seçerek gerekli parametreleri atayalım ve exploit’i çalıştıralım.

Exploit’imizi çalıştırdıktan sonra www-data olarak shell elde etmiş olduk.

USER FLAG

User için bir yol ararken her zaman dizinler arasında biraz gezinir sistem üzerinde neler olduğuna bakarım. Burada makine üzerinde çalışmakta olan nostromo servisinin conf dizini içerisinde bulunan http server konfigürasyon dosyaları dikkatimizi çekiyor.

http server konfigürasyon dosyasını incelediğimizde public_www adında bir dizin dikkatimizi çekiyor. Burada  /home/david dizinine erişip herhangi bir komut çalıştırmayı denediğimizde izin verilmediğini görmekteyiz.

Fakat konfigürasyon dosyasında belirtilen public dizine direk erişim sağladığımızda burada komut çalıştırabildiğimizi görmekteyiz. Public_www dizini altında protected-file-area adında bir dizin bulunmakta. Dizin içerisinde baktığımızda ise backup-ssh-identitiy-files.tgz adında david kullanıcısına ait ssh dosyalarını içeren bir klasör bulunmakta.

Bulduğumuz ssh backup klasörünü kendi makinemiz üzerine almak için base64 formatında string değerini elde ederek kopyalıyoruz.

Bulduğumuz ssh backup klasörünü kendi makinemiz üzerine almak için base64 formatında string değerini elde ederek kopyalıyoruz.

David kullanıcısına ait ssh key değerini kırarak passphrase elde etmek için ssh2john ile sshkeyi john hash formatına dönüştürüyoruz.

Ardından john ile hashi kırarak aşağıdaki sonuçtan da görüldüğü üzere hunter olarak passphrase değerini elde ediyoruz.

Elde ettiğimiz sshkey ve passphrase ile ssh bağlantısı gerçekleştiriyoruz ve böylelikle user flag değerini elde etmiş olacağız.

ROOT FLAG

David kullanıcısının home dizininde bulunan bin adlı dizin içerisine baktığımızda içerisinde bulunan server-stats.sh dosyası root için bize hint vermekte. Bu bash scriptini incelediğimizde satırlar arasında dikkatimizi çeken nokta sudo olarak journalctl çalıştırması.

Burada david kullanıcısı sudo olarak journalctl çalıştırabilmesi bize privilege escalation için bir işaret olmakta. Gtfobinsden faydalanarak burada root olmaya çalışacağız. Bunun için  /usr/bin/sudo  /usr/bin/journalctl –n5 –unostromo.service komutunu çalıştırdıktan sonra !/bin/bash komutunu giriyoruz ve bingo! Böylelikle root flag değerini de elde etmiş olduk.

Kaynak :
https://gtfobins.github.io/gtfobins/journalctl/
https://www.exploit-db.com/exploits/47837/

Related Posts

Facebook Comments