
Plugin todo-en-uno para Burp Suite para la detección y explotación de vulnerabilidades de deserialización de Java
Java Deserialization Scanner es un plugin de Burp Suite orientado a detectar y explotar vulnerabilidades de deserialización en Java. Fue escrito por Federico Dotta, Analista Principal de Seguridad en HN Security.
El plugin está compuesto por tres componentes diferentes:
Un breve artículo que contiene un mini tutorial sobre cómo usar los diversos componentes del plugin se puede encontrar en la siguiente URL: https://web.archive.org/web/20201130104913/https://techblog.mediaservice.net/2017/05/reliable-discovery-and-exploitation-of-java-deserialization-vulnerabilities/
Java Deserialization Scanner utiliza payloads personalizados generados con una versión modificada de "ysoserial", herramienta creada por frohoff y gebl, para detectar vulnerabilidades de deserialización de Java. La herramienta original (https://github.com/frohoff/ysoserial) genera payloads para la ejecución de comandos en el sistema, utilizando la función Runtime.exec. Sin embargo, normalmente no es posible ver la salida del comando y, en consecuencia, no es sencillo escribir un escáner basado en este tipo de función. Por esta razón, se utiliza una versión modificada de ysoserial para generar diferentes tipos de payloads, útiles para la detección del problema en lugar de la explotación:
Actualmente, los chequeos pasivos de Java Deserialization Scanner reportan la presencia de objetos Java serializados en las peticiones HTTP y los chequeos activos escanean activamente la presencia de funciones de deserialización débiles junto con la presencia de las siguientes librerías débiles:
Además, se ha introducido el payload URLDNS para detectar activamente la deserialización de Java sin ninguna librería vulnerable. Si el plugin solo encuentra el problema de URLDNS (y ninguna librería vulnerable), el atacante probablemente pueda ejecutar ataques de DoS, pero para lograr la Ejecución Remota de Código se necesita más esfuerzo. Consulte este enlace para más detalles.
Todos los componentes del plugin soportan las siguientes codificaciones:
En la carpeta de pruebas hay algunas aplicaciones de servidor Java simples que se pueden utilizar para probar el plugin. Cada aplicación emplea una librería Java vulnerable diferente.
El plugin ofrece una pestaña dedicada para lanzar la detección con los payloads de sueño (sleep) y DNS en puntos de inserción personalizados, con el fin de verificar las vulnerabilidades de deserialización de Java en situaciones particulares en las que puntos de entrada extraños no permiten la detección con el escáner. Los resultados del probador manual se pueden insertar entre los resultados del escáner de Burp Suite.
El probador manual ofrece un método de detección adicional: detección por CPU. El método de detección por CPU se basa en el trabajo SerialDOS de Wouter Coekaerts (https://gist.github.com/coekie/a27cc406fc9f3dc7a70d) y es capaz de detectar problemas de deserialización sin la presencia de ninguna librería vulnerable, utilizando un objeto que emplea muchos ciclos de CPU para la tarea de deserialización y comprobando el tiempo de la respuesta. El método de detección por CPU no está incluido por defecto en los chequeos del escaneo activo, porque debe utilizarse con precaución: enviar una gran cantidad de payloads SerialDOS "ligeros" puede causar problemas en sistemas antiguos o muy cargados.
Después de que se haya encontrado una vulnerabilidad de deserialización de Java, es posible explotar activamente el problema con la pestaña dedicada "Exploiting". La pestaña "Exploiting" ofrece una interfaz cómoda para explotar vulnerabilidades de deserialización. Esta pestaña utiliza la herramienta ysoserial para generar vectores de explotación e incluye el payload generado en una petición HTTP. ysoserial toma como argumento una librería vulnerable y un comando, y genera un objeto serializado en forma binaria que puede enviarse a la aplicación vulnerable para ejecutar el comando en el sistema objetivo (obviamente si la aplicación objetivo es vulnerable). La pestaña Exploiting soporta los mismos formatos de codificación que las secciones de detección del plugin.

Para mejorar esta extensión, por favor reporte cualquier problema encontrado en el plugin. Además, si desea, puede informarme de cualquier librería Java divulgada que sea útil para la explotación de esta debilidad y, si tengo tiempo, añadiré un chequeo activo para ella en mi plugin.
Este software ha sido creado puramente con fines de investigación académica y para el desarrollo de técnicas defensivas efectivas, y no está destinado a ser utilizado para atacar sistemas excepto donde se autorice explícitamente. Los mantenedores del proyecto no son responsables del mal uso del software. Úselo con responsabilidad.
Copyright (c) 2020 Java Deserialization Scanner
Se otorga por la presente permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluidos, sin limitación, los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir a las personas a quienes se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE CUALQUIER RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, O EN CONEXIÓN CON, EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.