Cómo eliminar malware de PrestaShop
Primeros síntomas: ¿cómo saber si tu tienda tiene malware?
Detectar una infección a tiempo es clave para minimizar daños. Los síntomas más comunes de una tienda PrestaShop comprometida incluyen:
-
Redirecciones extrañas: al hacer clic en un producto, te lleva a una web de apuestas, farmacia online o cualquier sitio sospechoso.
-
Aparición de pop-ups invasivos que no has programado, incluso en tu propia web.
-
Avisos de Google Safe Browsing cuando tú o tus clientes intentan acceder a la tienda. Verás un mensaje como “El sitio contiene malware”.
-
Rendimiento muy lento de la tienda sin motivo aparente, porque el servidor está ejecutando scripts maliciosos en segundo plano.
-
Código extraño en el footer o en el head de tu web: líneas de JavaScript ilegibles, iframes ocultos o links de spam.
-
Usuarios administradores nuevos que no has creado, o cambios en los permisos de empleados.
-
Correos de tu hosting avisando de envíos masivos de spam desde tu cuenta.
[WARNING] Si ves cualquiera de estos síntomas, actúa de inmediato. Cada hora cuenta, porque el malware puede estar robando datos de clientes (tarjetas, emails, contraseñas) o usando tu servidor para atacar a terceros.
Preparación antes de limpiar: copia de seguridad y modo mantenimiento
Antes de tocar nada, necesitas un plan. Limpiar sin red de seguridad puede dejarte la tienda rota. Sigue estos pasos:
1. Activa el modo mantenimiento
Entra en tu panel de administración de PrestaShop y activa el modo mantenimiento. Así los clientes no verán la tienda mientras trabajas. Ve a Parámetros avanzados → Mantenimiento y actívalo.
2. Haz una copia de seguridad completa
No sirve solo con los archivos. Necesitas dos cosas:
-
Copia de los archivos de todo el directorio de tu tienda (normalmente
public_htmlowww). -
Copia de la base de datos completa (tablas y datos).
Puedes hacerlo desde el panel de tu hosting, como cPanel, o desde Syspanel (antes conocido como HestiaCP). Si usas Syspanel, accede por el puerto 2106 (por ejemplo: https://tu-servidor:2106). Busca la opción de backups o usa phpMyAdmin para exportar la base de datos.
[TIP] Guarda esas copias en tu ordenador o en un servicio externo como Google Drive o Dropbox. Nunca las dejes dentro del mismo servidor, porque si el malware tiene acceso al sistema, puede borrarlas o infectarlas también.
3. Cambia todas las contraseñas
Cambia la contraseña de:
- El panel de administración de PrestaShop.
- El acceso FTP o SFTP.
- El panel de control del hosting (cPanel, Syspanel, etc.).
- La base de datos MySQL.
Usa contraseñas largas, únicas y con caracteres especiales.
Fase 1: Limpieza manual de archivos (el paso a paso)
Ahora sí, vamos a limpiar. Esta es la parte más delicada, así que ve con calma.
1. Accede a tus archivos por FTP o SFTP
Conéctate a tu servidor con un cliente FTP como FileZilla. Navega hasta la raíz de tu instalación de PrestaShop.
2. Revisa los archivos modificados recientemente
El malware suele modificar archivos existentes o crear nuevos. Ordena los archivos por fecha de modificación y busca los que hayan cambiado en los últimos días (cuando empezó el problema).
Los archivos más atacados en PrestaShop son:
index.php(en la raíz y en subcarpetas).config/settings.inc.php(oapp/config/parameters.phpen versiones modernas).- Archivos de plantilla en
/themes/tu-tema/. - Archivos en
/modules/y/classes/. - El
.htaccessen la raíz.
3. Busca código sospechoso
Abre los archivos modificados con un editor de texto (como Notepad++ o Sublime Text) y busca patrones típicos de malware:
eval(base64_decode(...))gzinflate(...)str_rot13(...)base64_decode(...)sin motivo aparente.- Funciones como
shell_exec,exec,system,passthru. - Iframes ocultos:
<iframe src="http://sitio-malicioso.com" ...> - Scripts ofuscados con cadenas largas de caracteres aleatorios.
[WARNING] No borres archivos a lo loco. Si tienes dudas, compara con una copia limpia de PrestaShop de la misma versión. Descarga la versión oficial desde prestashop.org y compara los archivos originales con los tuyos.
4. Elimina archivos sospechosos desconocidos
El malware a veces crea archivos con nombres raros como: wp-load.php, c99.php, r57.php, shell.php, x.php, o archivos con nombres aleatorios como djsakdjh.php. Si encuentras archivos PHP que no reconoces y que no pertenecen a PrestaShop, elimínalos.
5. Limpia el .htaccess
El .htaccess es un archivo de configuración que a menudo es modificado para redirigir tráfico. Revisa que no contenga reglas extrañas de redirección. Si lo ves muy alterado, puedes regenerarlo desde el panel de administración de PrestaShop (Parámetros avanzados → Rendimiento → Regenerar .htaccess).
6. Revisa la carpeta de módulos
Los módulos son un punto de entrada común. Revisa que todos los módulos instalados sean legítimos. Si encuentras módulos que no has instalado tú, elimínalos. También revisa los módulos oficiales para ver si tienen archivos modificados.
Fase 2: Limpieza de la base de datos
El malware no solo vive en los archivos. También puede esconderse en la base de datos. Aquí te explico cómo encontrarlo:
1. Accede a la base de datos
Entra en phpMyAdmin desde el panel de tu hosting (cPanel o Syspanel). Localiza la base de datos de tu PrestaShop.
2. Busca en las tablas de contenido
Las tablas más atacadas son:
ps_connectionsps_connections_sourceps_orders(para robar datos de tarjetas)ps_customer(para robar emails)
Pero el malware suele esconderse en tablas menos obvias como ps_meta, ps_configuration, o en el contenido de las páginas CMS (ps_cms).
3. Busca campos con código inyectado
Haz una búsqueda en las tablas de contenido por términos como:
<scriptiframeeval(base64
Si encuentras resultados, edita el campo y elimina el código malicioso.
4. Elimina usuarios administradores falsos
Revisa la tabla ps_employee. Asegúrate de que solo existen los usuarios que tú has creado. Si hay alguno extraño, elimínalo.
Fase 3: Reinstala los archivos del núcleo (Core)
Si la infección es grave o no encuentras todo el malware, la solución más segura es reinstalar los archivos del núcleo de PrestaShop. Esto no borra tus productos ni configuración, solo reemplaza los archivos del sistema.
Pasos:
-
Descarga la versión exacta de PrestaShop que tienes instalada (míralo en Parámetros avanzados → Información).
-
Descomprime el archivo en tu ordenador.
-
Sube por FTP solo las carpetas del núcleo, sobrescribiendo las existentes. Estas carpetas son:
/classes/controllers/src/vendor/app/config(¡ojo! no sobrescribassettings.inc.phpoparameters.phpsi no quieres perder tu configuración)
-
No subas las carpetas
/themes,/modules,/imgni/download, porque contienen tus personalizaciones y datos. -
Limpia la caché: borra la carpeta
/var/cache(o/cacheen versiones antiguas) para forzar la regeneración.
[INFO] Este proceso reemplaza los archivos potencialmente infectados por versiones limpias. Es la forma más efectiva de garantizar que el núcleo de tu tienda está libre de malware.
Fase 4: Eliminar malware de PrestaShop con herramientas de seguridad
Si no te sientes cómodo haciendo la limpieza manual, existen herramientas que te pueden ayudar:
1. Escáneres de seguridad específicos
-
PrestaShop Security Scanner: una herramienta gratuita de PrestaShop que analiza tu tienda en busca de archivos modificados y vulnerabilidades.
-
WPScan (adaptado): aunque es para WordPress, puedes usarlo para escanear tu servidor en busca de firmas de malware conocidas.
-
ClamAV: un antivirus de código abierto que puedes ejecutar en tu servidor para escanear todos los archivos.
2. Módulos de seguridad de PrestaShop
Instala módulos de seguridad que monitoreen tu tienda en tiempo real. Algunos recomendados:
- PrestaShop Security & Firewall
- Malware Scanner (de proveedores de confianza)
- Advanced Security Suite
3. Servicios de limpieza profesional
Si la infección es muy grave o no te atreves a hacerlo tú, contrata un servicio especializado. Muchas empresas ofrecen limpieza de malware PrestaShop por un precio razonable y te garantizan la eliminación completa.
Fase 5: Medidas preventivas para evitar futuras infecciones
Limpiar es solo la mitad del trabajo. La otra mitad es evitar que vuelva a pasar. Aquí tienes una lista de buenas prácticas:
1. Mantén PrestaShop actualizado
Las versiones antiguas tienen vulnerabilidades conocidas. Actualiza siempre a la última versión estable.
2. Actualiza módulos y temas
Los módulos y temas desactualizados son la puerta de entrada más común. Desinstala los que no uses y actualiza los que uses.
3. Usa contraseñas fuertes
Para el panel de administración, la base de datos, el FTP y el hosting. Cambia las contraseñas periódicamente.
4. Limita el acceso al panel de administración
- Cambia la URL de administración (en PrestaShop 1.7 puedes renombrar la carpeta
/admin). - Activa la autenticación en dos pasos (2FA).
- Limita el acceso por IP al panel si es posible.
5. Haz copias de seguridad periódicas
Programa copias de seguridad automáticas diarias o semanales. Si algo pasa, puedes restaurar rápido.
6. Usa un firewall de aplicación web (WAF)
Un WAF bloquea el tráfico malicioso antes de que llegue a tu tienda. Muchos hostings lo ofrecen, o puedes usar servicios como Cloudflare.
7. Monitorea tu tienda
Revisa periódicamente los logs de acceso, los usuarios administradores y los archivos modificados.
Preguntas frecuentes (FAQ)
¿Cuánto tarda en limpiarse una tienda PrestaShop infectada?
Depende de la gravedad. Una limpieza básica puede llevar 2-3 horas. Una infección profunda puede tomar un día completo, especialmente si tienes que reinstalar el núcleo.
¿Perderé mis productos o clientes al limpiar?
No. La limpieza de archivos y base de datos no afecta a tus productos, pedidos ni clientes. Eso sí, siempre haz una copia de seguridad antes por si acaso.
¿Puedo evitar el malware solo con un buen hosting?
Un buen hosting ayuda mucho, pero no es suficiente. La seguridad es responsabilidad compartida. Necesitas mantener el software actualizado y aplicar buenas prácticas.
¿Qué hago si Google ya ha marcado mi web como peligrosa?
Después de limpiar, solicita una revisión en Google Search Console. Google revisará tu sitio y, si está limpio, quitará la advertencia en unos días.
¿Syspanel ayuda con la seguridad?
Syspanel (antes HestiaCP) es un panel de control que te permite gestionar tu servidor. Tiene herramientas de seguridad como firewall básico, pero no sustituye a una buena limpieza manual. Recuerda que su puerto de acceso es el 2106.
¿Necesito conocimientos avanzados para limpiar mi tienda?
No necesitas ser un experto, pero sí tener cuidado. Sigue los pasos con calma, compara archivos y no borres nada sin estar seguro. Si dudas, busca ayuda profesional.
Conclusión: la seguridad es un proceso continuo
Eliminar malware de PrestaShop es un proceso que requiere paciencia y método. No existe una solución mágica que lo arregle todo en un clic. La combinación de limpieza manual, reinstalación del núcleo y medidas preventivas es la forma más efectiva de recuperar tu tienda y mantenerla segura.
Recuerda los pasos clave:
- Activa mantenimiento y haz copias de seguridad.
- Limpia archivos y base de datos buscando código malicioso.
- Reinstala el núcleo si la infección es profunda.
- Usa herramientas de escaneo para verificar que no queda nada.
- Aplica medidas preventivas para no volver a caer.
[TIP] Anota en un documento todas las acciones que has tomado. Si la infección vuelve, te servirá para identificar el punto de entrada más rápido.
La seguridad de tu tienda online no es un destino, es un camino. Dedica tiempo cada mes a revisar tu PrestaShop, actualizar todo y hacer copias de seguridad. Así, si algún día te encuentras con malware, estarás preparado para actuar con rapidez y minimizar el impacto.
Si tienes dudas durante el proceso, no dudes en contactar con el soporte de tu hosting o con un profesional especializado en seguridad de PrestaShop. Ninguna pregunta es tonta cuando se trata de proteger tu negocio.
