Automatizando la Explotación de Apache Struts2

A principios del mes de Marzo se publicó un fallo de Seguridad en Apache Struts2 (CVE-2017-5638), el cual afecta a millones de Servidores Web (http://www.securityfocus.com/bid/96729/info). Esta vulnerabilidad permite la ejecución remota de código y lógicamente representa un riesgo importante para los servidores que utilizan esta tecnología.

Actualmente, existen diversos servidores web que aún se encuentran vulnerables. Basta con utilizar el dork:

filetype:action

El cual retorna unos 30 millones de resultados a través de Google. Para explotar el fallo, existe un exploit público el cual se puede obtener a través del siguiente repositorio:

https://github.com/samuelproject/ApacheStruts2/blob/master/CVE-2017-5638/CVE-2017-5638.py

La utilización de la herramienta es sencilla, la podemos utilizar de la siguiente manera:

./CVE-2017-5638.py

El script originalmente no lo he desarrollado yo, sin embargo, lo he modificado para manera que la respuesta de la petición no retorne todo el response HTML del sitio web, si no que solo una parte de éste. Esto es útil, ya que a veces sucede que al retornar el response HTML completo del sitio web, se obtiene mucha información y de esta manera es  engorroso detectar si el comando enviado fue ejecutado correctamente.

Un ejemplo de la explotación de este fallo es el siguiente

ifconfig_exploit

Como es posible observar, a través de la vulnerabilidad se logró ejecutar un comando arbitrario en el servidor web. Cabe mencionar que la explotación se puede realizar con la estructura http://sitiovulnerable.com/ o simplemente colocando la URL completa http://sitiovulnerable.com/index.action en caso de que no funcione la estructura anterior. Sin embargo, tener que probar sitios de uno a uno resulta un poco tedioso, por esta razón he desarrollado una herramienta simple, la cual permite ejecutar el exploit con múltiples URLs.

Se debe generar una lista con sitios web (subdominios,etc), esto se puede con la herramienta Sublister. Posteriormente se utilizaremos la herramienta ApacheStruts.py, la cual desarrollé para poder automatizar este escaneo. La herramienta se puede descargar a través del repositorio:

https://github.com/samuelproject/ApacheStruts2

La utilización es sencilla:

./ApacheStruts.py  -l    -c

De esta manera el script comenzará a realizar pruebas contra la lista de URLS definidas.

Resultado:

pwned.jpg

Como es posible observar, el último sitio web es vulnerable. De esta manera se logró automatizar el escaneo hacia diversos sitios web almacenados en un archivo.

Se recomienda utilizar la herramienta con precaución y verificar si algún servicio de tu empresa se ve afectado por esta vulnerabilidad.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s