Pentesting JDWP - Java Debug Wire Protocol
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
从黑客的角度审视您的网络应用、网络和云
发现并报告具有实际商业影响的关键可利用漏洞。 使用我们 20 多个自定义工具来映射攻击面,查找允许您提升权限的安全问题,并使用自动化利用收集重要证据,将您的辛勤工作转化为有说服力的报告。
JDWP 利用依赖于 协议缺乏身份验证和加密。它通常位于 8000 端口,但其他端口也是可能的。初始连接是通过向目标端口发送 "JDWP-Handshake" 来建立的。如果 JDWP 服务处于活动状态,它会以相同的字符串响应,确认其存在。此握手作为一种指纹识别方法,用于识别网络上的 JDWP 服务。
在进程识别方面,在 Java 进程中搜索字符串 "jdwk" 可以指示一个活动的 JDWP 会话。
首选工具是 jdwp-shellifier。您可以使用不同的参数:
我发现使用 --break-on 'java.lang.String.indexOf'
使得利用更加 稳定。如果你有机会将后门上传到主机并执行它,而不是执行命令,利用将会更加稳定。
这是 https://ioactive.com/hacking-java-debug-wire-protocol-or-how/ 的总结。请查看以获取更多细节。
JDWP 概述:
这是一种基于数据包的网络二进制协议,主要是同步的。
缺乏身份验证和加密,使其在暴露于恶意网络时容易受到攻击。
JDWP 握手:
使用简单的握手过程来启动通信。调试器(客户端)和被调试程序(服务器)之间交换一个14个字符的ASCII字符串“JDWP-Handshake”。
JDWP 通信:
消息具有简单的结构,包含长度、ID、标志和命令集等字段。
命令集值范围从 0x40 到 0x80,表示不同的操作和事件。
利用:
JDWP 允许加载和调用任意类和字节码,带来安全风险。
文章详细描述了一个五步的利用过程,包括获取 Java 运行时引用、设置断点和调用方法。
现实生活中的利用:
尽管可能有防火墙保护,JDWP 服务在现实场景中仍然可被发现和利用,正如在 ShodanHQ 和 GitHub 上的搜索所示。
利用脚本已在各种 JDK 版本上测试,并且是平台无关的,提供可靠的远程代码执行(RCE)。
安全影响:
互联网上开放的 JDWP 服务的存在强调了定期进行安全审查、在生产环境中禁用调试功能以及适当的防火墙配置的必要性。
http://www.secdev.org/projects/scapy(不再活跃)
http://www.hsc-news.com/archives/2013/000109.html (不再活跃)
https://github.com/search?q=-Xdebug+-Xrunjdwp&type=Code&ref=searchresults
获取黑客对您的网络应用程序、网络和云的看法
查找并报告具有实际商业影响的关键可利用漏洞。 使用我们20多个自定义工具来映射攻击面,发现让您提升权限的安全问题,并使用自动化利用收集重要证据,将您的辛勤工作转化为有说服力的报告。
学习和实践 AWS 黑客攻击:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客攻击:HackTricks 培训 GCP 红队专家 (GRTE)