WordPress con tareas programadas maliciosas cómo borrar
Tareas programadas maliciosas en WordPress: detecta su origen, bórralas sin romper la web y evita que reaparezcan.
Las tareas programadas maliciosas en WordPress pueden mantener una infección activa aunque ya hayas borrado parte del código visible. Una tarea programada maliciosa en WordPress es un evento recurrente creado para ejecutar acciones no autorizadas, mantener el malware o reinyectar código. El riesgo principal es que vuelva a crear usuarios, descargue archivos o modifique opciones sin que lo notes.
Conviene distinguir dos mecanismos: WP-Cron, que es el sistema interno de eventos de WordPress, y el cron del servidor, configurado desde el hosting o por línea de comandos. No son lo mismo y revisar solo uno puede dejar fuera la causa real.
- Haz una copia de seguridad de archivos y base de datos antes de borrar nada.
- Anota el nombre del evento, el hook, la periodicidad y qué archivo o proceso podría lanzarlo.
- Verifica si pertenece al núcleo, a un plugin, a un tema o a una personalización legítima.
Qué son las tareas programadas maliciosas en WordPress y por qué reaparecen
En WordPress, muchos plugins y el propio núcleo usan eventos programados para tareas legítimas: publicaciones programadas, limpieza de temporales, sincronizaciones o envíos de correos. Por eso, un evento desconocido no debe considerarse malware por defecto. Primero hay que comprobar su origen.
Cuando sí es malicioso, suele funcionar como mecanismo de persistencia del malware. Si reaparece después de borrarlo, normalmente queda una puerta de entrada activa: un plugin comprometido, un tema alterado, un mu-plugin, código en functions.php, un archivo PHP en uploads o incluso una tarea del servidor fuera de WordPress.
Cómo revisar si el problema está en WP-Cron o en el cron del servidor
Si tienes acceso al panel de administración, puede ayudar un plugin de inspección de cron para ver eventos, hooks y frecuencia. Si dispones de terminal, WP-CLI permite revisar eventos programados con comandos estándar de cron. Esta vía suele ser más fiable en entornos técnicos.
Después revisa el hosting. En muchos proveedores habituales en España existe un apartado de tareas cron en el panel. Si el sitio usa cron del sistema para llamar a wp-cron.php o ejecutar scripts, una tarea maliciosa puede estar ahí y no dentro de la tabla de opciones de WordPress.
Señales que pueden resultar sospechosas
- Hooks con nombres extraños o que no coinciden con plugins instalados.
- Eventos demasiado frecuentes sin motivo claro.
- Tareas que llaman a archivos PHP fuera de rutas habituales.
- Cron del servidor que ejecuta scripts en carpetas temporales o de subidas.
Qué comprobar antes de borrar una tarea programada sospechosa
Antes de eliminar un evento programado sospechoso, conviene registrar qué lo genera. Mira si el hook aparece en archivos del plugin o tema activo, en personalizaciones, en wp-config.php o en mu-plugins. Si lo borras sin identificar el origen, puede recrearse al siguiente acceso.
También es recomendable revisar usuarios administradores no reconocidos, plugins o temas anulados o nulled, y fechas de modificación de archivos recientes. Si el sitio ya presenta redirecciones, inyecciones de spam o cambios en opciones, el compromiso puede ser más amplio que una sola tarea cron.
Cómo eliminar tareas programadas maliciosas sin romper funciones legítimas
La forma segura depende del acceso disponible. Desde un plugin de inspección puedes localizar el evento y eliminarlo si ya has confirmado que no pertenece a una función legítima. Con WP-CLI también puede desprogramarse un evento concreto. En ambos casos, la prudencia está en no borrar a ciegas tareas del núcleo o de extensiones necesarias.
Después de quitar el evento, elimina o corrige el código que lo crea. Puede estar en un plugin comprometido, un tema hijo, un archivo añadido manualmente o una tarea del servidor. Si no puedes atribuir el hook a un componente claro, conviene pausar cambios y revisar la instalación completa antes de seguir.
Qué revisar después para evitar que el malware vuelva a crear eventos
- Plugins y temas: reinstala desde fuente oficial los sospechosos o desactiva los no confiables.
- Usuarios: elimina cuentas administradoras no reconocidas y revisa roles.
- Archivos comprometidos: compara cambios en wp-config.php, functions.php y mu-plugins.
- Carpeta uploads: busca PHP o archivos ejecutables fuera de lo normal.
- Base de datos: revisa opciones sospechosas y signos de reinyección de código.
- Cron del servidor: confirma que no queden tareas externas recreando el problema.
- Credenciales: cambia contraseñas de WordPress, hosting, FTP/SFTP y base de datos si procede.
Como medida de endurecimiento de WordPress, actualiza núcleo, temas y plugins, reduce extensiones innecesarias y limita el uso de software no verificado. Si quieres contrastar el funcionamiento del sistema interno, la documentación oficial de WordPress sobre cron puede servir como referencia técnica.
Cuándo conviene escalar la limpieza y pedir ayuda especializada
Conviene parar y pedir ayuda si la tarea reaparece, si no puedes identificar el archivo o proceso que la crea, o si detectas varios indicadores de compromiso a la vez: usuarios extraños, cambios en archivos del núcleo, spam SEO, redirecciones o cron del servidor alterado. En esos casos, una limpieza parcial puede dejar el sitio expuesto.
La idea clave es simple: eliminar la tarea no basta si no corriges el origen. Si has borrado el evento pero persisten dudas sobre la puerta de entrada, el siguiente paso razonable es hacer una revisión completa del sitio o solicitar una limpieza profesional antes de que el malware vuelva a crear eventos.
¿Necesitas orientación personalizada?
Te ayudamos a entender tus opciones y el siguiente paso.