Web

Cómo limpiar tu WordPress hackeado con Claude

Si no mantienes WordPress actualizado, guardas las contraseñas de cualquier manera o tu servidor no está bien configurado, tarde o temprano te acaban hackeando la web. Arreglarlo del todo no es trivial, y no sirve con pedirle a Claude «tengo malware, conéctate a mi web y arréglalo» esperando un prompt mágico que lo resuelva todo. Si quieres aprender de como limpiar tu WordPress hackeado con Claude esta es tu guia. Necesitas ser concreto en cada punto: revisar la base de datos en busca de iframes ocultos, comprobar accesos y usuarios sospechosos, saber qué ficheros puedes sustituir sin romper nada del sitio, y cómo comprobar después que de verdad quedó desinfectada. Esta guía te da ese razonamiento paso a paso, con el prompt exacto que puedes usar en cada punto.

01

Antes de nada: forma rápida

  • Lo más rápido, si tienes backups de tu hosting, no es empezar a limpiar archivo por archivo: es buscar la copia de seguridad más reciente de antes de que apareciera la infección y restaurarla. Si funcionaba bien en ese momento, en muchos casos eso ya te devuelve el sitio limpio en minutos.
  • Ahora bien, ten mucho cuidado si tu web es una tienda WooCommerce o gestiona facturas, pedidos o datos de clientes: al restaurar una copia antigua vas a perder todo lo que se creó después de esa fecha. Pedidos nuevos, clientes registrados, entradas publicadas, comentarios… todo lo posterior al backup desaparece.
  • Por eso, antes de restaurar nada, haz una copia completa de cómo está el sitio ahora mismo, tanto de los archivos por FTP como de la base de datos infectada. No la vas a usar para restaurar, sino como fuente para rescatar lo nuevo: exporta los pedidos recientes de WooCommerce a CSV, exporta los usuarios nuevos, guarda aparte cualquier imagen o documento subido recientemente. Así, una vez restaurada la copia limpia, puedes volver a añadir esa información a mano.
  • Antes de dar la copia por buena, comprueba su fecha: si tu backup más reciente tiene ya un mes o más de antigüedad, es posible que la infección llevara ahí desde antes de que se generara, y estarías restaurando una copia que también está contaminada. Compara la fecha del backup con el momento en que empezaste a notar síntomas raros en la web.
  • Restaura la copia limpia y comprueba si el problema desaparece. Si el sitio vuelve a infectarse en poco tiempo, o si no tienes ninguna copia limpia disponible, entonces sí toca hacer el proceso completo que vas a ver en el resto de esta guía: la vulnerabilidad sigue abierta y hay que encontrarla y cerrarla.
⚠️
Si tienes una tienda online, ojo con esto
Ten mucho cuidado si tu web es una tienda WooCommerce o gestiona facturas, pedidos o datos de clientes: al restaurar una copia antigua vas a perder todo lo que se creó después de esa fecha. Pedidos nuevos, clientes registrados, entradas publicadas, comentarios… todo lo posterior al backup desaparece.
02

Por dónde entran de verdad

  • Por una vulnerabilidad conocida: es la causa más habitual. Un plugin, un tema o el propio núcleo de WordPress tienen un fallo publicado, y hay bots rastreando internet constantemente en busca de instalaciones que todavía no han aplicado el parche. No hace falta que nadie te ataque «a propósito»: basta con que tu web aparezca en ese rastreo automático.
  • Por contraseñas débiles o reutilizadas: ataques de fuerza bruta contra tu wp-login, probando miles de combinaciones automáticamente, o directamente usando una contraseña que filtraron de otro servicio donde la reutilizaste.
  • Por un email de phishing: te llega un correo que parece de tu hosting, de WordPress o incluso de un proveedor de pagos, con un enlace que lleva a una página de login idéntica a la real. Metes tu usuario y contraseña ahí sin darte cuenta de que no es la página verdadera, y se la acabas de entregar al atacante.
  • Por tu propio ordenador: a veces el problema no está en el servidor en absoluto. Si tu equipo tiene malware, este puede leer directamente las contraseñas guardadas en el navegador o en un cliente FTP como FileZilla, y enviárselas al atacante. En este caso, limpiar solo WordPress no sirve de nada: en cuanto termines, volverán a entrar con la misma contraseña robada. Analiza tu ordenador con un antivirus antes de dar el problema por resuelto.
  • Por el propio servidor, en hosting compartido: si tu web comparte servidor con otras instalaciones y alguna de ellas está infectada, en ciertos casos el malware puede saltar de una carpeta a otra si los permisos entre cuentas no están bien aislados. No es lo más común, pero conviene tenerlo en cuenta si te reinfectas sin explicación aparente.
⚠️
Revisa también tu propio ordenador
Si tu equipo tiene malware, limpiar solo WordPress no sirve de nada: en cuanto termines, volverán a entrar con la misma contraseña robada. Analiza tu ordenador con un antivirus antes de dar el problema por resuelto.
03

Qué suelen dañar

  • En los archivos, lo habitual es que modifiquen archivos existentes que ya confían en tu instalación, como functions.php del tema, wp-config.php o los .htaccess, añadiendo código al principio o al final. Y también que suelten archivos nuevos camuflados, sobre todo dentro de wp-content/uploads (donde nunca debería haber PHP) o en wp-content/mu-plugins (que se carga siempre, sin pasar por el listado normal de plugins).
  • En la base de datos, lo típico es que inyecten código dentro del contenido de entradas y páginas (scripts o iframes ocultos), que creen usuarios administradores nuevos como puerta trasera, o que añadan opciones dentro de wp_options marcadas como «autoload», que se ejecutan automáticamente en cada carga de página sin que tengas que hacer nada para activarlas.
  • En los accesos, en algunos casos el atacante llega a crear sus propias cuentas FTP adicionales desde el panel de hosting, o roba las credenciales existentes para poder volver a entrar más adelante, incluso después de que hayas limpiado WordPress por completo.
04

Cierra estas puertas primero

  • Hay dos accesos que la gente suele pasar por alto y que son extremadamente comunes como puerta de entrada. El primero: revisa si tienes instalado dentro de WordPress algún plugin de tipo «gestor de archivos» o «file manager». Este tipo de plugin, si tiene una vulnerabilidad o si el atacante conoce su URL directa, le da acceso a subir, editar y borrar archivos exactamente igual que si tuviera tu FTP, sin necesitar en absoluto tus credenciales reales. Si encuentras uno que no recuerdas haber instalado tú, elimínalo de inmediato. Incluso si lo instalaste tú a propósito, desactívalo cuando no lo estés usando activamente.
  • El segundo: comprueba si el acceso a phpMyAdmin de tu hosting es público, es decir, accesible desde cualquier dirección de internet sin restricción. Si es así, basta con que el atacante consiga o adivine tu usuario y contraseña de base de datos (a veces filtrada, a veces reutilizada) para entrar directamente a tus datos, sin pasar por WordPress ni por su sistema de login en ningún momento. Restringe el acceso a phpMyAdmin por IP desde el panel de tu hosting, o mediante una regla en el .htaccess de esa ruta, de forma que solo pueda accederse desde tu propia conexión.

05

Cómo conectar Claude a tu WordPress

  • Para que Claude pueda leer archivos, consultar la base de datos y ejecutar código directamente sobre tu WordPress necesitas un puente entre los dos: un plugin que instala un servidor MCP dentro de tu instalación, por ejemplo Novamira (novamira.ai). Esto funciona tanto con Claude Desktop y Claude.ai como con Claude Code: la conexión es la misma tecnología (MCP), solo cambia dónde la configuras.
1
Instala el plugin — Descarga el ZIP desde novamira.ai/download, y en tu WordPress ve a Plugins → Añadir nuevo plugin → Subir plugin, selecciona el ZIP, pulsa Instalar ahora y luego Activar.
2
Activa las habilidades de IA — Al activarse, Novamira añade un menú «Novamira» en el admin de WordPress, pero por defecto las herramientas de IA están desactivadas. Entra en Novamira → Configuración y actívalas ahí.
3
Copia la URL de conexión — En esa misma pantalla de Configuración, Novamira te genera ya rellena la URL del servidor MCP de tu web, con el formato https://tu-web.com/wp-json/mcp/novamira-oauth.
4
Conéctala en Claude Desktop o Claude.ai — Ve a Ajustes → Conectores → Añadir conector personalizado, pega esa URL, guarda y deja vacíos el Client ID y el Secret. Se abrirá el navegador para que inicies sesión con tu usuario de WordPress y autorices la conexión.
5
O conéctala en Claude Code — Desde la terminal, sin tocar ningún archivo de configuración a mano.

Bash · Conectar Claude Code

claude mcp add novamira-tu-web --transport http https://tu-web.com/wp-json/mcp/novamira-oauth
  • Al ejecutarlo se abrirá el navegador para que inicies sesión igual que en el paso anterior. Puedes revocar el acceso en cualquier momento desde Novamira → Aplicaciones conectadas dentro de tu WordPress.
Verifica que la conexión funciona
Abre una conversación nueva y pídele: «lista los plugins instalados en este WordPress». Si responde con la lista real usando las herramientas de Novamira, la conexión está bien hecha.
Si tu cliente no soporta este tipo de conexión
Novamira también permite conectar con una Application Password (una credencial de WordPress independiente de tu contraseña, que puedes revocar por separado) para clientes que no soporten este método. La opción está en la misma pantalla de Configuración.
06

Los 9 pasos para limpiarlo a fondo

Paso 1: cambia las contraseñas

  • Si el atacante entró con una contraseña robada o adivinada, esa misma vía sigue abierta hasta que la cierres, así que este es el primer paso de verdad, antes de tocar ningún archivo. Cambia, en este orden, la contraseña de todos los administradores de WordPress, la de la base de datos, la del panel de hosting y la de todas las cuentas FTP/SFTP. Revisa también qué «application passwords» o tokens tienes conectados en Usuarios → Perfil, y revócalos si no reconoces alguno. Activa la verificación en dos pasos en cuanto termines.
  • Con Claude, puedes pedirle:

Prompt · Paso 1

Lista todos los usuarios con rol de administrador, todos los application passwords activos y todas las tareas cron programadas en este WordPress, con su fecha de creación.

Paso 2: regenera las claves de wp-config

  • Dentro de wp-config.php hay un bloque de «claves únicas de autentificación» (AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY y sus variantes _SALT) que cifran las cookies de sesión. Si el atacante llegó a conocerlas, puede seguir teniendo una sesión de administrador válida aunque ya hayas cambiado tu contraseña en el paso anterior, así que no basta con cambiar la contraseña sin tocar esto.
  • Genera un bloque nuevo desde el generador oficial de WordPress, api.wordpress.org/secret-key/1.1/salt/, y sustituye el bloque antiguo completo por el nuevo dentro de wp-config.php. Esto cierra automáticamente todas las sesiones activas del sitio, incluida la que pudiera tener el atacante.
  • Con Claude, puedes pedirle:

Prompt · Paso 2

Revisa el archivo wp-config.php y dime si el bloque de claves AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY y NONCE_KEY, y sus versiones _SALT, está presente, y si hay código añadido antes o después de ese bloque que no debería estar ahí.
⚠️
No basta con cambiar la contraseña
Si el atacante llegó a conocer las claves de wp-config.php, puede seguir teniendo una sesión de administrador válida aunque ya hayas cambiado tu contraseña en el paso anterior. Regenerar este bloque cierra automáticamente todas las sesiones activas del sitio.

Paso 3: localiza los archivos sospechosos

  • El malware casi nunca vive en un solo sitio. Ordena los archivos por fecha de modificación desde el administrador de archivos o por FTP: cualquier cambio reciente que tú no hayas hecho es sospechoso, sobre todo dentro de wp-content/uploads, donde no debería haber ningún .php, y dentro de wp-content/mu-plugins, que casi nadie revisa. No hace falta borrar nada todavía en este punto, solo localizarlo, porque en el siguiente paso vas a sustituir el núcleo entero de todas formas.
  • Con Claude, puedes pedirle:

Prompt · Paso 3

Esta instalación de WordPress ha sido hackeada. Investiga y analiza a fondo todos los archivos en busca de patrones, código ofuscado o irregularidades, y dame un listado antes de que borre nada.

Paso 4: reinstala el núcleo limpio

  • Aunque elimines los archivos infectados que has detectado, es habitual que se te escape alguno, y si el hueco de seguridad sigue abierto, suele regenerarse. Por eso la solución de verdad es reemplazar el núcleo completo: elimina todas las carpetas y archivos de la instalación principal, incluidas wp-admin y wp-includes. No borres wp-content, ahí están tus plugins, temas y subidas, ni wp-config.php. Descarga la versión oficial más reciente desde wordpress.org y sube esos archivos limpios en su lugar.
  • Con Claude, puedes pedirle:

Prompt · Paso 4

Descarga la versión oficial de WordPress correspondiente a esta instalación y compárala archivo por archivo con el núcleo actual. Dime qué archivos sobran o son distintos antes de sustituir nada.
⚠️
Qué NO debes borrar
Elimina todas las carpetas y archivos de la instalación principal, incluidas wp-admin y wp-includes. Pero no borres wp-content, ahí están tus plugins, temas y subidas, ni wp-config.php.

Paso 5: limpia wp-content/uploads

  • Es el escondite más común de todos, porque es la única carpeta que WordPress nunca reinstala por ti automáticamente. Revisa cada archivo con extensión .php dentro de esa carpeta y sus subcarpetas, y bórralo: no debería haber ninguno. Añade después una regla en un .htaccess dentro de esa carpeta que bloquee la ejecución de PHP, así aunque vuelvan a subir algo, no podrá ejecutarse.
  • Con Claude, puedes pedirle:

Prompt · Paso 5

Busca dentro de wp-content/uploads y todas sus subcarpetas cualquier archivo con extensión .php, .phtml o similar, y dame la ruta completa de cada uno antes de que decida si los borro.

Bloquea la ejecución de PHP
Añade una regla en un .htaccess dentro de wp-content/uploads que bloquee la ejecución de PHP. Así, aunque vuelvan a subir algo, no podrá ejecutarse.

Paso 6: reinstala plugins y temas oficiales

  • Muchas infecciones viven directamente dentro del código de un plugin o tema, sobre todo si es una versión «nulled» descargada fuera de los canales oficiales. Reactivar el mismo archivo que ya tenías reintroduce el malware, así que anota qué tenías activo, borra por completo esas carpetas y reinstala cada elemento desde cero, siempre desde el repositorio oficial de WordPress.org o, si es de pago, desde la web del desarrollador con tu licencia.
  • Con Claude, puedes pedirle:

Prompt · Paso 6

Lista todos los plugins y temas instalados, activos e inactivos, con su fecha de última actualización. Después, sustituye cada uno descargándolo desde su origen oficial, y avísame si alguno lleva más de un año sin actualizarse.

Paso 7: limpia la base de datos

  • Aunque la mayoría de infecciones viven en archivos, algunas inyectan código directamente en la base de datos, sobre todo dentro del contenido de entradas o en las opciones del sitio, y este tipo es de los más difíciles de detectar a simple vista. Antes de tocar nada aquí, exporta una copia de la base de datos desde phpMyAdmin, porque un error en una consulta puede dejar el sitio inoperativo. Revisa después cada coincidencia que encuentres uno por uno, ya que algunos plugins legítimos también usan funciones como base64 para tareas normales, así que el contexto importa antes de borrar.
  • Con Claude, puedes pedirle:

Prompt · Paso 7

Analiza a fondo las tablas wp_options y wp_posts en busca de código ofuscado, scripts o iframes inyectados, y opciones autoload que no correspondan a ningún plugin instalado. Explícame cada hallazgo antes de modificar nada.
Haz una copia antes de tocar la BD
Antes de tocar nada en la base de datos, exporta una copia desde phpMyAdmin: un error en una consulta puede dejar el sitio inoperativo.

Paso 8: elimina administradores falsos

  • Es habitual que el atacante cree una cuenta con permisos de administrador como puerta trasera adicional, que sigue funcionando aunque hayas cambiado tu propia contraseña. Entra en Usuarios dentro de tu panel y revisa la lista completa, eliminando cualquier cuenta que no hayas creado tú. Si no puedes acceder al panel, puedes forzar el cambio de la contraseña de tu propio usuario directamente desde phpMyAdmin, en la tabla wp_users.
  • Con Claude, puedes pedirle:

Prompt · Paso 8

Lista todos los usuarios con rol de administrador junto a su fecha de registro, y señala cualquier cuenta cuya fecha de creación coincida con el periodo en el que detectamos la infección.

Paso 9: comprueba que quedó limpio

  • Ninguna herramienta de análisis es perfecta, así que conviene pasar más de una antes de dar el proceso por cerrado. Escanea el sitio con Wordfence y con Sucuri SiteCheck, y comprueba tu dominio en Google Safe Browsing. Prueba también a entrar sin sesión iniciada, desde otro dispositivo o red, porque algunos ataques de redirección solo afectan a quien no está logueado como administrador. Si Google había marcado tu web como insegura, solicita una revisión desde Google Search Console una vez confirmes que está limpia.
  • Con Claude, puedes pedirle:

Prompt · Paso 9

Vuelve a comparar todos los archivos de esta instalación contra los paquetes oficiales de WordPress, cada plugin y el tema activo, y confírmame si queda alguna diferencia.
Los escáneres online son una ayuda, no una garantía
Puedes apoyarte también en escáneres adicionales como VirusTotal o Quttera para tener una segunda opinión rápida, pero ningún escáner automático es 100% fiable: pueden dar falsos negativos si el malware está bien camuflado. No los uses como única prueba de que el sitio está realmente limpio.
07

Protege tu WordPress con Wordfence

  • Instala Wordfence desde el repositorio oficial de plugins y actívalo. Ve a Wordfence → Todas las opciones → Opciones de exploración → Opciones generales, y activa todas las casillas disponibles para que el análisis sea lo más completo posible. Lanza un primer escaneo completo desde Wordfence → Analizar → Iniciar una nueva exploración, y revisa cualquier archivo que marque como crítico antes de dejarlo pasar.
  • Activa el firewall de aplicación web que incluye Wordfence, que bloquea intentos de subida de shells y accesos a URLs conocidas de backdoors antes de que lleguen a ejecutarse, además de la protección contra fuerza bruta limitando el número de intentos de inicio de sesión, y la autenticación en dos pasos para todas las cuentas de administrador. Configura escaneos programados periódicos, no solo el primero, y evita instalar dos plugins de seguridad a la vez, ya que suelen entrar en conflicto y consumir muchos recursos sin aportar protección real extra.
⚠️
No dupliques plugins de seguridad
Evita instalar dos plugins de seguridad a la vez: suelen entrar en conflicto y consumir muchos recursos sin aportar protección real extra.
08

Cómo evitar que vuelva a pasar

  • Mantén WordPress, plugins y temas siempre actualizados, sin excepciones, y no uses nunca versiones «nulled». Cambia la URL por defecto de acceso a wp-admin, restringe el acceso a phpMyAdmin por IP, y elimina cualquier plugin de gestión de archivos que no uses activamente. Configura copias de seguridad automáticas y diarias, comprueba de vez en cuando que se pueden restaurar, y revisa los permisos de archivos y carpetas: 644 para archivos, 755 para carpetas, nunca 777. Y no olvides el punto del que partía esta guía: mantén también tu propio ordenador limpio y actualizado, porque de nada sirve blindar el servidor si las contraseñas se filtran desde tu equipo.

Permisos correctos, siempre
Revisa los permisos de archivos y carpetas: 644 para archivos, 755 para carpetas, nunca 777.
09

Checklist final

  • Copia de seguridad antigua probada primero, comprobando que su fecha es anterior a la infección, con los datos nuevos (pedidos, clientes, contenido) rescatados aparte antes de restaurar.
  • Contraseñas de WordPress, base de datos, hosting y FTP cambiadas, y accesos sospechosos revocados.
  • Claves de wp-config.php (salts) regeneradas.
  • Acceso a phpMyAdmin restringido por IP, y plugins de gestión de archivos no reconocidos eliminados.
  • Ordenador de gestión del sitio analizado con antivirus.
  • Núcleo de WordPress reinstalado desde wordpress.org.
  • Carpeta wp-content/uploads revisada y sin archivos .php.
  • Plugins y temas reinstalados desde fuentes oficiales, ninguno «nulled».
  • Base de datos revisada: wp_posts, wp_options y usuarios administradores.
  • Sitio escaneado con Wordfence, Sucuri SiteCheck y algún escáner adicional, y comprobado en Google Safe Browsing.
10

Preguntas frecuentes

¿Debo restaurar una copia de seguridad o limpiar el WordPress paso a paso?

Si tienes un backup de antes de la infección, restaurarlo es la vía más rápida, aunque perderás cualquier pedido, usuario o contenido creado después de esa fecha. Si no tienes backup limpio, o el sitio se reinfecta tras restaurar, hay que seguir el proceso completo de limpieza manual.

¿Por dónde entran normalmente los atacantes en un WordPress?

Las causas más habituales son una vulnerabilidad conocida sin parchear en el núcleo, un plugin o un tema, contraseñas débiles o reutilizadas, phishing, malware en el propio ordenador que gestiona la web, o un servidor compartido mal aislado.

¿Puede Claude limpiar mi WordPress hackeado por sí solo?

No completamente: Claude puede acelerar tareas como comparar archivos o revisar la base de datos, pero no sabe qué es «normal» en tu web concreta ni decide qué borrar. Hace falta guiarlo con instrucciones concretas y revisar sus hallazgos antes de aplicar cambios.

¿Cómo conecto Claude a mi WordPress?

Se instala un plugin como Novamira, que expone un servidor MCP en tu instalación, y luego se conecta desde Claude Desktop, Claude.ai o Claude Code mediante inicio de sesión OAuth con tu usuario de WordPress. El acceso se puede revocar en cualquier momento desde el panel del plugin.

¿Cómo compruebo que mi WordPress quedó realmente limpio?

Conviene escanear el sitio con más de una herramienta, como Wordfence y Sucuri SiteCheck, comprobar el dominio en Google Safe Browsing, y probar a entrar sin sesión iniciada desde otro dispositivo. Ningún escáner automático es 100% fiable, así que combinar varios reduce el riesgo de un falso negativo.

¿Cómo evito que vuelvan a hackear mi WordPress?

Mantén siempre actualizados WordPress, plugins y temas, evita versiones «nulled», restringe el acceso a phpMyAdmin por IP y revisa los permisos de archivos y carpetas. También es clave mantener limpio tu propio ordenador, ya que las contraseñas pueden filtrarse desde ahí aunque el servidor esté bien protegido.

11

Fuentes y recursos

Si te ha servido este articulo, te agradeceriamos un comentario

GRACIAS

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook
WhatsApp
Email
Twitter
LinkedIn

Articulos relacionados