HackTheBox : Optimum Çözümü (Türkçe Detaylı Anlatım)

Optimum (10.10.10.8) Hakkında Genel Bilgi

Optimum, emekli olmuş bir HackTheBox makinası ve 10.10.10.8 IP adresinde yer alıyor.

Kolay kategorisinde işaretlenmiş bir makina ve başlangıç seviyesi için uygun. Çözüm için temel olarak bilgi toplama (enumeration) ve bilinen istismarların incelenmesi gerekiyor. Bu istismarlar kolay bulunabilen ve Metasploit modülleri bulunan istismarlar olduğundan birçok HacktheBox sistemine oranla gerçekten kolay çözüldüğü söylenebilir.

Hedef sistem yani Optimum bir Windows sisteme olduğundan temel seviye Windows bilgisi yeterli ve bilgi toplama aşamasının (enumeration) iyi yapılması önem taşıyor.

Çözüm aşamasında ise zafiyet barındıran sistemlerin tespit edilme yolları, bilinen istismarların bulunması ve temel seviye Windows yetki yükseltme aşamaları öğrenilebiliyor.

Kali Linux’da kullanacağımız araçlar: nmap, searchsploit ve metasploit olacak.

HackTheBox Hakkında Genel Bilgi

HackTheBox, isteyenlerin sızma testi becerilerini geliştirmek için kullanabildiği bir çevrimiçi platform. Bu sayfa hazırlanırken https://www.hackthebox.eu sisteminde istismar edilmeye çalışılabilecek 155 farklı makina bulunuyordu.

HackTheBox içerisinde en kolaydan başlayıp “Insane” seviyesine kadar zorluk derecelerine sahip ve “Windows, Linux, FreeBSD, Android, Solaris, Diğer” şeklinde sınıflandırılmış sistemler mevcut.

Buradaki sistemlerin bir kısmı gerçek hayatı simüle ederken bir kısmı ise daha çok CTF tarzında hazırlanmış.

Her durumda amaç aynı: Hedef sisteme sızmak ve user.txt ile root.txt’yi ele geçirmek.

Aşağıda Optimum makinasını ele geçirmek için izlenen çözüm yolunu ekran görüntüleri, detaylı açıklamalar ve gerekli görülen noktalarda verilen ek bilgiler ile birlikte inceleyebilirsiniz.

Walkthrough (adım adım çözümleme) olarak hazırlanmış olan dokümanlarda tek bir gidiş yoluna yer verilmiştir ancak burada gösterilmekte olandan farklı çözüm yolları olabilir.

Optimum – Network Scan

İlk adımda yapmamız gereken hedef sistem hakkında olabildiğince fazla bilgi toplamak.

Ağda açık olan portları ve bu portlar üzerinde neyin çalıştığını görmek için nmap (Network Mapper) isimli ücretsiz ve açık kaynak bir program kullanıyoruz.

Kali Linux üzerinde yüklü gelen nmap, yalnız port ve servis bilgisi değil işletim sistemi, versiyon bilgileri, hedefte bulunan firewall bilgileri gibi daha birçok işimize yarayacak bilgiyi sağlıyor.

Nmap taraması için kullandığım komut:

nmap -A -T4 -p- 10.10.10.8

Ek bilgi: nmap –help komutu ile görebileceğiniz gibi kullanmış olduğumuz komutlar aşağıdaki işlemleri gerçekleştiriyor:

-A: İşletim sistemi, versiyon bilgisi edinme, script taraması ve traceroute bilgilerini almak için kullanılıyor.
-T: -T4 olarak belirtmiş olduğumuz komut tarama hızı belirlemek için kullanılıyor. 0 ile 5 arasında belirtilebilen bu rakam için biz genellikle 4 tercih ediyoruz.
-p-: Tek bir port taraması değil de 65536 portun tamamının taramasının yapılmasını istediğimiz için -p- olarak yazıyoruz.
10.10.10.5: Hedef sistemin IP adresi.


Çoğu kişi nmap taramasında farklı komutlar kullanarak tarama sonuçlarında kendi istediği şekilde çıktı alıyor.

Nmap hakkında daha detaylı bilgi almak isterseniz https://tools.kali.org/information-gathering/nmap adresini ziyaret edebilirsiniz.

nmap tarama sonucu:

Hackthebox Optimum nmap tarama sonucu

Açık bulduğumuz portlar ve üzerinde çalışan servisler:

Port 80: Hypertext Transfer Protocol (HTTP). Burada HttpFileServer httpd 2.3 olduğunu da nmap tarama sonucundan görebiliyoruz.

Port 80’in açık olduğunu gördükten sonra daha fazla bilgi edinmek için tarayıcıya giderek 10.10.10.8 IP adresini yazıyor ve web sayfasını görüntülüyorum:

Hackthebox Optimum tarayıcı görüntüsü

Yukarıda sarı ile işaretli alanda görülebileceği gibi HTTPFileServer 2.3 bir bağlantıya götürüyor, tıkladığımda açılan sayfa aşağıdaki gibi:

Mümkün olduğunca fazla bilgi toplamak için yapmakta olduğum bu işlemler ile “www.rejetto.com” adresini de görmüş oldum.

Sırada Google araması ile HTTPFileServer 2.3’de zafiyet bulunup bulunmadığına bakmakta.

Optimum – İstismar Arama

Google aramasına exploit yazarak bilinen istismar kodu olup olmadığını kontrol ediyorum ve olumlu sonuçlar veriyor:

Yukarıdaki ekran görüntüsünde ilk sırada yer alan exploit-db sonucu bana bu zafiyet bilgisine Kali’de searchsploit kullanarak da ulaşabileceğimi gösteriyor.

Ek bilgi: Searchsploit, Exploit-DB (istismar veritabanı diyebiliriz) içerisinde yer alan zafiyetlerin aramasını komut satırından yapabilmek için geliştirilmiş harika bir araç. Üstelik kullanımı da çok kolay; sadece searchsploit ve aradığımız kelimeyi yazmak yeterli oluyor. (Daha detaylı bilgi için https://www.exploit-db.com/searchsploit linkine bakılabilir.)

“Rejetto HTTP File Server 2.3” zafiyetini Kali kullanarak aramak isteseydim kullanacağım komut aşağıdaki gibi olacaktı:

searchsploit rejetto

Ve bana yine aşağıda görebileceğiniz istismar seçeneklerini sunacaktı:

Hackthebox Optimum searchsploit açmak

Bu durumda aynı sonuca gidecek birden fazla yola sahibiz:

  • Google araması ile çıkan exploit-db sonucundan istismar kodunu indirip kullanabiliriz,
  • Searchsploit ile Kali Linux içerisinde arama yapabiliriz

Kişisel tercihim ise eğer Google araması yaptığımda bir rapid7 sonucu görüyorsam onu denemek çünkü direkt olarak metasploit ile ilerleyebileceğimiz anlamına geliyor:

Rapid7 linkine tıkladığımda aşağıdaki açıklamayı görüyorum:

Rejetto HTTPFileServer uzaktan komut çalıştırmaya izin veren bir zafiyet barındırıyor.

Bu zafiyetten nasıl faydalanabileceğimiz de aynı sayfanın alt kısmında “module options” kısmında açıklanıyor:

Metasploit Kullanmak

Bu durumda mevcut zafiyetten faydalanabilmek için ilk yapmamız gereken metasploit modülünü açmak. Bunun için komut satırına aşağıdaki komutu yazıyorum:

msfconsole

Ek bilgi: Metasploit bir sızma testi aracı ve sistem hacklemeyi kesinlikle çok kolaylaştırıyor. Hem saldırı hem de savunma tarafında yer alanlar için gerekli bir araç ve mutlaka öğrenilmesinde fayda var. (Detaylı bilgi için https://www.metasploit.com/ adresini ziyaret edebilirsiniz)

Modül açıldığında karşımıza aşağıdaki ekran geliyor:

Hackthebox Optimum metasploit açmak

Burada yine iki seçeneğim var:

  • Rapid7 linkinden bulduğum sıra ile komutları tek tek uygulayabilirim,
  • Zafiyeti search komutunu kullanarak msfconsole’da aratabilirim

Yukarıdaki ekran görüntüsünden anlaşılabileceği gibi Rapid7 bana msfconsole’da search komutu ile yaptığım arama ile aynı sonucu veriyor, Google’da çıkan exploit-db linki ile searchsploit de aynı sonuçları veriyor. Bu durumda elimizdeki örneğe bakarak (rejetto istismarı) tercihlerimizi:
1. Komut satırı veya Google kullanmak
2. İstismarı indirip açmak veya metasploit üzerinden ilerlemek şeklinde kullanabiliyoruz,
tamamen size kalmış.

İstismarı kullanmak için yazdığım komut:

use 0

Komutun use exploit/windows/http/rejetto_hfs_exec şeklinde kullanımına daha sık rastlanıyor ancak kopyala/yapıştır veya tamamını manuel yaz seçeneğine göre, satırbaşında bulunan numarasını kullanmak (yukarıdaki örnekte “0”) bana daha pratik geliyor.

Hackthebox Optimum msfconsole

Hangi istismarı kullanacağımı “use” komutu ile belirttikten sonra ilk yaptığım iş “show options” komutu ile seçeneklerinizi (ya da yapılması gereken bir işlem olup olmadığını) görmek.

Ek Bilgi: Show Options komutu metasploit kullanırken her use komutu ile istismar seçimi sonrası mutlaka yapmamız gereken bir adım. Show options komutu ile istismar kodunun çalışabilmesi için bizden talep edilen bilgileri öğreniyor ve ardından set komutu ile bu bilgilerin girişini tamamlayarak istismar kodunun doğru şekilde çalışmasını sağlıyoruz.

Bir diğer önemli adım ise kullanmayı düşündüğümüz istismar hakkında bilgi almak için info komutunu kullanmak.

“Required” başlığı altında “yes” gördüklerimi kontrol ediyorum ve RHOSTS girmek gerektiğini tespit ediyorum.

Ek bilgi: RHOSTS bilgisi istendiğinde “Remote Hosts” anlamına geliyor ve hedef sistemin IP Adresini girmemizi istiyor. LHOST ise “Listening Host” anlamına geliyor ve kendi IP Adresimizi (saldırgan bilgisayarın IP adresini) girmemizi istiyor.

RHOSTS bilgisinin istismar koduna eklenmesi için aşağıdaki komutu kullanacağım:

set RHOSTS 10.10.10.8

Hemen ardından benden istenen başka bir bilgi olmadığı için exploit komutunu kullanıyorum ve meterpreter session açıldığını görüyorum:

Hackthebox Optimum exploit completed

Meterpreter açıldığında artık hedef sistemdeyim ve yukarıda görülebileceği gibi “shell” komutunu kullanarak Windows komut satırına geçebiliyorum.

Şimdi akıllarda tek soru: Ben kimim? Hangi yetkilere sahibim? Sistem yetkilerine sahip miyim yoksa yalnız bir kullanıcı mıyım? (Tek soru değilmiş.)

Bu sorularıma yanıt bulmak, sistem ya da root yetkilerine sahip olup olmadığımı anlamak için whoami komutunu kullanıyorum ancak aşağıda görülebileceği gibi değilim:

Hackthebox Optimum whoami

Bu cevaptan şunu anlıyorum: Bazı dizin/dosyalara erişimim kısıtlı olacak, root.txt‘yi almak için de kullanıcıyı Administrator yapıp sistem yetkilerini ele geçirmek gerekecek. Ancak adım adım ilerleyelim.

user.txt’ye Ulaşmak

Şuanda kostas adında bir kullanıcıyım ve bu kullanıcı ile normal şartlarda user.txt’ye ulaşabiliyor olmam lazım. Bunun için dizinler arasında gezeceğim.

Kullanabileceğim komutlar ise aşağıdaki gibi:

-dir : bulunduğum dizinde yer alan dosyaları görüntülemek

-cd : bir dizine geçiş yapmak

cd .. : bir üst dizine çıkmak

-type: dosyanın içeriğini görüntülemek

Hackthebox Optimum user.txt

dir komutu ile bulunduğum dizinde yer alan dosyaları görüntülediğimde user.txt.txt karşıma çıkıyor, type komutunu girerek ilk bayrağımı alıyorum.

cd .. komutu ile üst dizine, ardından tekrar aynı komut ile Users dizinine kadar çıkıp dir komutunu kullandığımda Administrator’un burada olduğunu görüyorum:

Hackthebox Optimum Yetki Yükseltme İhtiyacı

cd Administrator komutu ile bu dizine geçmek istediğimde ise tahmin etmiş olduğum gibi “yetkin yok” yanıtı alıyorum.

Windows Privilege Escalation – Yetki Yükseltme

Bulunduğum Windows komut satırından çıkmak ve meterpreter’e dönebilmek için exit komutunu kullanıyorum.

Yetki yükseltme için metasploit’e ihtiyacım var ancak meterpreter session kapanmasın (arkada çalışmaya devam etsin) istediğim için onu arka plana atıyorum.

Bunun için ise aşağıdaki komutu kullanıyorum:

background

Böylece meterpreter kapanmadan metasploit modülünde bir yetki yükseltme açığı arayabileceğim.

Local Exploit Suggester Kullanmak

Metasploit’in güzel özelliklerinden bir tanesi de bana öneriler sunan adı üzerinde “suggester” modülü bulunuyor.

Modülü direkt aşağıdaki komut ile çalıştırabilirim:

use post/multi/recon/local_exploit_suggester

Hatırlamıyorsam ise yine metasploit’e sorabilirim:

search suggester 
Hackthebox Optimum Suggester Kullanımı

Bu komut ile metasploit modülünde “local exploit suggester” (yerel istismar önerici) çalıştırıp bana yerel sisteme giriş yapmışken kullanabileceğim istismar kodlarını bulmasını isteyeceğim.

Ek bilgi: Bu modül post/ ile başlamasından da anlaşılabileceği üzere kullanılabilmek için öncesinde bir meterpreter session açılmış olmasını gerektiriyor.

Seçeneklerimi (girmem gereken bilgileri) bana göstermesi için “show options” komutunu kullanıyorum ve benden session bilgisi girmemin istediğini görüyorum:

 show options

Talep edilen session bilgisi meterpreter session. “Background” komutu ile meterpreter’i arka planda çalışmaya gönderdiğimde “Backgrounding session 1…” yazdığı için biliyorum ki buraya girmem gereken session 1 olacak.

Hackthebox Optimum Meterpreter Session
set session 1

Çalıştırmaya hazırız, exploit ya da run komutu ile suggester’ı çalıştırabiliriz:

Exploit komutu sonrası yanında [+] işaretli gördüğüm satırlar bana yetki yükseltme için kullanabileceğim istismarları gösteriyor.

İlk olarak exploit/windows/local/bypassuac_eventvwr denedim ancak Exploit aborted due to failure: no-access: Not in admins group, cannot escalate with this module yanıtı aldım ve istismar tamamlandı ancak session açılamadı.

İkinci sıradaki exploit/windows/local/ms16_032_secondary_logon_handle_privesc istismarını deneyeceğim. Bunun için kullandığım komut:

use exploit/windows/local/ms16_032_secondary_logon_handle_privesc

Hemen ardından yine show options komutu ile istismarın çalışması için benden istenenleri görüntüleyebilirim:

Session bilgisi istendiği için daha önce yaptığım gibi set session 1 komutunu giriyorum. Artık exploit komutnu girdiğimde çalışması lazım ama çalışmadı 🙂

Çalışmamasının nedeni: exploit komutundan sonra gelen TCP Handler’da yazan IP adresi hatalı.

show options

Tekrar yukarıdaki komutu girerek LHOST ayarlamam lazım ve bunun için kullanacağım komut:

set LHOST 10.10.14.8

Benim IP adresim olan 10.10.14.8’i girdim (Kali’de komut satırına ifconfig yazarak öğrenebilirsiniz), değiştirmem gereken başka bir şey yok gibi görünüyor.

Yeniden exploit komutunu çalıştırıyorum ve:

WHOAMI? veya GETUID

Meterpreter session 2 açıldı yazısını gördükten sonra yine yetki durumumu öğrenmek istiyorum:

Hackthebox Optimum Getuid

Daha önce shell komutu ile Windows komut satırına geçmiş ve bu nedenle whoami komunutu kullanarak hangi kullanıcı olduğumu öğrenmiştim. Bu defa meterpreter komut satırında olduğum için getuid komutunu kullanıyorum ve SYSTEM olduğumu yani sistem yetkilerine sahip olduğumu görüyorum.

Artık yapılması gereken shell komutu ile Windows komut satırına geçerek daha önce user.txt için yaptığımız gibi Administrator kullanıcısı altında root.txt‘yi tekrar bulmak.

Windows’da kullanılması gereken komutları da yazının önceki kısımlarında belirtmiş olduğum için ikinci bayrağı almayı size bırakıyorum 🙂

Bir başka Hackthebox Walkthrough’da görüşmek üzere!

Diğer makinaların çözümlerine https://sibersavascephesi.com/hackthebox/ adresinden ya da ana menüde yer alan “hackthebox” butonu altındaki başlıklardan ulaşabilirsiniz.

İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*