DevOops - Hack The Box

Rıdvan Kaplan
4 min readFeb 7, 2021

--

Merhaba !!!

Öncelikle Hack The Box platformunu bilmeyenler için kısa bir bilgi vereyim. Bu site de çeşitli işletim sistemlerinden (Windows,Linux,Solaris,FreeBSD vs.) oluşturulmuş genel olarak bir veya daha çok açık bırakılmış online sızma testleri yapabileceğiniz makineler bulunmaktadır.

Özgürce bilginizi uygulamaya dökebilirsiniz. Siteye üye olabilmek için site de kendinize davet kodu bulmanız gerekiyor. Bulduktan sonra üye olabilirsiniz. Üye olduktan sonra yerel ağda testler yapabilmeniz için size bir Vpn dosyası veriliyor. Bu Vpn dosyasıyla bağlanıp makinelere sızma testleri yapabilirsiniz.

Hack The Box’dan kolay bir makine çözümüyle başlayacağım. Makinemizin ismi DevOops. Yetkisi düşük olan kullanıcının bayrağı 15 puan ve root kullanıcısının bayrağı 30 puan değerinde.

Hedef IP adresimiz ise 10.10.10.91.

İlk önce Nmap taramasıyla hedef sistemimizin bir Ağ Haritasını inceleyelim.

Kısaca parametreleri anlatmak gerekirse

-sS Tcp SYN paketi göndererek taramayı yapıyor.

-sV Çalışan servislerin versiyonlarını buluyor.

-n İsim ve Dns çözümlemesi yapmamasını sağlıyor.

-Pn Tüm hostları açık kabul edip deniyor.

-p- Tüm portları ( 65535 ) tarıyor.

Tarama sonucunda 22 Portunda bir SSH servisinin çalıştığı gözüküyor ve 5000 portunda da Gunicorn servisinin çalıştığı gözüküyor. Bir tarayıcımız da inceleyelim.

Ve evet bir web sayfası açıldı. Sitenin yapım aşamasında olduğunu yazıyor. Genelde bir site yapım aşamasında ise ön tarafta birşey bulunmaz. Siteyi düzenleyen kişi bir dizin açar orada işlemlerini halleder. Sonra işi bittikten sonra dizini kaldırır siteyi normal olarak yayınlar. Burada önemli olan düzenleyen kişinin kullandığı dizinin tahmin edilmesi zor bir isim seçmesi gerekiyor.

Şimdi bir dizin taraması yapalım. Bunun için birçok araç bulunuyor. Dirb,dirbuster,gobuster,dirsearch gibi. Dirsearch aracı bana daha hızlı geldiği için onu kullanıyorum.

Dizin taramalarını ne kadar büyük kelime listeleriyle yaparsanız o kadar iyi olur.

-u Hedef sistemin Url’si.

-w Kullanılacak olan kelime listesi.

-e Kullanılacak olan uzantı.Hedef sistem linux olduğu için php denedim. Windows olsaydı aspx vs deneyecektim.

Dizin tarama sonucunda iki tane sayfa buldu. Birisi Anasayfa daki ekran görüntüsünün yüklü olduğu ve diğeri upload sayfası. Biraz inceleyelim.

Tekrardan bir test sayfası olduğu yazıyor. Sadece Xml uzantılı dosyaları kabul ediyormuş. Burada aklımıza XXE Injection gelmesi gerekiyor. Bilmiyorsanız burada güzelce Türkçe olarak anlatmışlar.

Ayrıca burada kullanılması gereken elementleri de vermişler başka bir element denendiğin de kabul etmiyor.

/etc/passwd dosyasını okumak için deneyelim.

Öncelikle dosyayı yükledikten sonra sonuçları daha rahat görebilmek için Burp Suite kullanarak araya girip deneyeceğim. Burp Suite kullanabilmeniz için küçük bir Firefox da ayar yapmanız gerekiyor.

Bu ayarı yaptıktan sonra Burp Suite açıp kullanabilirsiniz. Ve arada yakaladığımız verileri Repeater’e gönderip deneyelim.

Evet yazdığımız payload ile yi okumayı başardık. Hatırlarsanız port taramalarında Ssh servisi çalışıyordu. Ssh için eğer key bulabilirsek sunucuya bağlanabiliriz. Key genelde /home dizinin de kullanıcının /.ssh dizinin içinde bulunur. Sunucu da hangi kullanıcılar olduğunu /etc/passwd den görüyoruz.

veben ikisini de denedim ve /home/roosa/.ssh/id_rsa da key’i buldum.

Bulduğumuz Ssh key’i ile roosa kullanıcısı olarak sunucuya bağlandık ve user.txt mizi okuduk.

Yetki yükseltmek için yapmamız gereken belli başlı şeyler vardır. Burada yapmamız gereken şeylerden ilk olarak .bash_history dosyasını incelememizdir. Bu dosyada komut satırında yazdığımız komutları kaydeder. Düzenli bir şekil de içeriğini silmezsek gizli yerlere sakladığımız dosyalar vs. burayı inceleyen rahatlıkla bulabilir.

Burada gördüğümüz gibi bir key oluşturulmuş. Key’i incelediğimiz da bir kullanıcı için Ssh Rsa key’i olduğu açıkça gözüküyor. Root için denediğimiz de kabul etmiyor.

Hatırlarsınız ki .bash_history de geçiyordu. Bir git deposu oluşturulmuştu. Bu deponun log dosyalarını inceleyelim.

git log -stat komutuyla biraz daha ayrıntılı olarak inceleyebiliriz.

Evet key’imizi değiştirmişler. Değiştirilmeden önceki keyi bulalım. Key’i bulabilmemiz için onun olduğu dala geçmemiz gerekiyor.

git checkout d387abf63e05c9628a59195cec9311751bdb283f

komutuyla istediğimiz dala geçtik ve key’in izin işlemini yaptıktan sonra deneyebiliriz.

Ve root olduk

Okuduğunuz için teşekkür ederim ve yanlış yazdığım biryer varsa lütfen uyarın.

Originally published at https://ridvankaplan.com.

--

--

Rıdvan Kaplan

Cyber Security & Blue Team | OSCP & eCTHPv2 & eCIR & CySA+