CVE-2022–22965 Kullanımı Nedir ? Anlatım

  • önizleme_resmi.png
  • Spring4Shell Nedir?

  • Mart 2022'nin sonlarında, Java 9 çalıştıran Spring uygulamalarında ciddi bir güvenlik açığı ortaya çıkarıldı . Java 9'da yapılan bir değişiklik nedeniyle sonuçlandı . Güvenlik açığı Spring4Shell olarak adlandırıldı ve bir CVE tanımlayıcısı CVE-2022–22965 olarak atandı .
  • Sorun, Java 9'dan itibaren Class nesnesinde bir yöntemin açığa çıkması nedeniyle meydana geldi. Yeni bir genel yöntemin Sınıf arayüzüne bu şekilde açıklanması, JVM'nin sınıf yükleyicisini dinamik olarak tetiklemek için yeni bir yol ekledi. Bu, etkilenen Spring uygulamalarında RCE gerçekleştirme olasılığını açar!
  • Bu güvenlik açığı için çok sayıda kullanıma hazır kullanıma hazır istismar mevcuttur ve bu güvenlik açığının ciddiyetini artırır.
  • Bu laboratuvar yazısında, etkilenen bir Tomcat sürümünün (JDK sürüm 9 kullanan), Python tabanlı basit bir komut dosyası dışında tümü ile uzak sunucuda uzaktan kod yürütülmesine nasıl yol açtığını öğreneceğiz.
  • Laboratuvar Ortamı

  • Bu laboratuvar ortamında, kullanıcı bir Kali GUI örneğine erişim elde edecek. Güvenlik açığı bulunan bir uygulama http://demo.ine.local üzerinde dağıtılır . Web uygulaması, Spring4Shell güvenlik açığına karşı savunmasız olan JDK sürüm 9'u kullanan Tomcat'i çalıştırıyor .
  • Misyon

  • Uzak sunucuda kod yürütme elde etmek ve bayrağı almak için Spring4Shell güvenlik açığından yararlanın!
  • Teknik Zorluk: Yeterli
  • Kaynak

  • Temel kurulum kodu ve tespit ve istismar betikleri aşağıdaki kaynaklardan alınmıştır:
  • Adım 1: Kali GUI örneğine erişmek için laboratuvar bağlantısını açın.
  • spring4shell_1.png
  • Adım 2: Sağlanan makinenin/etki alanının erişilebilir olup olmadığını kontrol edin.
  • ping -c3 demo.ine.local
  • spring4shell_2.png
  • Sağlanan makineye ulaşılabilir.
  • Adım 3: Sağlanan makinedeki açık bağlantı noktalarını kontrol edin.
  • nmap -sS -sV demo.ine.local
  • spring4shell_3.png
  • spring4shell_3_1.png
  • 80 numaralı bağlantı noktası açık. Bu bağlantı noktasında bir web sitesi sunulur (yukarıdaki resimde vurgulandığı gibi).
  • Adım 4: Sağlanan web sitesinde ilginç uç noktaları/sayfaları bulun.
  • Sağlanan web sitesinde ilginç sayfaları aramak için dirb'i kullanacağız :
  • spring4shell_4.png
  • dirb iki sayfa bulabildi:
  • Not: Bu adım o kadar alakalı değil, ancak size bir pentester metodolojisini göstermek için ekledik, yani hedef üzerinde keşif yapmak ve üzerine atlamadan ve ona karşı rastgele istismarlar çalıştırmadan önce değerli içgörüler elde etmek.
  • Adım 5: Belirlenen web sayfalarını keşfedin.
  • 80 numaralı bağlantı noktası üzerinden hizmet verilen bazı web siteleri olduğunu biliyoruz. Ayrıca dirb kullanan iki uç nokta daha keşfettik . Bakalım bu sayfalarda neler var.
  • Aşağıdaki URL'yi tarayıcıda açın:
  • spring4shell_5.png
  • Üzerinde bir web sayfası sunuluyor.
  • /login uç noktasını ziyaret edin :
  • spring4shell_5_1.png
  • Aynı web sayfası /login üzerinden sunuluyor .
  • /hata uç noktasını ziyaret edin :
  • spring4shell_5_2.png
  • Burada bir hata sayfası sunuluyor. Geçersiz bir girişten sonra gösterilmelidir.
  • 6. Adım: Bir arka uç hatası tetiklemek için bir uç noktayı ziyaret edin.
  • Aşağıdaki URL'yi ziyaret edin ( /%2f bitiş noktası):
  • spring4shell_6.png
  • Bir hatanın tetiklendiğine ve Apache Tomcat sunucusundan 400 — Kötü İstek sayfası aldığımıza dikkat edin .
  • Apache Tomcat'in sürümü hata sayfasında belirtilmiştir: Apache Tomcat/9.0.59
  • Adım 7: Apache Tomcat sürüm 9.0.59 tarafından kullanılan Java sürümünü belirleyin .
  • Bunun için aşağıdaki arama isteğini gönderebiliriz (Kali GUI örneğine internet erişimi olmadığı için laboratuvar tarayıcısının dışında):
  • Arama Sorgusu:
  • tomcat/9.0.59 java version
  • spring4shell_7.png
  • Yanıt, hedef sunucu tarafından Java sürüm 8 veya sonraki sürümlerin kullanılması gerektiğini belirtir.
  • Adım 8: Spring4Shell güvenlik açığının varlığını tespit edin.
  • Spring4Shell güvenlik açığı, JDK sürüm 9 ve daha yenisini kullanan dağıtımlar için geçerlidir.
  • Sağlanan hedef sunucu, JDK sürüm 9 veya daha yenisini çalıştırması koşuluyla savunmasız olabilir. Bunu test etmek için aşağıdaki Python betiğini kullanacağız:
  • Yukarıdaki betiği, Detect.py olarak kaydedin .
  • Komut dosyası için yardım mesajını kontrol edin:
  • python3 detect.py --help
  • spring4shell_8.png
  • Hedef URL'yi iletmek için — url işaretini kullanacağız  :
  • python3 detect.py --url http://demo.ine.local
  • İsimsiz.png
  • Algılama komut dosyası, hedef sunucu dağıtımının Spring4Shell'e karşı savunmasız olduğunu belirledi.
  • Adım 9: Spring4Shell güvenlik açığından yararlanın.
  • Artık güvenlik açığını tespit ettiğimize göre, aşağıdaki Python betiğini kullanarak bundan yararlanabiliriz:
  • Yukarıdaki komut dosyasını exploit.py olarak kaydedin .
  • Komut dosyası için yardım mesajını kontrol edin:
  • python3 exploit.py --help
  • Başlıksız (1).png
  • Hedef URL'yi iletmek için — url işaretini kullanacağız  :
  • python3 exploit.py --url http://demo.ine.local
  • Başlıksız (2).png
  • İstismar başarılı oldu ve hedef sunucuya bir JSP web shell yüklendi.
  • Adım 10: Hedef sunucuda işletim sistemi komutlarını çalıştırmak için yüklenen web shellden yararlanın.
  • Aşağıdaki URL'yi açın ( exploit.py betiği tarafından rapor edilir):
  • Not: Yukarıdaki URL, id komutunu çalıştırır . Başka bir komutu çalıştırmak için cmd parametresinde iletilen dizeyi değiştirin .
  • Başlıksız (3).png
  • id komutunun çıktısının döndürüldüğüne dikkat edin.
  • Hedef uygulama kök olarak çalışıyordu ve bu nedenle web kabuğu da shekk olarak çalışıyor (uid = 0)!
  • Hedef sunucu üzerinde numaralandırma yapabilir ve süreçleri inceleyebiliriz. cmd parametre değerini değiştirin ve aşağıdaki komutu gönderin:
  • ps aux
  • Başlıksız (4).png
  • Komut başarıyla yürütüldü!
  • Yeni satırlar web sayfasında işlenmediğinden çıktı iyi biçimlendirilmemiştir. Ancak sayfa kaynağını inceleyebiliriz ( CTRL+U tuşlarına basın ) ve döndürülen çıktıyı görebiliriz:
  • Başlıksız (5).png
  • Geçerli çalışma dizinini kontrol edin:
  • pwd
  • Başlıksız (6).png
  • Geçerli çalışma dizini /usr/local/tomcat/ şeklindedir .
  • Adım 11: Bayrağı alın.
  • Bayrağı bulmak için aşağıdaki komutu kullanın:
  • Emretmek:
  • find / -iname flag*
  • Başlıksız (7).png
  • Bayrak şu dosyada bulunur: /root/FLAG .
  • Bayrağı alın:
  • cat /root/FLAG
  • Başlıksız (8).png
  • BAYRAK: 085a0ee954aa4562916fd8416fd2f3f8
  • Bununla, Spring4Shell'e karşı savunmasız olan hedef sunucunun istismarını sonlandırıyoruz.

  • Referanslar

  • Çözüm

  • Bu makalede, bir saldırganın Spring4Shell'e açık bir uygulamadan hedef sunucuda kod yürütme elde etmek için nasıl yararlanabileceğini gördük. Uygulama, laboratuvarımızda olduğu gibi kök olarak çalışıyorsa, saldırgan, bir kalıcılık mekanizması eklemek veya yerel ağdaki diğer makineleri taramak gibi başka eylemler gerçekleştirmek için sunucuda yükseltilmiş ayrıcalıklar elde eder.
  • İstismarın yanı sıra tavşan deliğinden aşağı indik ve bu güvenlik açığının temel nedenini ve teknik ayrıntılarını - nasıl ortaya çıktığını ve bir uygulamanın Spring4Shell'den etkilenip etkilenmediğini nasıl belirleyeceğimizi - öğrendik.



Konu Türkçelenmiştir.Eksik bir hatada bilgilendiriseniz sevinirim
Kaynak : ine

 

BozBarbar

Üye
11 Tem 2023
61
21
  • önizleme_resmi.png
  • Spring4Shell Nedir?

  • Mart 2022'nin sonlarında, Java 9 çalıştıran Spring uygulamalarında ciddi bir güvenlik açığı ortaya çıkarıldı . Java 9'da yapılan bir değişiklik nedeniyle sonuçlandı . Güvenlik açığı Spring4Shell olarak adlandırıldı ve bir CVE tanımlayıcısı CVE-2022–22965 olarak atandı .
  • Sorun, Java 9'dan itibaren Class nesnesinde bir yöntemin açığa çıkması nedeniyle meydana geldi. Yeni bir genel yöntemin Sınıf arayüzüne bu şekilde açıklanması, JVM'nin sınıf yükleyicisini dinamik olarak tetiklemek için yeni bir yol ekledi. Bu, etkilenen Spring uygulamalarında RCE gerçekleştirme olasılığını açar!
  • Bu güvenlik açığı için çok sayıda kullanıma hazır kullanıma hazır istismar mevcuttur ve bu güvenlik açığının ciddiyetini artırır.
  • Bu laboratuvar yazısında, etkilenen bir Tomcat sürümünün (JDK sürüm 9 kullanan), Python tabanlı basit bir komut dosyası dışında tümü ile uzak sunucuda uzaktan kod yürütülmesine nasıl yol açtığını öğreneceğiz.
  • Laboratuvar Ortamı

  • Bu laboratuvar ortamında, kullanıcı bir Kali GUI örneğine erişim elde edecek. Güvenlik açığı bulunan bir uygulama http://demo.ine.local üzerinde dağıtılır . Web uygulaması, Spring4Shell güvenlik açığına karşı savunmasız olan JDK sürüm 9'u kullanan Tomcat'i çalıştırıyor .
  • Misyon

  • Uzak sunucuda kod yürütme elde etmek ve bayrağı almak için Spring4Shell güvenlik açığından yararlanın!
  • Teknik Zorluk: Yeterli
  • Kaynak

  • Temel kurulum kodu ve tespit ve istismar betikleri aşağıdaki kaynaklardan alınmıştır:
  • Adım 1: Kali GUI örneğine erişmek için laboratuvar bağlantısını açın.
  • spring4shell_1.png
  • Adım 2: Sağlanan makinenin/etki alanının erişilebilir olup olmadığını kontrol edin.
  • ping -c3 demo.ine.local
  • spring4shell_2.png
  • Sağlanan makineye ulaşılabilir.
  • Adım 3: Sağlanan makinedeki açık bağlantı noktalarını kontrol edin.
  • nmap -sS -sV demo.ine.local
  • spring4shell_3.png
  • spring4shell_3_1.png
  • 80 numaralı bağlantı noktası açık. Bu bağlantı noktasında bir web sitesi sunulur (yukarıdaki resimde vurgulandığı gibi).
  • Adım 4: Sağlanan web sitesinde ilginç uç noktaları/sayfaları bulun.
  • Sağlanan web sitesinde ilginç sayfaları aramak için dirb'i kullanacağız :
  • spring4shell_4.png
  • dirb iki sayfa bulabildi:
  • Not: Bu adım o kadar alakalı değil, ancak size bir pentester metodolojisini göstermek için ekledik, yani hedef üzerinde keşif yapmak ve üzerine atlamadan ve ona karşı rastgele istismarlar çalıştırmadan önce değerli içgörüler elde etmek.
  • Adım 5: Belirlenen web sayfalarını keşfedin.
  • 80 numaralı bağlantı noktası üzerinden hizmet verilen bazı web siteleri olduğunu biliyoruz. Ayrıca dirb kullanan iki uç nokta daha keşfettik . Bakalım bu sayfalarda neler var.
  • Aşağıdaki URL'yi tarayıcıda açın:
  • spring4shell_5.png
  • Üzerinde bir web sayfası sunuluyor.
  • /login uç noktasını ziyaret edin :
  • spring4shell_5_1.png
  • Aynı web sayfası /login üzerinden sunuluyor .
  • /hata uç noktasını ziyaret edin :
  • spring4shell_5_2.png
  • Burada bir hata sayfası sunuluyor. Geçersiz bir girişten sonra gösterilmelidir.
  • 6. Adım: Bir arka uç hatası tetiklemek için bir uç noktayı ziyaret edin.
  • Aşağıdaki URL'yi ziyaret edin ( /%2f bitiş noktası):
  • spring4shell_6.png
  • Bir hatanın tetiklendiğine ve Apache Tomcat sunucusundan 400 — Kötü İstek sayfası aldığımıza dikkat edin .
  • Apache Tomcat'in sürümü hata sayfasında belirtilmiştir: Apache Tomcat/9.0.59
  • Adım 7: Apache Tomcat sürüm 9.0.59 tarafından kullanılan Java sürümünü belirleyin .
  • Bunun için aşağıdaki arama isteğini gönderebiliriz (Kali GUI örneğine internet erişimi olmadığı için laboratuvar tarayıcısının dışında):
  • Arama Sorgusu:
  • tomcat/9.0.59 java version
  • spring4shell_7.png
  • Yanıt, hedef sunucu tarafından Java sürüm 8 veya sonraki sürümlerin kullanılması gerektiğini belirtir.
  • Adım 8: Spring4Shell güvenlik açığının varlığını tespit edin.
  • Spring4Shell güvenlik açığı, JDK sürüm 9 ve daha yenisini kullanan dağıtımlar için geçerlidir.
  • Sağlanan hedef sunucu, JDK sürüm 9 veya daha yenisini çalıştırması koşuluyla savunmasız olabilir. Bunu test etmek için aşağıdaki Python betiğini kullanacağız:
  • Yukarıdaki betiği, Detect.py olarak kaydedin .
  • Komut dosyası için yardım mesajını kontrol edin:
  • python3 detect.py --help
  • spring4shell_8.png
  • Hedef URL'yi iletmek için — url işaretini kullanacağız  :
  • python3 detect.py --url http://demo.ine.local
  • İsimsiz.png
  • Algılama komut dosyası, hedef sunucu dağıtımının Spring4Shell'e karşı savunmasız olduğunu belirledi.
  • Adım 9: Spring4Shell güvenlik açığından yararlanın.
  • Artık güvenlik açığını tespit ettiğimize göre, aşağıdaki Python betiğini kullanarak bundan yararlanabiliriz:
  • Yukarıdaki komut dosyasını exploit.py olarak kaydedin .
  • Komut dosyası için yardım mesajını kontrol edin:
  • python3 exploit.py --help
  • Başlıksız (1).png
  • Hedef URL'yi iletmek için — url işaretini kullanacağız  :
  • python3 exploit.py --url http://demo.ine.local
  • Başlıksız (2).png
  • İstismar başarılı oldu ve hedef sunucuya bir JSP web shell yüklendi.
  • Adım 10: Hedef sunucuda işletim sistemi komutlarını çalıştırmak için yüklenen web shellden yararlanın.
  • Aşağıdaki URL'yi açın ( exploit.py betiği tarafından rapor edilir):
  • Not: Yukarıdaki URL, id komutunu çalıştırır . Başka bir komutu çalıştırmak için cmd parametresinde iletilen dizeyi değiştirin .
  • Başlıksız (3).png
  • id komutunun çıktısının döndürüldüğüne dikkat edin.
  • Hedef uygulama kök olarak çalışıyordu ve bu nedenle web kabuğu da shekk olarak çalışıyor (uid = 0)!
  • Hedef sunucu üzerinde numaralandırma yapabilir ve süreçleri inceleyebiliriz. cmd parametre değerini değiştirin ve aşağıdaki komutu gönderin:
  • ps aux
  • Başlıksız (4).png
  • Komut başarıyla yürütüldü!
  • Yeni satırlar web sayfasında işlenmediğinden çıktı iyi biçimlendirilmemiştir. Ancak sayfa kaynağını inceleyebiliriz ( CTRL+U tuşlarına basın ) ve döndürülen çıktıyı görebiliriz:
  • Başlıksız (5).png
  • Geçerli çalışma dizinini kontrol edin:
  • pwd
  • Başlıksız (6).png
  • Geçerli çalışma dizini /usr/local/tomcat/ şeklindedir .
  • Adım 11: Bayrağı alın.
  • Bayrağı bulmak için aşağıdaki komutu kullanın:
  • Emretmek:
  • find / -iname flag*
  • Başlıksız (7).png
  • Bayrak şu dosyada bulunur: /root/FLAG .
  • Bayrağı alın:
  • cat /root/FLAG
  • Başlıksız (8).png
  • BAYRAK: 085a0ee954aa4562916fd8416fd2f3f8
  • Bununla, Spring4Shell'e karşı savunmasız olan hedef sunucunun istismarını sonlandırıyoruz.
  • Referanslar

  • Çözüm

  • Bu makalede, bir saldırganın Spring4Shell'e açık bir uygulamadan hedef sunucuda kod yürütme elde etmek için nasıl yararlanabileceğini gördük. Uygulama, laboratuvarımızda olduğu gibi kök olarak çalışıyorsa, saldırgan, bir kalıcılık mekanizması eklemek veya yerel ağdaki diğer makineleri taramak gibi başka eylemler gerçekleştirmek için sunucuda yükseltilmiş ayrıcalıklar elde eder.
  • İstismarın yanı sıra tavşan deliğinden aşağı indik ve bu güvenlik açığının temel nedenini ve teknik ayrıntılarını - nasıl ortaya çıktığını ve bir uygulamanın Spring4Shell'den etkilenip etkilenmediğini nasıl belirleyeceğimizi - öğrendik.



Konu Türkçelenmiştir.Eksik bir hatada bilgilendiriseniz sevinirim
Kaynak : ine

ellerinize sağlık
 

WHITERUBY

Uzman üye
20 Şub 2023
1,686
1,584
🔱
Konularınıza bi' göz gezdirdim, hepsi çok iyiler. Umarım bir gün hakettiğiniz yerlere gelirsiniz. 🍀
  • önizleme_resmi.png
  • Spring4Shell Nedir?

  • Mart 2022'nin sonlarında, Java 9 çalıştıran Spring uygulamalarında ciddi bir güvenlik açığı ortaya çıkarıldı . Java 9'da yapılan bir değişiklik nedeniyle sonuçlandı . Güvenlik açığı Spring4Shell olarak adlandırıldı ve bir CVE tanımlayıcısı CVE-2022–22965 olarak atandı .
  • Sorun, Java 9'dan itibaren Class nesnesinde bir yöntemin açığa çıkması nedeniyle meydana geldi. Yeni bir genel yöntemin Sınıf arayüzüne bu şekilde açıklanması, JVM'nin sınıf yükleyicisini dinamik olarak tetiklemek için yeni bir yol ekledi. Bu, etkilenen Spring uygulamalarında RCE gerçekleştirme olasılığını açar!
  • Bu güvenlik açığı için çok sayıda kullanıma hazır kullanıma hazır istismar mevcuttur ve bu güvenlik açığının ciddiyetini artırır.
  • Bu laboratuvar yazısında, etkilenen bir Tomcat sürümünün (JDK sürüm 9 kullanan), Python tabanlı basit bir komut dosyası dışında tümü ile uzak sunucuda uzaktan kod yürütülmesine nasıl yol açtığını öğreneceğiz.
  • Laboratuvar Ortamı

  • Bu laboratuvar ortamında, kullanıcı bir Kali GUI örneğine erişim elde edecek. Güvenlik açığı bulunan bir uygulama http://demo.ine.local üzerinde dağıtılır . Web uygulaması, Spring4Shell güvenlik açığına karşı savunmasız olan JDK sürüm 9'u kullanan Tomcat'i çalıştırıyor .
  • Misyon

  • Uzak sunucuda kod yürütme elde etmek ve bayrağı almak için Spring4Shell güvenlik açığından yararlanın!
  • Teknik Zorluk: Yeterli
  • Kaynak

  • Temel kurulum kodu ve tespit ve istismar betikleri aşağıdaki kaynaklardan alınmıştır:
  • Adım 1: Kali GUI örneğine erişmek için laboratuvar bağlantısını açın.
  • spring4shell_1.png
  • Adım 2: Sağlanan makinenin/etki alanının erişilebilir olup olmadığını kontrol edin.
  • ping -c3 demo.ine.local
  • spring4shell_2.png
  • Sağlanan makineye ulaşılabilir.
  • Adım 3: Sağlanan makinedeki açık bağlantı noktalarını kontrol edin.
  • nmap -sS -sV demo.ine.local
  • spring4shell_3.png
  • spring4shell_3_1.png
  • 80 numaralı bağlantı noktası açık. Bu bağlantı noktasında bir web sitesi sunulur (yukarıdaki resimde vurgulandığı gibi).
  • Adım 4: Sağlanan web sitesinde ilginç uç noktaları/sayfaları bulun.
  • Sağlanan web sitesinde ilginç sayfaları aramak için dirb'i kullanacağız :
  • spring4shell_4.png
  • dirb iki sayfa bulabildi:
  • Not: Bu adım o kadar alakalı değil, ancak size bir pentester metodolojisini göstermek için ekledik, yani hedef üzerinde keşif yapmak ve üzerine atlamadan ve ona karşı rastgele istismarlar çalıştırmadan önce değerli içgörüler elde etmek.
  • Adım 5: Belirlenen web sayfalarını keşfedin.
  • 80 numaralı bağlantı noktası üzerinden hizmet verilen bazı web siteleri olduğunu biliyoruz. Ayrıca dirb kullanan iki uç nokta daha keşfettik . Bakalım bu sayfalarda neler var.
  • Aşağıdaki URL'yi tarayıcıda açın:
  • spring4shell_5.png
  • Üzerinde bir web sayfası sunuluyor.
  • /login uç noktasını ziyaret edin :
  • spring4shell_5_1.png
  • Aynı web sayfası /login üzerinden sunuluyor .
  • /hata uç noktasını ziyaret edin :
  • spring4shell_5_2.png
  • Burada bir hata sayfası sunuluyor. Geçersiz bir girişten sonra gösterilmelidir.
  • 6. Adım: Bir arka uç hatası tetiklemek için bir uç noktayı ziyaret edin.
  • Aşağıdaki URL'yi ziyaret edin ( /%2f bitiş noktası):
  • spring4shell_6.png
  • Bir hatanın tetiklendiğine ve Apache Tomcat sunucusundan 400 — Kötü İstek sayfası aldığımıza dikkat edin .
  • Apache Tomcat'in sürümü hata sayfasında belirtilmiştir: Apache Tomcat/9.0.59
  • Adım 7: Apache Tomcat sürüm 9.0.59 tarafından kullanılan Java sürümünü belirleyin .
  • Bunun için aşağıdaki arama isteğini gönderebiliriz (Kali GUI örneğine internet erişimi olmadığı için laboratuvar tarayıcısının dışında):
  • Arama Sorgusu:
  • tomcat/9.0.59 java version
  • spring4shell_7.png
  • Yanıt, hedef sunucu tarafından Java sürüm 8 veya sonraki sürümlerin kullanılması gerektiğini belirtir.
  • Adım 8: Spring4Shell güvenlik açığının varlığını tespit edin.
  • Spring4Shell güvenlik açığı, JDK sürüm 9 ve daha yenisini kullanan dağıtımlar için geçerlidir.
  • Sağlanan hedef sunucu, JDK sürüm 9 veya daha yenisini çalıştırması koşuluyla savunmasız olabilir. Bunu test etmek için aşağıdaki Python betiğini kullanacağız:
  • Yukarıdaki betiği, Detect.py olarak kaydedin .
  • Komut dosyası için yardım mesajını kontrol edin:
  • python3 detect.py --help
  • spring4shell_8.png
  • Hedef URL'yi iletmek için — url işaretini kullanacağız  :
  • python3 detect.py --url http://demo.ine.local
  • İsimsiz.png
  • Algılama komut dosyası, hedef sunucu dağıtımının Spring4Shell'e karşı savunmasız olduğunu belirledi.
  • Adım 9: Spring4Shell güvenlik açığından yararlanın.
  • Artık güvenlik açığını tespit ettiğimize göre, aşağıdaki Python betiğini kullanarak bundan yararlanabiliriz:
  • Yukarıdaki komut dosyasını exploit.py olarak kaydedin .
  • Komut dosyası için yardım mesajını kontrol edin:
  • python3 exploit.py --help
  • Başlıksız (1).png
  • Hedef URL'yi iletmek için — url işaretini kullanacağız  :
  • python3 exploit.py --url http://demo.ine.local
  • Başlıksız (2).png
  • İstismar başarılı oldu ve hedef sunucuya bir JSP web shell yüklendi.
  • Adım 10: Hedef sunucuda işletim sistemi komutlarını çalıştırmak için yüklenen web shellden yararlanın.
  • Aşağıdaki URL'yi açın ( exploit.py betiği tarafından rapor edilir):
  • Not: Yukarıdaki URL, id komutunu çalıştırır . Başka bir komutu çalıştırmak için cmd parametresinde iletilen dizeyi değiştirin .
  • Başlıksız (3).png
  • id komutunun çıktısının döndürüldüğüne dikkat edin.
  • Hedef uygulama kök olarak çalışıyordu ve bu nedenle web kabuğu da shekk olarak çalışıyor (uid = 0)!
  • Hedef sunucu üzerinde numaralandırma yapabilir ve süreçleri inceleyebiliriz. cmd parametre değerini değiştirin ve aşağıdaki komutu gönderin:
  • ps aux
  • Başlıksız (4).png
  • Komut başarıyla yürütüldü!
  • Yeni satırlar web sayfasında işlenmediğinden çıktı iyi biçimlendirilmemiştir. Ancak sayfa kaynağını inceleyebiliriz ( CTRL+U tuşlarına basın ) ve döndürülen çıktıyı görebiliriz:
  • Başlıksız (5).png
  • Geçerli çalışma dizinini kontrol edin:
  • pwd
  • Başlıksız (6).png
  • Geçerli çalışma dizini /usr/local/tomcat/ şeklindedir .
  • Adım 11: Bayrağı alın.
  • Bayrağı bulmak için aşağıdaki komutu kullanın:
  • Emretmek:
  • find / -iname flag*
  • Başlıksız (7).png
  • Bayrak şu dosyada bulunur: /root/FLAG .
  • Bayrağı alın:
  • cat /root/FLAG
  • Başlıksız (8).png
  • BAYRAK: 085a0ee954aa4562916fd8416fd2f3f8
  • Bununla, Spring4Shell'e karşı savunmasız olan hedef sunucunun istismarını sonlandırıyoruz.
  • Referanslar

  • Çözüm

  • Bu makalede, bir saldırganın Spring4Shell'e açık bir uygulamadan hedef sunucuda kod yürütme elde etmek için nasıl yararlanabileceğini gördük. Uygulama, laboratuvarımızda olduğu gibi kök olarak çalışıyorsa, saldırgan, bir kalıcılık mekanizması eklemek veya yerel ağdaki diğer makineleri taramak gibi başka eylemler gerçekleştirmek için sunucuda yükseltilmiş ayrıcalıklar elde eder.
  • İstismarın yanı sıra tavşan deliğinden aşağı indik ve bu güvenlik açığının temel nedenini ve teknik ayrıntılarını - nasıl ortaya çıktığını ve bir uygulamanın Spring4Shell'den etkilenip etkilenmediğini nasıl belirleyeceğimizi - öğrendik.



Konu Türkçelenmiştir.Eksik bir hatada bilgilendiriseniz sevinirim
Kaynak : ine

 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.