Joomla Üzerindeki Uygulama Zafiyeti İstismarı ile FatalShell PHP Kodunun Uygulamaya Gömülerek İşletim Sistemine Erişim Sağlanması

0
278
views
Web uygulaması sızma testleri sırasında girdi kontrollerinin ve işlenmesinin uygun şekilde gerçekleştirilmediği durumlarda zafiyet ortaya çıkabilir. Bu yazıda yönetici hakları ile erişim sağlanan Kevgir:1 sanal makinesinde bulunan Joomla arayüzündeki zafiyet, bir PHP kodunun hedefe yüklenmesi (webshell backdoor) yolu ile istismar edilecek ve kontrol eksikliği dolayısı ile işletim sistemine erişim sağlanacaktır.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

Yazıda kullanılan Kevgir:1 sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/kevgir-1,137/

 

Joomla uygulamasına yönetici olarak erişim sağlandıktan sonra işletim sistemine kod atmak için şablon yönetimindeki (“Extensions > Template Manager“) zafiyet istismar edilecektir.

 

Zafiyet istismarı için şablon seçilir.

 

Şablonun HTML kodu düzenlenir.

 

HTML kodu varsayılan olarak aşağıdaki gibidir. Bu kod silinerek yerine yeni bir kod eklenecektir.

 

1) İnternetten İndirilen FatalShell Adlı WebShell Kodunun Kullanılması

Eklenecek olan yeni PHP kodu ile hedef sistemde kod çalıştırılabilecek veya dizinlerindeki dosyalara erişim sağlanabielcektir. Bu amaçla kullanılabilecek örnek FatalShell kodu Github sayfasından indirilebilir.

https://github.com/tdifg/WebShell/blob/master/Php/fatal.php

 

Bu kod, şablon kodunun bulunduğu alana yapıştırılır. Sonrasında da şablon kaydedilir.

 

Şablonun başarılı bir şekilde kaydedildiği görülür.

 

Sayfa çağırıldığında (veya önizleme yapıldığında) internetten indirilen zararlı PHP kodu çalışacaktır. Böylece dizinler arasında mevcut yetkiler dahilinde dolaşılabilir veya işlem yapılabilir.

 

Benzer olarak komut satırı elde edilebilir veya indirilen PHP kodunun sağladığı diğer işlemler gerçekleştirilebilir.

 

2) Basit Bir PHP Kodunun Kullanılması

Hedefe aşağıdaki gibi basit bir PHP kodu eklenerek komut satırı elde edilmesi de sağlanabilir.

 

Böylece sayfa çağırıldığında komut satırında web servisine ait kullanıcı yetkileri ile komut çalıştırılabilir.

http://192.168.30.139:8081/templates/beez/index.php?cmd=cat%20/etc/passwd

 

Daha basit bir yol olarak da aşağıdaki PHP kodu da kullanılabilirdi.

 

Kaynak:

KevGir: A simulation of real world exploits

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.