Evaluación inicial sin contraseñas Presupuesto antes de intervenir Especialista responsable de principio a fin

Encontrar Entrada Persistencia

Una puerta trasera sobrevive al reemplazo de plugins y temas

Encuentra persistencia fuera de plugins y temas revisando mu-plugins, uploads, wp-config, cron, base, servidor y cuentas.

Reemplazar plugins y temas elimina solo dos ubicaciones. La persistencia puede vivir en mu-plugins, uploads, wp-config.php, archivos raíz, opciones MySQL, tareas o configuración del hosting. Las credenciales robadas también pueden recrear archivos sin ningún backdoor local.

Deja de repetir la misma limpieza y amplía el límite de confianza.

Demuestra qué significa «regresa»

Registra nombre, hash, valor de base, redirección o usuario que reaparece, además de la hora tras limpiar. Compáralo con el original conservado.

No asumas que nombres parecidos son el mismo payload. Caché o una restauración pueden mostrar contenido viejo. Correlaciona la repetición con peticiones, cron, despliegues y logins.

Revisa mu-plugins y drop-ins

Inspecciona wp-content/mu-plugins y drop-ins de caché, base u objetos. Pueden cargarse antes que plugins normales y seguir activos aunque la pantalla de Plugins parezca limpia.

Compara archivos de fabricante con paquetes fiables y documenta el propietario del código propio. No ejecutes código ofuscado para identificarlo. Revisa configuración antes de sustituir un drop-in legítimo.

Inspecciona directorios escribibles

Busca ejecutables y reglas inesperadas en uploads, caché, idiomas, upgrade y copias. Restringe PHP en uploads cuando la funcionalidad lo permita.

Conserva muestras y después aísla o elimina mediante reconstrucción limpia. No borres todo el contenido multimedia por un solo archivo. Revisa carpetas antiguas y organizadas por fecha.

Distingue caché de reinfección

Opcode, caché de objetos, CDN y workers PHP pueden servir estado viejo tras cambiar archivos. Anota capas y reinicios antes de interpretar una recurrencia.

Purga solo después de preservar evidencias y corregir el origen. La caché no suele recrear un archivo borrado en disco: ese caso aún necesita un proceso escritor. Compara hash del disco y respuesta servida.

Revisa raíz y configuración

Compara núcleo y raíz con la versión oficial correspondiente. Inspecciona wp-config.php, .htaccess, configuración PHP y valores auto_prepend_file.

Un include fuera del webroot puede cargar malware después de cada reemplazo. Comprueba directorios superiores de la cuenta. Conserva propietario, permisos y fechas antes de corregir.

Busca persistencia en la base

Revisa opciones, widgets, entradas o plantillas, usuarios, usermeta y datos de eventos. Constructores y etiquetas pueden emitir JavaScript sin cambiar archivos.

Trabaja desde una captura y aplica cambios precisos. Evita sustituciones amplias que rompan serialización o contenido legítimo. En multisitio, revisa opciones de red aparte.

Revisa la ejecución programada

Inspecciona WP-Cron, Action Scheduler, cron del servidor y tareas del panel. Registra hook, comando, propietario y frecuencia antes de deshabilitar.

Una tarea maliciosa puede recrear el archivo minutos después. No borres a ciegas trabajos legítimos de WooCommerce, copias o certificados. Revisa también automatizaciones de despliegue y restauración.

Inspecciona cargadores externos

Revisa Tag Manager, Workers de CDN, JavaScript externo, webhooks y agentes de gestión. Un sistema de archivos limpio puede producir comportamiento malicioso desde una cuenta externa comprometida.

Protege cada proveedor, revoca usuarios y tokens desconocidos y compara versiones desplegadas. No retires analytics legítimo sin identificar responsable y rollback.

Revoca la persistencia de cuentas

Audita administradores, contraseñas de aplicación, sesiones, usuarios y claves del hosting, base, correo principal, DNS/CDN y control de versiones. Rota desde un dispositivo limpio.

Quien mantiene SFTP puede restaurar un archivo tras cada escaneo. Limpiar archivos no revoca esa credencial. Utiliza acceso por web y MFA.

Reconstruye todo el límite confirmado

Crea una raíz limpia, instala componentes fiables, valida código propio e importa base y uploads evaluados. Cierra la vulnerabilidad inicial y aísla el árbol infectado.

Prueba los desencadenantes: ciclo cron, calentamiento de caché, login administrador, formulario y checkout. Monitoriza archivos, base y cuentas. Si el mismo indicador vuelve, solicita análisis urgente compartiendo hashes, rutas y horas censuradas, nunca payloads o bases.

ANTES DE ENVIAR LA SOLICITUD

Preguntas frecuentes.

¿Pedís contraseñas en el formulario?+

No. El formulario público nunca solicita accesos. Los datos seguros se piden únicamente después de aprobar el alcance y el presupuesto.

¿Quién revisa la incidencia?+

La solicitud llega a Jordi Ensenyat, fundador de Code Barcelona y especialista WordPress con más de 15 años de experiencia.

¿Se cambia algo antes del presupuesto?+

No. Primero se revisan los síntomas visibles y se define el alcance. La intervención empieza tras la aprobación y con una vía de vuelta preparada.

¿Trabajáis con webs en inglés y fuera de España?+

Sí. WP Repair atiende incidencias WordPress y WooCommerce en inglés y español, con servicio remoto.

Evaluar mi incidencia