29 ago. 2018

Otra vulnerabilidad y otro exploit para Apache Struts2

Hace unos días se hizo pública otra vulnerabilidad en Apache Struts2, un popular framework para aplicaciones web en Java.

Dicha vulnerabilidad, CVE-2018-11776, permite a un atacante la ejecución remota de comandos. La versiones afectadas son Apache Struts 2.3 a 2.3.34 y 2.5 a 2.5.16.

Para poder aprovechar dicha vulnerabilidad, una acción (struts action) se debe definir sin namespace o usar algún carácter comodín, como por ejemplo /*. En estos casos, Struts usa OGNL (un lenguaje de expresiones de código abierto para Java) para determinar la acción a ejecutar basada en el namespace dado por el usuario, permitiendo así la posible ejecución de código remoto.

Existen pruebas de concepto pública para la explotación de esta vulnerabilidad, como por ejemplo en este repositorio. En el mismo, existen un par de scripts en Python, uno para comprobar si una aplicación web es vulnerable y el otro acepta comandos como parámetros que son ejecutados en el servidor donde corre nuestra aplicación. En dicho repositorio, hay algunas instrucciones para levantar un contenedor Docker con una aplicación usando Apache Struts2, más una serie de cambios en la configuración.

Para que el ataque se haga efectivo, se tienen que cumplir dos condiciones:
  1. El parámetro 'alwaysSelectFullNamespace' debe estar a 'true' en la configuración de Struts.
  2. El fichero de configuración de Struts contiene una etiqueta '<action ...>' que no especifica ningún espacio de nombres.
Cyberhades ha creado un contenedor que ya contiene dichos cambios de configuración. Si deseas probar por tí mismo como explotar esta vulnerabilidad, sólo tienes que ejecutar el siguiente comando (asumiendo que tienes Docker instalado):
docker container run -it --rm -p 8080:8080 tuxotron/cve-2018-11776
La forma más sencilla para evitar las vulnerabilidades es actualizar a Apache Struts versiones 2.3.35 o 2.5.17; disponibles desde: http://struts.apache.org/download.html#struts-ga

Fuente: Cyberhades

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info
Si vas a dejar una consulta, procura tener habilitado tu perfil en Blogger o deja una forma de contacto.

Gracias por comentar!