KIOPTRIX LEVEL 3
KIOPTRIX LEVEL 3
Tanım
Son Kioptrix VM mücadelesinden bu yana epey zaman geçti. Hayat bu tür şeylerin yolunu bulmaya devam ediyor biliyorsun.
Son ikisinin indirilme sayısını ve bu zorlukları aşmanın yollarını gösteren sayısız videoyu gördükten sonra, 1.2'nin (veya sadece 3. seviyenin) çıkması gerektiğini hissettim. İlk ikisini indiren ve oynayan herkese teşekkür ederim. Ve bunların video çözümlerini üretmek için zaman ayıranlara teşekkür ederim. Çok takdir edildi.
Diğer ikisinde olduğu gibi, bu meydan okuma da yeni başlayanlara yöneliktir. Ancak farklıdır. Birkaç adım daha eklendiğinde yeni bir beceri seti gerekir. Hala yeni başlayanların alanı olduğunu eklemeliyim. Diğerlerinde olduğu gibi, bunu "pwn" etmenin birden fazla yolu vardır. Kolay ve o kadar kolay olmayan vardır. Unutmayın... "kolay" veya "zor" duygusu her zaman kişinin kendi beceri seviyesine göredir. Bu şeylerin olağanüstü zor veya zor olduğunu asla söylemedim, ancak hepimizin bir yerden başlamamız gerekiyor. Ve size söyleyeyim, bu savunmasız VM'leri yapmak göründüğü kadar kolay değil...
Bu meydan okumada önemli olan şey. IP'yi (DHCP İstemcisi) bulduğunuzda hosts dosyanızı düzenleyin ve kioptrix3.com'a yönlendirin.
Windows'ta, C:\Windows\System32\drivers\etc\hosts dosyasını aşağıdaki gibi düzenlemeniz gerekir:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost127.0.0.1 static3.cdn.ubi.com
192.168.1.102 kioptrix3.com
Linux altında bu /etc/hosts olurdu
Bir web uygulaması var, dolayısıyla her şeyin güzel ve düzgün bir şekilde görüntülenebilmesi için buna gerçekten ihtiyacınız var.
Kioptrix VM Seviye 1.2 meydan okumasının tadını çıkarmanızı umuyoruz.
452 MB
MD5 Karma : d324ffadd8e3efc1f96447eec51901f2
İyi eğlenceler
LINK: https://download.vulnhub.com/kioptrix/KVM3.rar
KIOPTRIX Level 3 sanal makinasını buradan indirebilirsiniz. Sanal makineyi VirtualBox ya da VMware gibi bir sanallaştırma platformu üzerinde çalıştırabilirsiniz. İndirdikten sonra, "Import Appliance" seçeneği ile kurulumu tamamlayabilirsiniz. Makineyi kurduktan sonra aşağıdaki ekran bizi karşılıyor.
ADIM 1: IP ADRESİMİZİ BELİRLEME
Sızma testi sürecine başlamadan önce, Kali Linux makinemizi açıyoruz. Hedef sistemi taramadan önce, ağdaki konumumuzu netleştirmek adına kendi IP adresimizi kontrol etmemiz önemlidir. Bu adım, işlemleri hangi IP adresi üzerinden gerçekleştireceğimizi belirlememizi sağlar. IP adresimizi öğrenmek için aşağıdaki komutu kullanabiliriz:
İfconfig
Bu komut sonucunda IP adresimizin 192.168.233.129 olduğu tespit ettik. Bir nmap taraması yapıp hedef bilgisayarın IP adresini bulalım.
ADIM 2 : AÇIK PORT TARAMA
nmap 192.168.233.0/24
192.168.233.0/24 ifadesi, 192.168.233 ile başlayan 256 IP adreslik bir aralığı temsil eder: 192.168.233.0 ile 192.168.233.255 arasındaki tüm IP adreslerini içerir.
Burada /24, IP aralığının ilk 24 bitinin sabit olduğunu ve kalan 8 bitin tüm olası kombinasyonları kapsadığını belirtir. Bu da toplamda 2^8 = 256 adet IP adresi anlamına gelir.
Yani verilen ağ aralığında hangi cihazların bulunduğunu ve bu cihazlarda hangi portların açık olduğunu öğrenmek için kullanılır.
Tarama sonucunda, hedef makinemizin IP adresinin 192.168.233.134 olduğunu ve bu makinede iki önemli servisin açık olduğunu görmüş olduk.
Açık portlar:
HTTP
SSH
ADIM 3: WEB SİTESİNİ ZİYARET ETME
Hedef makinede HTTP portunun açık olduğunu gördüğümüzde, yapmamız gereken ilk adım web sitesini tarayıcıda ziyaret etmek olmalıdır. Web uygulamasının sunduğu içerik ve işlevsellik hakkında bilgi toplamak, ilerideki testler için değerli ipuçları verebilir.
Dizin taraması yapıp var olan dizinleri listeleyip inceleyelim. Dizin taraması, sunucuda erişime açık klasörleri ve dosyaları belirleyerek keşif sürecimizi genişletebiliriz.
dirb http://192.168.233.134 komutu, hedef IP adresindeki (burada 192.168.233.134) web uygulamasında dizin ve dosya keşfi yapmak için kullanılan bir komuttur. dirb, belirli bir URL'yi tarar ve önceden tanımlı bir wordlist (kelime listesi) kullanarak URL'deki dizinleri veya dosyaları arar.
Dizinleri incelediğimde bir phpmyadmin sayfası dikkatimi çekiyor ve ağaşıdaki sayfaya erişiyorum.
Admin yazıp bir denem yaptım ve beni phpMyAdmin sayfasına yönlendirdi. Fakat bu kısımda yetkimiz olmadığı için daha sonraya bırakalım.
Şimdi ana sayfamızdaki login kısmına bir göz atalım.
Login kısmını açtığımızda karşımıza belirli bir ekran çıkmaktadır. Aklıma ilk sql injection açığı geliyor. Birkaç deneme yapalım.
Maalesef burdan bir şey çıkmadı:/
ADIM 4: LOTUS CMS AÇIĞI
Sayfa LotusCMS tarafından destekleniyor. Bu nedenle, bu hizmet "LotusCMS" için herhangi bir zafiyet bulmaya çalışalım. Bunu ister tarayıcıdan exploiti aratabilirsiniz isterseniz de msfconsole ile araştırabilirsiniz. Ben msfconsole yardımıyla yapacağım. Metasploit Framework'ün ana konsoludur. Bu komutu çalıştırarak Metasploit’i açıyoruz.
Msfconsole açıldıktan sonra search lotuscms komutuyla metasploit veritabanında LotusCMS ile ilgili güvenlik açıkları var mı araştırıyorum.
Search lotuscms
use 0
Güzel.. Bir exploit bulduk. Şimdi bunu use 0 komutuyla kullanabiliriz.
show options
Yapılandırmamız gereken yerleri öğrenmek için show options komutunu kullanalım.
set rhosts 192.168.233.134
set URI /
Hedef makinamızın ip adresini verdik ve URI root olarak ayarladık. Böylelikle saldırı doğrudan web sunucusunun ana dizinine yönelik yapılır. Gelelim payloads kısmına
show payloads
show payloads komutuyla, seçtiğiniz exploit modülüyle uyumlu olan tüm payload seçeneklerini görüntülüyoruz. Payload, başarılı bir şekilde istismar edildiğinde hedefte çalışacak olan komut veya kodu temsil eder.
set payload /generic/Shell_bind_tcp
Bu payloadı seçmemizin nedeni hedef makinede belirli bir portta bir kabuk (shell) açar ve bizim o porta bağlanmanızı sağlar.
exploit
Son olarak exploit komutunu kullanarak saldırıyı başlatıyoruz. Exploit hedefte başarıyla çalıştı ve belirlenen bağlantı portu üzerinden kabuk erişimi sağladı.
shell
Hedefte bir kabuk erişimi (shell access) sağladıktan sonra, artık hedef makine üzerinde komutlar çalıştırabiliriz.
python –c ‘import pty;pty.spawn(“/bin/bash”)’
Kabuk bağlantısı kurduktan sonra bazen interaktif çalışmak zor olabilir. Bu yüzden daha işlevsel bir kabuk yaratmak için Python komutunu kullanıyoruz. Bu komut, /bin/bash kabuğunu başlatır ve daha fazla komut kullanmamıza olanak sağlar. Bu adım, komutları daha düzgün bir şekilde çalıştırmamıza yardımcı olur.
cd /home
Bu komut bizi /home dizinine taşır, burada genellikle sistemde bulunan kullanıcıların klasörleri yer alır.
ls
Bu komut, mevcut dizindeki dosya ve klasörleri listeler.
cd loneferret
Hadi bu dizine gidelim
ls
cat CompanyPolicy.README
cat ile içindeki CompanyPolicy.README dosasını görüntüleyelim.
Burda sudo ht komutunu kullanarak dosyaları oluşturma veya görüntüleyebileceğimizi söylüyor. Hadi bir deneyelim.
sudo ht
Bu komutu yazınca henüz sahip olmadığımız sözde şifreyi istiyor. Buna henüz sahip olmadığımız için şimdilik bırakalım.
Daha önce bulduğumuz php yönetici sayfası nedeniyle bir mySQL veritabanı olduğunu biliyoruz ve bu bizim için bazı kullanıcı kimlik bilgilerine sahip olabilir. Denemek için veritabanına erişmemize izin verecek bazı kimlik bilgilerini bulmaya çalışalım.
cd ..
ls
cd www
Komutunu kullanarak web klasörüne geri dönelim.
Locate config.php
Bu komut config.php dosyasının nerde olduğunu gösteriyor. Şimdi belirtilen yerlerdeki dizinlere gidip gconfig.php dosyasını okuyalım.
Tatlı.. Kullanıcı adı ve şifreyi ele geçirdik.
Kullanıcı adı :root
Password: fuckeyou
Hadi php yönetici sayfamıza geri dönüp bulduğumuz bilgilerle giriş yapalım.
Gallery kısmına gidelim.
Dev accounts kısmını seçelim. Browse yazan kısma tıklayalım ve bingoo!!
Kullanıcıların şifrelerine ve kullanıcı isimlerine eriştik. Fakat bu şifreler hashlenmiş. Hadi hash kırmaya..
Ben hash kırmak için bu siteyi (https://hashes.com/en/decrypt/hash) kullandım. Fakat siz istediğiniz herhangi bir sitesi kullanabilir veya terminal üzerinden hashcat, hydra gibi aracları kullanabilirsiniz.
Şifreleri kırdık.
Mast3r
Starwars
Adım 5: SSH İLE BAĞLANTI
Ssh portunun açık olduğunu hatırlayalım. Şimdi SSH servisine bir göz atabiliriz. Elde ettiğimiz kimlik bilgileri ikisi de geçerli.
Sizde bu hatayı alabilirsiniz. Bu hata mesajı, istemci bilgisayarın SSH sunucusunun sunduğu anahtar türlerinden herhangi biriyle (örneğin ssh-rsa veya ssh-dss) güvenli bir bağlantı kurmak için gerekli olan ortak anahtar türünü desteklemediğini belirtir. OpenSSH gibi bazı güncel SSH istemcileri artık daha eski veya güvensiz anahtar türlerini (örneğin ssh-rsa, ssh-dss) varsayılan olarak desteklememektedir.
Bu durumu çözmek için HostKeyAlgorithms ve PubkeyAcceptedKeyTypes parametrelerini SSH komutuna ekleyerek eski anahtar türlerini kabul etmesini sağlayabilirsiniz. Komutu şu şekilde güncelleyebilirsiniz:
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa [email protected]
Not: Hedef makineyi yeniden kurmak zorunda kaldığım için IP adresi 135 olarak değişti.
ADIM 6: YETKİ YÜKSELTME
whoami
sudo -l
İlk olarak hangi kullanıcıda olduğumuzu kontrol edelim. Daha sonra sudo ht komutunu kullanalım. Bu komut herhangi bir dosyayı düzenlememize etkili bir şekilde izin verir. Bu tür yanlış yapılandırmalardan (örneğin, root için genel ssh anahtarlarını düzenleme, passwd dosyasını değiştirme veya sudoers dosyasını düzenleme) yükselmenin birçok yolu vardır. Ben üçüncüsünü yapacağım.
expory TERM =xterm
Düzenleyiciye geçmeden önce grafiksel bileşenlerin düzgün çalışması için aşağıdaki komutla TERM değişkenini dışa aktaralım.
sudo /usr/local/bin/ht
Komutunu çalıştırarak düzenleyiciyi açalım.
F3 tuşuna basarak dosya seçme ekranına geçin ve /etc/sudoers dosyasını açalım.
/etc/sudoers bir ayrıcalık yükseltme dosyasıdır.
Dosyanın içinde loneferret kullanıcısının olduğu satırın sonuna /bin/bash ekleyin, böylece kullanıcıya sınırsız sudo yetkisi vermiş olacağız.
CTRL+C kombinasyonunu kullanarak değişiklikleri kaydedelim ve çıkalım.
sudo /bin/bash
whoami
id
Dosyadan çıktıktan sonra komut satırına sudo /bin/bash komutunu giriyoruz. VE artık root kullanıcısıyız. Ardından id komutunu girerek doğrulayabiliriz.