Investigación de Vulnerabilidad de Deserialización en Apache Dubbo
Este repositorio contiene materiales de investigación, código de prueba de concepto y herramientas de explotación relacionadas con vulnerabilidades de deserialización en Apache Dubbo, centrándose principalmente en CVE-2020-1948.
Estructura del Repositorio
Directorios
Hessian-Deserialize-RCE-master: Técnicas de investigación y explotación para vulnerabilidades de deserialización Hessian en Dubbo
JNDI-Injection-Exploit-master: Marco de explotación de inyección JNDI para atacar servicios Dubbo
dubbo-dubbo-2.7.5: Código fuente de Apache Dubbo 2.7.5 para análisis de vulnerabilidades
dubbo-exp-master: Marco de explotación avanzado para vulnerabilidades de Dubbo
dubbo-samples-master: Aplicaciones de muestra de Dubbo para pruebas y demostración
marshalsec-master: Herramientas para pruebas de vulnerabilidades de marshalling/unmarshalling
Archivos
dubboExp.py: Script de explotación basado en Python para CVE-2020-1948
dubboPoc.py: Script de prueba de concepto para verificar la existencia de la vulnerabilidad
payload.ser: Carga útil Java serializada para explotación
ysoserial.jar: Herramienta de generación de cargas útiles de deserialización Java
Resumen de la Vulnerabilidad
Las versiones de Apache Dubbo anteriores a 2.7.8, 2.6.9 y 2.5.10 son vulnerables a un ataque de ejecución remota de código (CVE-2020-1948) debido a una deserialización insegura. La vulnerabilidad afecta al componente Dubbo Provider, que utiliza serialización nativa de Java sin una validación adecuada.
Detalles Técnicos
Esta vulnerabilidad puede ser explotada a través de múltiples vectores:
Deserialización Hessian: Explotando la implementación del protocolo de serialización Hessian
Inyección JNDI: Aprovechando técnicas de inyección JNDI para lograr ejecución remota de código
Serialización Java: Usando ataques de deserialización Java tradicionales con cadenas de gadgets
Uso
Configuración del Entorno Vulnerable
root@kitploit:~
# Clone and build a vulnerable Dubbo version
cd dubbo-dubbo-2.7.5
mvn clean package
Verificación de Vulnerabilidad
root@kitploit:~
# Run the proof of concept
python dubboPoc.py -t <target_ip> -p <target_port>
Explotación
root@kitploit:~
# Run the exploit
python dubboExp.py -t <target_ip> -p <target_port> -c "command_to_execute"
Generación de Carga Útil Personalizada
Puede usar ysoserial.jar para generar cargas útiles personalizadas:
Este repositorio es solo para fines de investigación de seguridad y educativos. El código y las herramientas proporcionados solo deben usarse contra sistemas para los que tenga permiso de prueba. Cualquier uso indebido de esta información no es responsabilidad del propietario del repositorio.