Siber Güvenlik

Metasploitable-2 Çözümleri Part $1

Merhabalar Rapid7 şirketi tarafından yayınlanan zaafiyetli makine olan Metasploitable 2 ‘yi çözeceğim. Ctf imajını köprü bağlantıdan indirip sanallaştırma yazılımlarına import ederek kullanabilirsiniz. Ağ ayarınızı nat yapmayı unutmayın.

 

Keşif aşamasında Metasploitable 2 ‘nin hangi ip adresini aldığını bulmam gerekiyor. Bunun için Kali Linux makinemde ifconfig komutunu çalıştırarak ip adresimin 192.168.117.139 olduğunu görüyorum. Yerel ağdaki canlı sistemleri bulmak için netdiscover aracını kullanacağım.

Metasploitable ip adresini bulduk, 2.aşama olarak ip adresinde kullanılan servislere, işletim sistemi bilgilerine ihtiyacım var. Bunun için nmap kullanacağım.

sS parametresi ile tcp syn taraması yapacağımı belirtiyorum, bu tarama syn bayrağı yolluyor eğer syn+ack bayrağı dönerse portun açık olduğu anlamına gelir ve rst bayrağı göndererek oturumu sonlandırırız (eğer ack gönderirsek üçlü el sıkışma yapısı tamamlanacağından iz bırakabiliriz)  eğer rst+ack dönerse portun kapalı, sadece syn bayrağı dönerse filtreli(güvenlik duvarı) olduğu anlamına geliyor.

-sV parametresi ile versiyon bilgisini istedik(Üçlü el sıkışma bu parametre ile yapılmakta)

-O parametresi ile de işletim sistemini tahmin  etmesini istedik

-n ile de dns çözümlemesi yapmaması söyledik

Çıktılara bakınca baya bir servisin açık olduğu, işletim sisteminin Linux 2.6.9 – 2.6.33 arasında sürümleri kapsayabileceğini söylüyor. İşletim sistemi tespiti için tcp-udp paketleri gönderip gelen cevaba göre Veritabanındaki parmak izleri ile karşılaştırarak tespit ediyor. Olur da içeri düşük yetkili kullanıcı ile sızarsak kullanacağımız yetki yükseltme exploitlerini araştırmak için önemli. Exploitdb sitesinden araştırdığımda 2.6.x sürümünü kapsayan c ile yazılmış yetki yükseltme  exploitleri olduğunu görüyorum bu exploiti – 2 ilerde kullanırız diye bir metin dosyasına linkini kayıt ediyorum.

Hemen ilk sıradaki ftp servisini gözüme kestiriyorum. Ftp dosya transfer protokolüdür osi modelinde uygulama katmanında yer alır.

Ftp clientini kullanarak ilgili ip adresine bağlanıyorum. Ftp sunucularında etkisiz hale getirilmediyse herkesin yükleme yapacağı anonymous:anonymous kullanıcı bulunur. Bununla dizine shell.php  yükleyerek karşı bilgisayardan bağlantı almaya çalışacağım. Hemen put komutu ile lokal dizinimdeki php.shellini karşıya yüklemeye çalışıyorum ama 553 hatası alıyorum bu da demek ki ftp sunucusunun yapılandırma ayarlarından ev dizinine yüklemeyi kapatmışlar, cd komutu ile dizin değiştirmeye çalışıyorum ama yine olmuyor, ev dizininden ayrılamıyorum, bye komutu ile oturumu sonlandırıyorum. Nmap çıktısında servis adı ve sürüm numarası almıştım zaten onunla ilgili bir exploit var mı diye bakmak için msfconsole geçiyorum.

Msfconsole’da search komutuna “vsftd 2.3.4” aramasını ve çıktı sonuçlarının da exploit olması gerektiğini belirtiyorum, eğer belirtmezsem auxiliary modülleri de çıkabilir ve terminal ekranı karmaşık olabilir. Kısa bir aramadan sonra 2011 yılında yazılmış ve sürümümle uyuşan bir exploit görüyorum.

Modülü exploit ettiğimde karşı makineden root hakları ile oturum elde etmiş oldum.

Ardından 2. servis olan ssh servisini ele alalım.

SSH nedir? SSH, veya Secure Shell, kullanıcılara sunucularını internet üzerinden kontrol etmesini ve düzenlemesini sağlayan uzak yönetim protokolüdür.

Ssh servisine ilk olarak kaba kuvvet saldırısı yapacağım.

Msfconsoldan ssh_login modülünü kullanmak için arama yapıyorum 2 tane modül geldi, birinci modül için user:pass listesine ihtiyacımız var , digerinde ise rsa keyine ihtiyacımız var, rsa keyi elimde olmadığı için ilk modül ile devam ediyorum.

Benden rhosts-rport(defaul olarak 22 zaten servisimde 22) bir de wordlist istiyor.

Gerekli ayarları set ediyorum, tüm çıktıları görmek için VERBOSE parametresini True yapıyorum ve exploit işlemini başlatıyorum.

Bir dizi denemeden sonra 2 tane kullanıcı buluyor, user:user ve msfadmin:msfadmin şeklinde ikisi de düşük kullanıcı root hakları yok, makineye girdikten sonra mecbur yetki yükseltme işlemi yapacağız.

Ssh clienti ile sisteme user kullanıcısı ile giriyorum. İd komutu ile grup haklarına tekrar bakıyorum standart kullanıcı olduğunu görüyorum. Sudo su ile root olmaya çalışıyorum fakat kullanıcı yapılandırma dosyası (/etc/sudoers) kullanıcı adım yer almadığı için hata alıyorum.

Yetki yükseltmem gerektiğini anlıyorum, yukarıda zaten yetki yükseltme exploitimiz hazırdı fakat her zaman böyle bir şansımızın olmayacağını düşünerek el ile yapmaya karar verdim. İlk olarak eğer sistemde nmap varsa interaktif moddan, ön tanımlı gelen ve root hakkı olan sh kabuğuna geçiş yapıp kendimi root olarak ekleyeceğim, eğer yoksa crontab, mysql_exec, migrate gibi metotlar ile deneriz.

Vim yardımı ile etc/sudoers dosyasını insert modda açıyorum “#User privilege specificaiton” başlığı altına giriş yaptıgım useri ekliyorum ve esc ile yazma modunu kapatıyorum ardından :w! ile dosyayı yazıp :q ile çıkış yapıyorum. Sh ve nmaptan çıkış yaptıktan sonra ssh bağlantısı yaptığım prompta geliyorum ve sudo su ile root olmaya çalışıyorum ve gördüğünüz gibi root haklarım artık var.

 

Bir sonraki yazıda görüşmek üzere. Güvenli günler dilerim.

Yazar Hakkında

Andhrimnir
Yazara ait blog yazıları eğitim amaçlıdır.Etik kuralların dışında kullanım sorumluluğu kullanıcıya aittir.
~Tanrı denizcilere yardım eder ancak kaptan dümende olmalıdır.

Bu makaleyi 4 dakikada okuyabilirsiniz.
Andhrimnir
Yazara ait blog yazıları eğitim amaçlıdır.Etik kuralların dışında kullanım sorumluluğu kullanıcıya aittir. ~Tanrı denizcilere yardım eder ancak kaptan dümende olmalıdır.