- 8 Eyl 2016
- 1,646
- 1,001
Merhaba arkadaşlar, bugün çözerken çok zevk aldığım bir pentest lab'ını sizlere anlatacağım. Hemen başlayalım, CTF'mizi sanal makineye import ettim. Konu sonunda link vereceğim.
Şimdi, hedef makinemizin ip adresini öğrenmek için yerel ağda tarama yapalım.
Kırmızı ile işaretlediğim alan hedef makinemizin İP adresi, bende bu İP adresini nmap ile port taraması yaparak keşfe başlayayım. Her işin başı port taramasıdır!
80 ve 22 portları açık, yani 80 portunda bir web uygulaması çalışıyor,
22'de malum SSH portu. Şimdi, makinenin İP adresini tarayıcıya yazarak girelim bakalım, ne çıkacak karşımıza.
"SQL Injection becerilerinizi sergileyin" diyor, ben bypass kodları denedim sonuç nafile. Zaten o kadar basit olamaz, bizi oyalamak için olan bir sayfa. Peki şimdi ne yapacağız? web uygulamasında dizin keşfini gerçekleştireceğiz, bakalım başka ne sayfalar var, illaki vardır. Dirb ile tarayalım.
200 sonucunu döndürdüğü sayfalar tespit edilen sayfalardır. "/add" sayfasına girdim beni bir upload sayfası karşıladı, shell yüklemeyi denedim ancak olumsuz oldu ve yoluma başka keşiflerle devam etmeye başladım. Diğer sayfaları gezdim, "in" sayfası phpinfo sayfası idi, buradan sistemin dizin yapısını elde ettim.
Demek ki, web dosyaları "/var/www" dizininde, işimize yarayabilir bir bilgi bu, dursun kenarda, diğer sayfaları inceleyelim.
"/panel" adlı php dosyasına baktım, bizi index.php'ye atıyordu, onda da vardır bir şey diyerek es geçtim.
En sonunda, "test" adlı php dosyasına giriş yaptım, ve olay burada başlıyordu!
"file" adlı bir parametreden bahsediyor, bende burada bir zafiyet olabilir diyerekten, "test.php" dosyasında, file POST parametresinde Local File Inclusion denedim.
Bakalım, passwd dosyasını çekecek mi?
Ve bomba! passwd dosyasını okuyabiliyoruz. Ben bunu bir de kali de curl ile çekeyim.
Gördüğünüz gibi, file parametresi üzerinde local file inclusion bulnmakta, ama biz bunu nasıl kullanacağız, config çekip SSH ve PhpMyadmin erişimi elde etsek çok daha iyi olur. Acaba phpmyadmin sayfası var mı? dizin taramasında çıkmadı? acaba farklı adda mı?
Bende başka bir wordlist ile tekrar tarayayım madem.
Bom! iki dizin daha bulduk. "/phpmy" phpmyadmin sayfası, "uploaded_images" ise 3 adet resmin tutulduğu bir dizin. Config dosyası okusak phpmyadmin ile giriş yapabilir miyiz? veya SSH ile direk sisteme de girebiliriz, kafamda deli sorular. Acaba config dosyası hangi dizinde, bir tahmin yapayım.
Şöyle bir deneme yapalım, curl ile isteği yollayalım, sonuca bakalım.
Bomba! Local File Inclusion zafiyeti içeren parametremiz üzerinden config dosyasını okudum. "User: root Password: roottoor" bu bilgiler SSH bağlantı bilgileri ise,direk root'uz deneyelim bakalım.
komutunun ardından, "roottoor" olarak şifremizi girdim, ve sonuç:
Ve sisteme root hakları ile eriştik ama beni kesmedi, SSH bilgilerini elde edemeseydik, web uygulaması üzerinden ne yapabilirdik? /panel dosyası niye index sayfasına atıyordu bizi? /c sayfası niye boştu?
Şimdi /c sayfasını LFI zafiyetimiz ile okuyalım.
Bom! "billu" ve "b0x_billu" neyin bilgileri idi, acaba phpmyadmin mi? deneyelim.
Bom! giriş yaptık, auth adlı bir tablo vardı, baktım user ve pass bilgisi var acaba neyin?
Acaba index sayfasındaki user ve pass alanı mı? deneyelim./B]
İlginç! bizi panel sayfasına yönlendirdi giriş yapınca. Hatırlarsanız, panel sayfasına giriş yaparken de, index sayfasına atıyordu. Sırlar yavaş yavaş çözülüyor
Karşıma bir upload sayfası geldi. Bir de aklıma şu geldi, biz ikinci dizin keşfinde, "uploaded_images" sayfası bulmuştuk, acaba buradan yüklenen dosyalar, oraya mı gidiyordu? Test olarak bir jpg dosyası yükledim ve aynen oraya gitti. Ben de buradan reverse shell yükleyerek meterpreter oturumu elde edip, sisteme bir de öyle sızıp, root olmayı aklımdan geçirdim. Ancak bazı sorunlardan ötürü işlemi yarım bırakmak zorunda kaldım, ancak olayı siz anladınız, elde edilen meterpreter oturumu üzerinden kernel sürümüne uygun root exploit'i sunucuya wget komutu ile çekip çalıştırdıktan sonra sistemde root hakları sağlanıyor. Bu makinenin çözümü de bu kadar. SSH bağlantısı ile zaten root olmuştuk.
İndirme Linki:
https://download.vulnhub.com/billu/Billu_b0x.zip
Şimdi, hedef makinemizin ip adresini öğrenmek için yerel ağda tarama yapalım.
Kırmızı ile işaretlediğim alan hedef makinemizin İP adresi, bende bu İP adresini nmap ile port taraması yaparak keşfe başlayayım. Her işin başı port taramasıdır!
80 ve 22 portları açık, yani 80 portunda bir web uygulaması çalışıyor,
22'de malum SSH portu. Şimdi, makinenin İP adresini tarayıcıya yazarak girelim bakalım, ne çıkacak karşımıza.
"SQL Injection becerilerinizi sergileyin" diyor, ben bypass kodları denedim sonuç nafile. Zaten o kadar basit olamaz, bizi oyalamak için olan bir sayfa. Peki şimdi ne yapacağız? web uygulamasında dizin keşfini gerçekleştireceğiz, bakalım başka ne sayfalar var, illaki vardır. Dirb ile tarayalım.
200 sonucunu döndürdüğü sayfalar tespit edilen sayfalardır. "/add" sayfasına girdim beni bir upload sayfası karşıladı, shell yüklemeyi denedim ancak olumsuz oldu ve yoluma başka keşiflerle devam etmeye başladım. Diğer sayfaları gezdim, "in" sayfası phpinfo sayfası idi, buradan sistemin dizin yapısını elde ettim.
Demek ki, web dosyaları "/var/www" dizininde, işimize yarayabilir bir bilgi bu, dursun kenarda, diğer sayfaları inceleyelim.
"/panel" adlı php dosyasına baktım, bizi index.php'ye atıyordu, onda da vardır bir şey diyerek es geçtim.
En sonunda, "test" adlı php dosyasına giriş yaptım, ve olay burada başlıyordu!
"file" adlı bir parametreden bahsediyor, bende burada bir zafiyet olabilir diyerekten, "test.php" dosyasında, file POST parametresinde Local File Inclusion denedim.
Bakalım, passwd dosyasını çekecek mi?
Ve bomba! passwd dosyasını okuyabiliyoruz. Ben bunu bir de kali de curl ile çekeyim.
Gördüğünüz gibi, file parametresi üzerinde local file inclusion bulnmakta, ama biz bunu nasıl kullanacağız, config çekip SSH ve PhpMyadmin erişimi elde etsek çok daha iyi olur. Acaba phpmyadmin sayfası var mı? dizin taramasında çıkmadı? acaba farklı adda mı?
Bende başka bir wordlist ile tekrar tarayayım madem.
Bom! iki dizin daha bulduk. "/phpmy" phpmyadmin sayfası, "uploaded_images" ise 3 adet resmin tutulduğu bir dizin. Config dosyası okusak phpmyadmin ile giriş yapabilir miyiz? veya SSH ile direk sisteme de girebiliriz, kafamda deli sorular. Acaba config dosyası hangi dizinde, bir tahmin yapayım.
Kod:
/var/www/phpmy/config.inc.php
Şöyle bir deneme yapalım, curl ile isteği yollayalım, sonuca bakalım.
Bomba! Local File Inclusion zafiyeti içeren parametremiz üzerinden config dosyasını okudum. "User: root Password: roottoor" bu bilgiler SSH bağlantı bilgileri ise,direk root'uz deneyelim bakalım.
Kod:
komutunun ardından, "roottoor" olarak şifremizi girdim, ve sonuç:
Ve sisteme root hakları ile eriştik ama beni kesmedi, SSH bilgilerini elde edemeseydik, web uygulaması üzerinden ne yapabilirdik? /panel dosyası niye index sayfasına atıyordu bizi? /c sayfası niye boştu?
Şimdi /c sayfasını LFI zafiyetimiz ile okuyalım.
Bom! "billu" ve "b0x_billu" neyin bilgileri idi, acaba phpmyadmin mi? deneyelim.
Bom! giriş yaptık, auth adlı bir tablo vardı, baktım user ve pass bilgisi var acaba neyin?
Acaba index sayfasındaki user ve pass alanı mı? deneyelim./B]
İlginç! bizi panel sayfasına yönlendirdi giriş yapınca. Hatırlarsanız, panel sayfasına giriş yaparken de, index sayfasına atıyordu. Sırlar yavaş yavaş çözülüyor
Karşıma bir upload sayfası geldi. Bir de aklıma şu geldi, biz ikinci dizin keşfinde, "uploaded_images" sayfası bulmuştuk, acaba buradan yüklenen dosyalar, oraya mı gidiyordu? Test olarak bir jpg dosyası yükledim ve aynen oraya gitti. Ben de buradan reverse shell yükleyerek meterpreter oturumu elde edip, sisteme bir de öyle sızıp, root olmayı aklımdan geçirdim. Ancak bazı sorunlardan ötürü işlemi yarım bırakmak zorunda kaldım, ancak olayı siz anladınız, elde edilen meterpreter oturumu üzerinden kernel sürümüne uygun root exploit'i sunucuya wget komutu ile çekip çalıştırdıktan sonra sistemde root hakları sağlanıyor. Bu makinenin çözümü de bu kadar. SSH bağlantısı ile zaten root olmuştuk.
İndirme Linki:
https://download.vulnhub.com/billu/Billu_b0x.zip
Son düzenleme: