Cómo eliminar malware de PrestaShop manualmente
¿Tu tienda PrestaShop ha sido hackeada o tiene un comportamiento extraño? Respira, no estás solo. Los ataques a tiendas online son cada vez más frecuentes, pero la buena noticia es que, en muchos casos, puedes eliminar malware de PrestaShop manualmente sin necesidad de ser un experto en programación. En esta guía extensa y paso a paso, te voy a explicar, con un lenguaje claro y sencillo, cómo detectar, limpiar y blindar tu tienda para que no vuelva a pasar.
Vamos a ensuciarnos las manos, pero con cabeza. Antes de empezar, una advertencia importante.
[WARNING]
Trabajar directamente con archivos del servidor es delicado. Antes de tocar nada, haz una copia de seguridad completa de tu web (archivos y base de datos). Si algo sale mal, podrás restaurar todo. Si te sientes inseguro en cualquier momento, contacta con tu proveedor de hosting o con un profesional.
¿Por qué es importante eliminar el malware de PrestaShop manualmente?
Cuando tu tienda es infectada, el malware no solo roba datos de tus clientes (algo imperdonable), sino que también daña tu posicionamiento SEO. Google te marcará como "sitio peligroso", tus ventas caerán en picado y tu reputación quedará por los suelos.
Limpiar web a tiempo es crucial. Aunque existen plugins de seguridad, hacerlo manualmente te permite entender exactamente qué ha pasado, asegurarte de que no quedan puertas traseras y, sobre todo, aprender a prevenirlo. Además, es la opción más económica y, en muchos casos, la más efectiva.
Fase 1: Diagnóstico Inicial (Antes de Eliminar)
No puedes luchar contra un enemigo invisible. Primero, debemos identificar la magnitud del ataque malware. Aquí tienes una lista de verificación rápida.
Señales de que tu PrestaShop está infectado
- La web va muy lenta sin motivo aparente.
- Aparecen ventanas emergentes (pop-ups) o redirecciones a páginas raras.
- Tus clientes reciben correos con enlaces sospechosos.
- Google Search Console te avisa de "Contenido pirateado" o "Página de malware".
- Hay archivos nuevos que no reconoces en el servidor (normalmente en la raíz o en
/modules).
Herramientas para el diagnóstico
- Google Safe Browsing: Entra en
transparencyreport.google.com/safe-browsing/searchy pon tu URL. Te dirá si estás en la lista negra. - Escáner de malware online (ej. Sucuri SiteCheck): Es gratuito y te dará una idea de si hay código malicioso visible.
- El Administrador de Archivos de tu Hosting (cPanel, Syspanel, etc.): Este es tu mejor amigo. Si tu hosting usa Syspanel (accede por el puerto 2106), busca el gestor de archivos para navegar por las carpetas de tu PrestaShop.
Fase 2: Acceso al Servidor y Preparación del Entorno
Para eliminar malware de PrestaShop manualmente, necesitas acceso a los archivos. Te recomiendo usar un cliente FTP como FileZilla, o el administrador de archivos de tu panel de control.
Paso 1: Poner la tienda en modo mantenimiento
Ve al panel de administración de PrestaShop y activa el modo mantenimiento. Esto evitará que los usuarios vean errores mientras limpias y evitará que el malware se propague activamente a visitantes.
Paso 2: Descargar una copia de seguridad local
Descarga una copia de todos los archivos de tu tienda a tu ordenador. Esto te servirá como "escena del crimen" para analizar en local si lo necesitas, pero nunca subas estos archivos de nuevo sin limpiarlos.
Paso 3: Crear un punto de restauración
[TIP]
Antes de borrar nada, guarda una copia de los archivos que vayas a modificar en una carpeta local llamada "cuarentena". Así podrás restaurar algo si lo borras por error.
Fase 3: La Limpieza Manual Paso a Paso (El Corazón de la Guía)
Ahora sí, vamos a la acción. La idea es encontrar el código malicioso y eliminarlo. El malware suele esconderse en tres lugares principales: la raíz del sitio, la carpeta /modules y la base de datos.
### Subsección 3.1: Limpieza de Archivos en la Raíz
Los archivos más comunes que se infectan son index.php, .htaccess, config/settings.inc.php y config/defines.inc.php.
-
Inspecciona el
.htaccess: Este archivo es el favorito de los hackers para redirigir tu web. Ábrelo con un editor de texto plano (como el Bloc de notas). Busca líneas extrañas con dominios que no reconoces, reglas deRewriteRulesospechosas o códigos en base64.- Solución: Si ves algo raro, puedes descargar un
.htaccesslimpio desde el sitio oficial de PrestaShop (según tu versión) y reemplazarlo. O simplemente comenta las líneas sospechosas poniendo#al principio.
- Solución: Si ves algo raro, puedes descargar un
-
Revisa el
index.php: Elindex.phpde la raíz normalmente tiene unas 30 líneas. Si ves que pesa más de 10KB o tiene bloques largos de código ofuscado (letras y números sin sentido), está infectado.- Solución: Sustitúyelo por una versión original de tu versión de PrestaShop. Asegúrate de que la ruta
dirname(__FILE__)sea correcta.
- Solución: Sustitúyelo por una versión original de tu versión de PrestaShop. Asegúrate de que la ruta
-
Busca archivos extraños: En la raíz, mira si hay archivos con nombres como
shell.php,cmd.php,wp-upload.phpo cualquier.phpque no esté en la lista original. Bórralos directamente.
### Subsección 3.2: Limpieza en la Carpeta /modules
Esta es la zona más vulnerable. Los módulos antiguos o piratas suelen tener agujeros de seguridad.
- Identifica módulos falsos: A veces, los atacantes crean módulos con nombres similares a los reales (ej.
paypal_old,seo_banner). Revisa la fecha de modificación. Si un módulo tiene una fecha de creación muy reciente y no lo has instalado tú, es sospechoso. - Busca archivos PHP en módulos: Entra en cada carpeta de módulos y busca archivos
.phpque no sean los típicos (index.php,xxx.phpcon el nombre del módulo). Presta especial atención a archivos con nombres comouploader.php,connector.phpoeval.php. - Elimina el módulo completo: Si sospechas de un módulo, es mejor borrarlo por completo desde el FTP. Después, puedes reinstalarlo desde el marketplace oficial de PrestaShop.
[INFO]
Un truco de hacker es usar la funcióneval()obase64_decode()en archivos PHP para ejecutar código malicioso. Si abres un archivo y ves una línea gigante que empieza poreval(base64_decode(...)), es 100% malware. Bórrala o elimina el archivo.
### Subsección 3.3: Limpieza de la Base de Datos
El malware no solo vive en archivos. También puede inyectar código en tu base de datos, especialmente en las tablas ps_connections o ps_hook.
- Accede a phpMyAdmin: Desde tu panel de control (cPanel, Syspanel en el puerto 2106), busca el acceso a phpMyAdmin.
- Exporta las tablas: Antes de tocar nada, exporta una copia de seguridad de la base de datos.
- Busca inyecciones SQL: Ve a la pestaña "Buscar" y busca cadenas como
<script>,iframe,eval(obase64_decode. Si aparecen en campos de texto, significa que están inyectando código.- Solución: Si encuentras algo, tendrás que editar el registro y eliminar la etiqueta
<script>...</script>completa. Esto es tedioso, pero efectivo.
- Solución: Si encuentras algo, tendrás que editar el registro y eliminar la etiqueta
Fase 4: Refuerzo de Seguridad Post-Limpieza (Prevención)
Has eliminado el malware, pero ahora viene lo importante: que no vuelva a ocurrir. La seguridad PrestaShop es un proceso continuo.
Paso 1: Cambia todas tus contraseñas
Cambia la contraseña del administrador de PrestaShop, la del FTP y la de la base de datos. Usa contraseñas largas con combinaciones de mayúsculas, minúsculas, números y símbolos.
Paso 2: Actualiza todo
Actualiza el núcleo de PrestaShop, los módulos y los temas. Las actualizaciones corrigen vulnerabilidades conocidas. Si usas módulos piratas, bórralos ya. Son la puerta de entrada principal.
Paso 3: Revisa los permisos de archivos
Los archivos deben tener permiso 644 y las carpetas 755. Si ves que algún archivo tiene 777, cámbialo. Esto evita que cualquiera pueda ejecutar scripts.
Paso 4: Instala un firewall de aplicación web (WAF)
Puedes instalar un módulo de seguridad de pago o configurar un WAF a nivel de servidor (como ModSecurity) si tu hosting lo permite.
Fase 5: Verificación Final y Alta de Google
Una vez limpio, es hora de verificar que todo está en orden.
- Escanea de nuevo: Pasa el escáner de Sucuri de nuevo para confirmar que el malware ha desaparecido.
- Solicita la revisión de Google: Si Google te había puesto en la lista negra, tendrás que solicitar una revisión desde Google Search Console. Ve a "Problemas de seguridad" y haz clic en "Solicitar revisión". Este proceso puede tardar unos días.
- Prueba la funcionalidad: Desactiva el modo mantenimiento y navega por tu tienda como si fueras un cliente. Haz un pedido de prueba, revisa el proceso de pago y asegúrate de que no hay errores.
Preguntas Frecuentes (FAQ) sobre Seguridad PrestaShop
Aquí te resuelvo las dudas más comunes que me suelen llegar al soporte.
¿Cuánto tiempo se tarda en eliminar el malware manualmente?
Depende del nivel de infección. Si es algo leve (solo el .htaccess), puedes tardar 30 minutos. Si es una infección profunda en la base de datos, puede llevarte un día completo. La paciencia es clave.
¿Es mejor pagar un servicio de limpieza profesional?
Si no te sientes cómodo tocando código, sí. Servicios como Sucuri o tu propio hosting ofrecen limpieza por un precio. Pero si has llegado hasta aquí, tienes la capacidad de hacerlo tú. El conocimiento que ganas es invaluable.
¿Puedo usar módulos de seguridad para eliminar el malware automáticamente?
Existen módulos como "Security Scanner" o "Ecomail Security" que pueden ayudarte a identificar archivos infectados, pero ninguno es 100% fiable para eliminarlo todo. Suelen marcar falsos positivos. La limpieza manual siempre es más precisa.
¿Qué hago si después de limpiar, el malware vuelve a aparecer?
Esto significa que hay una puerta trasera que no has encontrado. Suele estar en un módulo que no revisaste a fondo o en una cuenta de usuario de administrador creada por el hacker. Revisa la lista de empleados en el back-office y elimina cualquier usuario que no reconozcas. También revisa los cron jobs en tu hosting.
¿Syspanel tiene alguna herramienta específica para esto?
Syspanel, el panel de control de tu hosting (accesible por el puerto 2106), te facilita la vida. Tiene un administrador de archivos muy completo, acceso a phpMyAdmin y gestor de copias de seguridad. No tiene un botón mágico de "limpiar malware", pero todas las herramientas que necesitas están ahí, a un clic.
Conclusión
Eliminar malware de PrestaShop manualmente es una tarea desafiante pero gratificante. Has aprendido a diagnosticar, limpiar y proteger tu negocio online. Recuerda que la prevención es tu mejor arma: actualiza siempre, usa contraseñas robustas y desconfía de módulos de fuentes no oficiales.
[TIP]
Programa una copia de seguridad automática semanal en tu hosting. Si vuelve a pasar, podrás restaurar en minutos sin perder tiempo ni dinero.
Espero que esta guía te haya sido de gran ayuda. Si tienes alguna duda, no dudes en contactar con nuestro soporte. ¡Tu tienda está ahora más segura!
