Joomla hackeado vía Zero-Day SP Page Builder 6.6.1: 

Detección, limpieza y prevención (Junio 2026)

En este artículo documentamos el proceso completo de detección y limpieza de esta infección en sitios Joomla con SP Page Builder 6.6.1 o versiones posteriores: cómo identificar los webshells, eliminar los backdoors persistentes en .htaccess y .user.ini, revocar el acceso SSH no autorizado, limpiar los crontabs maliciosos y cerrar definitivamente la vulnerabilidad actualizando a SP Page Builder 6.6.2.

  • Síntoma inicial: Error 500 en sitios Joomla al tener el `.htaccess` activo. Al removerlo el sitio carga bien, pero hay más por hacer.
  • Puerta de entrada
    Zero-day en SP Page Builder ≤ 6.6.1 — endpoint `asset.uploadCustomIcon` sin autenticación que permitía subir archivos PHP al servidor sin ningún login. Solución: actualizar a 6.6.2 inmediatamente.

Qué dejó el atacante

  • Webshell con ejecución de comandos remotos vía `?cmd=`
  • File manager PHP completo con acceso a todo el servidor
  • `auto_prepend_file` inyectado en `.htaccess` y `.user.ini` apuntando al webshell
  • Usuario Superadmin falso en Joomla con email `@secure.local`
  • Llave SSH instalada en `/home/usuario/authorized_keys` o también en `.ssh/authorized_keys`
  • Crontab para restaurarse cada 5 minutos
  • Copias ocultas del malware en `/images/`, `/media/`, `/tmp/` con nombres aleatorios precedidos de punto

Proceso de limpieza, en este orden:

1. Identificar que efectivamente la web tiene esta infección
Revisar todos los `.htaccess` buscando en este archivo `auto_prepend_file`
Revisar todos los `.user.ini` buscando en este archivo `auto_prepend_file`
Abrir el archivo referenciado, si tiene `shell_exec`, `exec`, `system` es un webshell

2. Detener la persistencia primero
Verificar y limpiar Cron Jobs en cPanel
Buscar y eliminar `/home/usuario/authorized_keys` si existe o en .ssh/authorized_keys
Buscar archivos PHP ocultos en `/images/`, `/media/`, `/tmp/` (En nuestro caso utilizamos FIleZilla para detectar esos archivos)

3. Limpiar los archivos maliciosos
Eliminar todos los webshells y sus carpetas
Limpiar la línea `auto_prepend_file` de `.htaccess` y `.user.ini`
Revisar `templates/***/index.php` — eliminar `@include_once` malicioso al inicio
Revisar `configuration.php` — eliminar `@include_once` malicioso al inicio

4. Limpiar Joomla
Eliminar usuarios Superadmin con email `@secure.local`
Verificar extensiones instaladas en BD buscando componentes no reconocidos
Revisar contenido modificado recientemente

5. Cerrar accesos
Cambiar contraseña de cPanel
Cambiar contraseñas de todas las bases de datos o de los usuarios de las bases de datos
Actualizar `configuration.php` con las nuevas credenciales de acceso y usuarios a bases de datos
Cambiar contraseñas admin de Joomla
Si le es posible activar 2FA en el admin de Joomla

6. Cerrar la vulnerabilidad
Actualizar SP Page Builder a 6.6.2
Verificar en BD: `SELECT element, JSON_UNQUOTE(JSON_EXTRACT(manifest_cache, '$.version')) as version FROM prefijo_extensions WHERE element = 'com_sppagebuilder';`

Señales de que el malware sigue activo

  • El sitio vuelve a dar error 500 después de limpiar el `.htaccess`
  • Aparecen nuevos archivos PHP con nombres aleatorios en carpetas de assets
  • El `.user.ini` tiene `auto_prepend_file` que no pusiste tú
  • Aparecen nuevos usuarios Superadmin con email `@secure.local`

Lección principal

Actualizar extensiones de terceros semanalmente. Este ataque fue posible por una extensión desactualizada, no por el core de Joomla. Una extensión vulnerable es suficiente para comprometer toda la cuenta de hosting.

Si tiene dudas sobre como arreglarlo

Contáctenos llamando o escribiendo por WhatsApp al +57 3332423060 si requieres ayuda con esta vulnerabilidad.

Tags