9 KiB
Тестування на проникнення JDWP - Протокол відлагодження Java
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!
Інші способи підтримки HackTricks:
- Якщо ви хочете побачити рекламу вашої компанії на HackTricks або завантажити HackTricks у форматі PDF, перевірте ПЛАНИ ПІДПИСКИ!
- Отримайте офіційний PEASS & HackTricks мерч
- Відкрийте для себе Сім'ю PEASS, нашу колекцію ексклюзивних NFT
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами на Twitter 🐦 @carlospolopm.
- Поділіться своїми хакерськими трюками, надсилайте PR до HackTricks та HackTricks Cloud репозиторіїв GitHub.
Експлуатація
Експлуатація JDWP ґрунтується на відсутності аутентифікації та шифрування в протоколі. Зазвичай він знаходиться на порту 8000, але можливі інші порти. Початкове підключення відбувається шляхом відправлення "JDWP-Handshake" на цільовий порт. Якщо служба JDWP активна, вона відповідає тим самим рядком, підтверджуючи свою присутність. Цей рукостиск діє як метод відбору для ідентифікації служб 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:
- Для ініціювання комунікації використовується простий процес рукостискання. Між відлагоджувачем (клієнтом) та відлагоджуваним (сервером) обмінюється 14-символьний ASCII-рядок "JDWP-Handshake".
- Комунікація JDWP:
- Повідомлення мають просту структуру з полями, такими як Довжина, Ідентифікатор, Прапор та НабірКоманд.
- Значення НаборуКоманд коливаються від 0x40 до 0x80, що представляють різні дії та події.
- Експлуатація:
- JDWP дозволяє завантажувати та викликати довільні класи та байткод, що створює ризики безпеки.
- Стаття деталізує процес експлуатації у п'яти кроках, що включає отримання посилань на 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
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!
Інші способи підтримки HackTricks:
- Якщо ви хочете побачити вашу компанію рекламовану в HackTricks або завантажити HackTricks у PDF, перевірте ПЛАНИ ПІДПИСКИ!
- Отримайте офіційний PEASS & HackTricks мерч
- Дізнайтеся про Сім'ю PEASS, нашу колекцію ексклюзивних NFT
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @carlospolopm.
- Поділіться своїми хакерськими трюками, надсилайте PR до HackTricks та HackTricks Cloud github репозиторіїв.