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

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.

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.

Lame, 10.10.10.3 IP adresinde yer alıyor. Hackthebox makinalarından emekliye ayrılmış ve kolay kategorisinde işaretlenmiş.

Aşağıda bu sistemi ele geçirmek için gerekli çözüm yolunu ekran görüntüleri ve detaylı açıklamalar ile birlikte bulabilirsiniz.

Önemli bir nokta: bu çözümü bulmaya çalışırken geçtiğim yolları ve “çözüme ulaşamama” aşamalarını da sizinle paylaştım. Bunun hem “elimle koymuş gibi buldum” tarzından daha gerçekçi hem de daha öğretici olduğuna inanıyorum.

Başlangıç seviyesine göre hazırlanmış bir makina olan Lame sistemini ele geçirmek için tek bir istismar kullanmak yeterli oluyor ve bu nedenle özellikle yeni başlayanlar için uygun denilebilir.

Basit seviye bir Linux bilgisi gerektiren Lame üzerinde çalışırken ihtiyaç duyacağımız araçlar nmap, searchsploit ve metasploit olacak.

Portlar ve servisler hakkında enumeration yani bilgi toplamayı ve SAMBA yani SMB istismar etmeyi öğreneceğiz.

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.

Lame – 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.3

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.3: 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 Lame nmap tarama sonuçları

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

Port 21: ftp         vsftpd 2.3.4

Port 22: ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)

Port 139: netbios-ssn Samba smbd 3.X – 4.X (workgroup: WORKGROUP)

Port 445: netbios-ssn Samba smbd 3.X – 4.X (workgroup: WORKGROUP)

Port 3632: distccd     distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))

Görüldüğü gibi toplam 5 port açık. Nmap taramasından diğer edindiğim bilgiler ise: FTP (File Transfer Protocol / Dosya Yükleme Protokolü) anonim olarak bağlantı kurmaya izin veriyor ve işletim sistemi Linux.

İlk sırada yer alan FTP portu ile başlayabiliriz.

Lame – Port 21 : FTP vsftpd 2.3.4 İstismar Denemesi

FTP vsftpd 2.3.4’de zafiyet bulunup bulunmadığını kontrol etmek için searchsploit kullanacağız.

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.)

Searchsploit ile istismar kodunu aramak için kullandığım komut:

searchsploit vsftpd 2.3.4

Yukarıda yer alan searchsploit sonucundan anlıyorum ki; vsftpd 2.3.4’de bir arka kapı komut çalıştırma zafiyeti bulunuyor (Backdoor Command Execution). Parantez içerisinde yer alan Metasploit ise istismar esnasında bu modülün kullanılabileceğini gösteriyor.

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)

Metasploit modülünü açmak için komut satırına msfconsole yazarak başlıyorum, ardından search komutu ile ftp versiyonu olan vsftpd 2.3.4’ü bu defa metasploit içerisinde aratıyorum ve bana istismar kodu için gerekli yolu göstermesini bekliyorum.

Çıkan sonuçlar içerisinde en alt sırada (3 numara) yer alan bizim aradığımız arka kapı istismarı. Kullanmak için ise iki seçeneğim var:

use exploit/unix/ftp/vsftpd_234_backdoor 

 Diğer seçenek exploit kodunun yanında yer alan sıra numarasını yazmak:

use 3

Metasploit artık 3 numaralı istismarı kullanmak istediğimi biliyor ancak show options komutu ile bu istismarın doğru şekilde çalışması için nelerin gerekli olduğuna bakmalıyım.

Ek Bilgi: Show Options, metasploit kullanırken her use ile istismar seçimi sonrası mutlaka yapmamız gereken bir adım. Show options 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.

RHOSTS ve RPORT için “Required” başlığı altında yazan “yes”lerden anlıyorum ki bu bilgilerin girilmesi gerekiyor.

RPORT zaten 21 olarak girilmiş ve kullanmak istediğim doğru bilgi.

RHOSTS ise hedef sistem yani LAME yani 10.10.10.3 IP adresini girmem gerekiyor.

set RHOSTS 10.10.10.3

Yukarıdaki komut ile RHOSTS’u ayarladıktan sonra dikkat etmek gereken bir diğer önemli nokta ise yine show options dediğimizde ya da show targets komutu ile görebileceğimiz hedef seçenekleri.

Bu örnekte (aşağıda görülebileceği gibi) tek bir target çıkmış ancak bazı sistemlerde burada birden fazla seçenek olduğu görülebiliyor ve bu durumda set target komutu ile istenen target seçeneğinin de belirtilmesi gerekiyor.

Tüm ayarları tamamladığıma göre artık tek yapmam gereken run ya da exploit komutları ile istismarı çalıştırmak:

Buraya kadar güzel gidiyordu ancak “Exploit completed, but no session was created.” yanıtını aldık.

Eğer yukarıda yazmış olduğum ek bilgideki gibi buralara kadar gelmeden exploit hakkında bilgi almayı tercih etmiş ve show options komutundan önce info komutunu kullanmış olsaydık aşağıdaki açıklamayı görebilecek ve istismarın 3 Temmuz 2011’de devre dışı kaldığını öğrenebilecektik 😊

Lame – Port 22: SSH OpenSSH 4.7p1 İstismar Denemesi

FTP ile olmadığına göre nmap taramasında çıkan ikinci seçeneğime geçiyorum, OpenSSH istismarı deneyeceğim.

İstismar aramak için Google, searchsploit ya da msfconsole seçeneklerim var. Ben msfconsole tercih edeceğim.

search OpenSSH 4.7p1

İşime yarayabilecek bir istismar yok gibi görünüyor.

En altta çıkan 3 tanesi post/ ile başladığı için biliyorum ki bunlar “post exploit” yani kullanılmaları için önce sistemin ele geçirilmiş olması gerekiyor, 1 numarada yer alan ve exploit/ ile başlayanın kısa açıklamasında ise “Privilege Escalation” yazıyor yani ancak sisteme girdikten sonra yetki yükseltme için kullanılabilir.

Böylece SSH istismar denemesi de başarısız oluyor.

Lame – Port 445 : SAMBA (SMB) İstismar Denemesi

nmap taramasından öğrendiğimiz kadarıyla Port 139 ve 445 üzerinde SMB yani Samba bulunuyordu ancak benim yapmış olduğum taramada SMB versiyon bilgilerine erişememiştim.

Daha sonra SMB versiyon bilgilerini öğrenebilmek için aşağıdaki komutu denedim:

nmap --script smb-os-discovery.nse -p445 10.10.10.3

Bu komutla da sonuç alamadım, bunun yerine smb-os-discovery: ERROR: Script execution failed (use -d to debug) yanıtı aldım.

ÖNEMLİ: Eğer aynı sorunu yaşıyor ve SMB versiyon bilgilerine erişemiyorsanız deneyebileceğiniz en basit yöntem apt upgrade komutu ile Kali’yi güncellemeniz ve sonra apt-get install nmap komutuyla nmap’i güncellemeniz.

Gerekli güncellemeleri yaptıktan sonra nmap –script smb-os-discovery.nse -p445 10.10.10.3 komutunu tekrar girip SMB versiyonunun 3.0.20 olduğunu öğreniyorum:

https://www.cvedetails.com/metasploit-modules/version-14554/Samba-Samba-3.0.2.html adresinden bu versiyona ait istismarlar kontrol edilebileceği gibi, metasploit komut satırı üzerinden de bir araştırma yapabiliriz:

search samba 3.0.2

Çıkan 33 sonucu description yani açıklamalarına bakarak değerlendirebiliriz.

Bu gibi bol seçenekli durumlarda hangi istismarı seçeceğine karar vermek ilk etapta biraz zor da olsa, açıklama kısmında yer alan bilgiler iyi bir yönlendirici olabiliyor.

Örneğin: Yetki yükseltme istemiyoruz, bu bir HTB makinası ve DOS saldırısı yapmayacağız. Aradığımız istismar  Remote Code Execution ya da Command Execution anahtar kelimeleri ile bulabileceğimiz, komut çalıştırmamıza yarayacak bir istismar olabilir.

Kriterlere uyan 14 numaralı istismarı use komutu ile birlikte komut satırına yazıyorum.

Hatırlatma: Komutu use exploit/multi/samba/usermap_script olarak yazabilir ya da dilerseniz use 14 olarak da kullanabilirsiniz.

Show options komutu ile istismarın doğru şekilde çalışması için benden istenen bilgileri görüntülüyorum ve yukarıda bahsetmiş olduğum gibi set RHOSTS 10.10.10.3 komutu ile kodun çalışması için gereken hedef bilgisini tanımlıyorum.

Hazırım 😊

Ve Exploit komutuna Command shell session 1 opened yanıtı geliyor, oldu bu iş!

Hangi kullanıcı olduğumu öğrenmek için girdiğim whoami komutuna root cevabı alınca biliyorum ki artık tek yapmam gereken dosyalar arasında gezinip root.txt ve user.txt’yi bulmak.

Bunun için ilk olarak nerede olduğumu bilmem lazım ve pwd yazarak içinde bulunduğum dizini öğreniyorum.

Ardından bu dizindeki dosyaları görüntülemek için ls komutunu kullanıyorum.

cd komutu ile hangi dizin içerisine girmek istediğimi seçiyorum ve bir üst dizine çıkmak için cd .. komutunu kullanıyorum.

Home dizinine gidip ls ile içine baktığımda makis isimli bir kullanıcıya rastlıyorum ve user.txt işte burada!

Cat komutu ile içeriğini görüntüleyebilir ve ilk bayrağımı alabilirim.

Aynı komutlar ile dosyalar arasında gezerek root.txt’yi bulmak gerekiyor, onu da size bırakıyorum 😊

Hackthebox makinalarından bir tanesi olan Lame için saklanmış olan bayrakları alabildik ancak her zaman bu kadar kolay olmuyor 😊

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.

Paylaş

İlk yorum yapan olun

Bir yanıt bırakın

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


*