PathSentinel Article

Mi PrestaShop está hackeado: qué cambia respecto a WordPress

Si tu tienda PrestaShop está infectada, la limpieza no es igual que en WordPress: dónde se esconde el atacante y por qué el checkout es lo urgente.

Si has llegado hasta aquí es porque tu tienda PrestaShop hace algo raro: redirige a otra página, el navegador la marca como peligrosa, el hosting te ha avisado o has visto ficheros que no reconoces. Lo primero que necesitas saber es que una tienda infectada no se limpia igual que un blog en WordPress. La estructura es distinta, los sitios donde se esconde el atacante son otros y, sobre todo, aquí hay pagos de por medio: eso convierte la limpieza en algo que corre más prisa de lo normal. En este artículo vas a ver qué cambia, dónde mirar y qué puedes hacer tú mismo antes de decidir si necesitas ayuda.

Lo primero, antes de tocar nada

Antes de borrar nada, haz una copia del estado actual: los ficheros por FTP o desde el gestor de archivos del hosting, y un volcado de la base de datos desde phpMyAdmin. Sí, está infectada, pero esa copia es tu prueba y tu red de seguridad. Si al limpiar te llevas por delante algo que no debías, siempre puedes volver a mirar cómo estaba.

Después, pon la tienda en mantenimiento. En PrestaShop lo tienes en Parámetros de la tienda > Mantenimiento (en versiones 1.6 está en Preferencias > Mantenimiento). Desactiva la tienda y añade tu propia IP a la lista de IP autorizadas para poder seguir trabajando. Esto detiene las ventas un rato, pero es mucho peor seguir vendiendo mientras alguien puede estar robando los datos de tarjeta de tus clientes.

En qué se parece a WordPress y en qué no

La lógica del ataque es la misma que te contamos en la guía general sobre qué hacer cuando tu web está hackeada: alguien entró por un agujero, dejó una puerta para volver y colocó lo que le interesa (spam, redirecciones, robo de datos). Lo que cambia es el terreno.

WordPress es un CMS pensado para contenido, con miles de plugins de terceros. PrestaShop es una plataforma de comercio, más cerrada, con menos extensiones pero mucho más código propio tocando dinero. Por eso, mientras que en la limpieza de un WordPress el foco está en plugins y temas, en PrestaShop el foco está en los módulos, los overrides y el proceso de pago.

Dónde se esconde el atacante en PrestaShop

Estas son las carpetas y ficheros que hay que revisar sí o sí, porque no existen en WordPress y mucha gente no sabe que están ahí:

  • /override/ — PrestaShop permite sobrescribir el comportamiento del núcleo desde aquí sin tocar los ficheros originales. Es el escondite favorito: un atacante deja un override del controlador de pago y captura tarjetas sin modificar ni un archivo del core. Revisa esta carpeta entera.
  • /modules/ — el equivalente a los plugins. Busca módulos que no recuerdes haber instalado, o carpetas con nombres casi iguales a los reales (por ejemplo ps_checkout frente a ps_chekout).
  • config/settings.inc.php (o app/config/parameters.php en versiones 1.7 y superiores) — aquí están las credenciales de la base de datos. Si te han entrado, seguramente lo han leído.
  • /admin-XXXX/ — la carpeta del panel de administración lleva un sufijo aleatorio por seguridad. Comprueba que solo hay una y que es la tuya.
  • /img/, /upload/ y /download/ — carpetas donde se suben ficheros. Cualquier .php dentro de ellas es sospechoso: ahí no debería haber código ejecutable.

Un truco que funciona igual que en WordPress: ordena los ficheros por fecha de modificación. Los archivos que cambiaron todos el mismo día y a la misma hora, cuando tú no tocaste nada, son la mejor pista de por dónde empezar.

El panel de administración y las cuentas

Entra en Parámetros avanzados > Equipo > Empleados y revisa la lista de cuentas con acceso al backoffice. Igual que un WordPress hackeado suele tener un administrador que no reconoces, en PrestaShop pueden haberse creado empleados con perfil SuperAdmin. Elimina cualquiera que no sea de tu equipo y cambia las contraseñas del resto.

Cambia también la contraseña de la base de datos y las claves de acceso FTP y del panel del hosting. Si no cierras esas puertas, da igual cuánto limpies: volverán a entrar en horas.

Los módulos: el equivalente a los plugins vulnerables

La mayoría de las intrusiones en PrestaShop entran por un módulo desactualizado o por uno descargado de una web pirata. Revisa en Módulos > Gestor de módulos cuáles tienen actualización pendiente y actualízalos. Si tienes algún módulo «de pago» que conseguiste gratis por ahí, desconfía: es una vía de entrada clásica, igual que los plugins nulled en WordPress.

Después de limpiar, el problema de fondo sigue siendo el mismo que en cualquier CMS: si dejas una sola puerta trasera escondida en el servidor, la web se reinfecta a los pocos días aunque hayas borrado todo lo visible. Busca ficheros PHP con código ofuscado (líneas larguísimas de eval, base64_decode o gzinflate) por toda la instalación, no solo en las carpetas de módulos.

El checkout: lo más urgente de todo

Esta es la diferencia que hace que un PrestaShop hackeado sea más grave que un blog. Los atacantes que van a por tiendas suelen buscar una cosa: los datos de las tarjetas de tus clientes. Inyectan un fragmento de JavaScript en la página de pago que copia el número de tarjeta mientras el cliente lo teclea y lo envía a un servidor suyo. Es lo que se llama un skimmer, y es invisible: la compra funciona con normalidad y nadie nota nada hasta que empiezan los cargos fraudulentos.

Revisa el HTML de la página de pago y los ficheros JavaScript de tu tema en /themes/tu-tema/, buscando scripts que apunten a dominios que no reconoces. Si vendes online y sospechas de esto, tenemos una guía dedicada a cómo comprobar si están robando tarjetas en tu tienda, con las obligaciones que tienes con el banco y con tus clientes. No es un tema en el que valga con limpiar y seguir como si nada: si ha habido fuga de datos de pago, hay pasos legales que cumplir.

Limpiar y verificar sin que se reinfecte

El orden que funciona es este:

  1. Compara tus ficheros con una copia limpia de tu versión exacta de PrestaShop, descargada de la web oficial. Cualquier archivo del núcleo que no coincida es sospechoso.
  2. Reemplaza los ficheros del core por los oficiales. Tu tienda de verdad vive en la base de datos, los módulos y el tema, no en el núcleo.
  3. Revisa uno a uno los overrides, los módulos y el tema, que son las partes que sí son tuyas y donde suele quedar escondido el problema.
  4. Borra la caché en /var/cache/ y regenera el fichero .htaccess desde Parámetros de la tienda > Tráfico y SEO, porque los atacantes también meten redirecciones ahí.
  5. Cambia todas las credenciales antes de volver a abrir.

Si la infección era antigua o no tienes claro cuándo empezó, plantéate restaurar una copia de seguridad anterior, con cuidado de elegir una fecha previa a la intrusión y de no volver a dejar la puerta abierta por la que entraron.

Cuándo lo haces tú y cuándo llamas a alguien

Seamos honestos. Si tu tienda es pequeña, tienes una copia de seguridad reciente y limpia, y el problema es una redirección o un módulo pirata, puedes salir de esto tú mismo siguiendo estos pasos. No necesitas pagar a nadie.

Ahora bien, si hay datos de tarjetas de por medio, si la tienda factura de verdad, o si limpias y a los tres días vuelve a estar infectada, ahí ya no conviene improvisar. Una limpieza profesional de una tienda ronda los 500 euros y te ahorra semanas de reinfecciones; puedes ver en detalle cuánto cuesta limpiar una web hackeada y qué incluye. La cuenta es sencilla: cuánto pierdes cada día que la tienda está cerrada o marcada como peligrosa, frente a lo que cuesta cerrar el asunto de una vez.

Antes de decidir nada, mira exactamente en qué estado está tu tienda. Pasa PathScan gratis a tu PrestaShop y comprueba desde fuera qué se ve infectado, qué redirecciones hay activas y por dónde te están viendo los atacantes.