Artículo · Pentesting a Aplicaciones Web

Explotación de vulnerabilidades de código en Joomla(CMS)

Samuel EstebanSamuel Esteban 4 min de lectura

Definición

Joomla es uno de los gestores de contenidos más utilizados en el mundo (después de WordPress). Los CMS ayudan a los administradores de sitios webs a controlar sus sitios web de una manera mucho más estructurada, sin embargo, siempre son estudiados por investigadores de Seguridad, los cuales constantemente develan vulnerabilidades que puede afectar el correcto funcionamiento del servicio.

En esta oportunidad nos enfocaremos en una vulnerabilidad de Joomla la cual fue publicada el 12 de Diciembre del 2015 por unos investigadores de Seguridad, dicha vulnerabilidad  se encuentra en el filtrado inadecuado de la información del "user agent" al guardar los valores de la sesión en la base de datos, lo que podría permitir la ejecución de código arbitrario. Se le ha asignado el CVE-2015-8562. Es vulnerabilidad afecta a las versiones 1.5 hasta la 3.4.5 y que utilicen  PHP igual o inferior a la versión 5.4.45. (si no se cumplen estas dos condiciones, no será explotable).

A continuación realizaremos una Prueba de Concepto sobre esta vulnerabilidad.

Tenemos el siguiente escenario:

 

Ejec. Remota de Código Joomla – WebSite Aparentemente Vulnerable

Para saber si es un sitio con Joomla, podremos verificar si existe el recurso administrator, que es el recurso del panel de administración del gestor de contenidos.

 

Ejec. Remota de Código Joomla – Corriendo Joomla

Como es posible observar, el recurso administrator existe, por lo tanto sabemos que se trata de un Joomla. A continuación debemos detectar la versión que está corriendo, existen varias formas de detectar versiones de Joomla, es importante saber que hay ciertas versiones que utilizan un mecanismo distinto para poder obtener la versión del CMS, a continuación dejo enlace donde puede investigar cómo detectar versiones de Joomla.

How-to-check-the-version-of-joomla

Al utilizar todas las opciones que aparecen en el enlace anterior, la que nos funcionó fue la siguiente:

http://192.168.206.131/brownsite/language/en-GB/en-GB.xml

Ejec. Remota de Código Joomla – Versión 3.4.3

Ya se sabe que se está utilizando la versión 3.4.3 de Joomla. Ahora debemos verificar si la versión de PHP que se está utilizando es igual o inferior a la 5.4.5. Utilizaremos el comando curl para realizar una petición por GET y de esta manera detectar a través de las cabeceras la versión de PHP.

 

curl –v –X GET http://192.168.206.131

Ejec. Remota de Código Joomla – PHP versión 5.4.4

Posteriormente, para intentar explotar la vulnerabilidad, utilizaremos el exploit joomla_http_header_rce  el cual se encuentra disponible en Metasploit (se debe tener Metasploit actualizado para poder obtener este exploit).

use exploit/multi/http/joomla_http_header_rce

Al abrir msfconsole  en nuestra máquina atacante, ejecutamos el comando anterior, posteriormente seteamos parámetros requeridos por el exploit.

 

Ejec. Remota de Código Joomla – Parámetros necesarios para exploit

En primer lugar debemos agregar el RHOST, que corresponde a la dirección IP (en este caso) del sitio web de la víctima, posteriormente agregamos el TARGETURI que corresponde a la ruta del sitio web donde se encuentra instalado Joomla, finalmente utilizamos el PAYLOAD que nos permitirá explotar la vulnerabilidad. La diferencia entre reverse_tcp y bind_tcp, es que el primero hace referencia a que la víctima se conecta hacía el atacante y de esta manera se obtiene una Shell, mientras que bind_tcp, hace que las conexiones se hagan desde el equipo atacante hacia la víctima. (Esto es importante aclararlo, ya que muchas veces utilizamos más la conexión reverse_tcp). Finalmente lanzamos el exploit y verificamos si es posible obtener la sesión de Meterpreter.

 

Ejec. Remota de Código Joomla – Sesión de Meterpreter

Como es posible apreciar, se logró obtener una sesión Meterpreter de manera exitosa, al obtener esta sesión, se pueden hacer muchas cosas como por ejemplo leer archivos del equipo víctima, subir archivos, modificar el index, ejecutar comandos,  etc.

 

¿Quieres aprender estas técnicas en profundidad?

Continúa tu ruta con Web Application Testing.

Samuel Esteban

Escrito por

Samuel Esteban

Senior Pentester

Actualmente me desempeño como Pentester...

Sigue leyendo

Sqlmap - ejemplo con metasploitable2
Pentesting a Aplicaciones Web

Sqlmap - ejemplo con metasploitable2

MMartin Frias

Hola, soy Martin Frias y en esta vez hablaré un poco sobre Sqlmap, Sqlmap es una herramienta que permite automatizar las inyecciones sql. La inyección sql es una vulnerabilidad que nos permite la inyección de código sql para que pueda ser ejecutado e interpretado y así obtener información de la base de datos, información a la que normalmente no deberíamos tener acceso, yo recomiendo fuertemente aprender lenguaje sql, para poder saber hacer inyecciones slq de forma manual, de manera que  si vas a usar herramientas automatizadas como sqlmap, por ejemplo, que sea por ahorrar algo de tiempo, porque siempre es mejor saber qué está haciendo un herramienta por detrás, no solo escribir un comando y no saber exactamente qué acabamos de hacer.

Portainer es una herramienta web open-source: Gestor Web para Docker
Pentesting a Aplicaciones Web

Portainer es una herramienta web open-source: Gestor Web para Docker

Javier Candia

En los últimos años, las tecnologias de irutalizacioon de servicios y plataformas ha tomado poder en el mundo de las implementaciones. Uno de ellos es Docker, el cuál nos permite automatizar el despliegue de aplicaciones dentro de contenedores de software. A grandes ragos, Docker permite meter en un contenedor (un entorno cerrado) aquellas cosas que mi aplicación necesita para ser ejecutada (java, Maven, tomcat…) y la propia aplicación. Ese contenedor puede llevarse a cualquier máquina que tenga instalado Docker y ejecutar la aplicación independientemente de qué sistema operativo es, de si son compatibles o no.

Evil Limiter
Pentesting a Aplicaciones Web

Evil Limiter

Erik Garcia

Si se encuentra con un compañero de cuarto que acapara el ancho de banda de datos limitado con videojuegos o descubre que un vecino se ha invitado a su red Wi-Fi, puede recuperar fácilmente el control de su acceso a Internet. Evil Limiter hace esto al permitirle controlar la velocidad de bits de cualquier dispositivo en la misma red que usted, lo que le permite reducir o incluso detener la velocidad de transferencia de datos por completo.