Tus visitantes llegan a páginas de apuestas. Aparecen usuarios administradores que nadie creó. Google muestra una advertencia roja antes de entrar a tu web. O tu hosting la suspendió sin mucha explicación.
Si tu WordPress está hackeado, lo más importante es no improvisar. Borrar archivos al azar o pasar un plugin de seguridad y dar el problema por resuelto suele terminar en lo mismo: a los pocos días, la infección vuelve. Esta guía te muestra el orden correcto para limpiar tu web y, sobre todo, para cerrar la puerta por la que entraron.
Señales de que tu WordPress fue hackeado
Antes de actuar, confirma qué está pasando. Las señales más claras son:
- Google o tu antivirus marcan la web como peligrosa.
- Tu hosting suspendió la cuenta o te avisó de actividad sospechosa.
- La web redirige a otros sitios, sobre todo desde el celular o desde Google.
- Aparecen páginas, enlaces o usuarios que no creaste.
- Tus correos empiezan a llegar a spam, porque el servidor se está usando para enviar correo basura.
Anota qué ves, desde cuándo y qué cambios hiciste en los últimos días: un plugin nuevo, una actualización, un acceso que diste. Ese registro va a ser clave para encontrar el origen.
Paso 1: no borres nada todavía
La reacción natural es eliminar todo lo sospechoso. Pero antes de limpiar, haz una copia completa del estado actual, archivos y base de datos, aunque esté infectada. Te va a servir para analizar cómo entraron y como respaldo si algo sale mal durante la limpieza.
Si tienes un respaldo anterior a la infección, guárdalo aparte. Restaurarlo puede ser parte de la solución, pero no es toda la solución: si no cierras la puerta, el atacante vuelve a entrar por el mismo lugar.
Paso 2: corta los accesos
Cambia todas las contraseñas, no solo la de WordPress:
- usuarios administradores de WordPress,
- SFTP o FTP,
- el panel del hosting,
- la base de datos (y actualízala en
wp-config.php).
Después, regenera las claves de seguridad (las salts) en wp-config.php. Eso cierra todas las sesiones abiertas, incluida la del atacante. Revisa también la lista de usuarios y elimina cualquier administrador que no reconozcas.
Un detalle que suele pasarse por alto: si la contraseña se robó desde tu computador, cambiarla no sirve de mucho. Revisa con un antivirus los equipos desde donde se administra la web.
Paso 3: encuentra el malware
Aquí está la parte difícil. El malware moderno no está en un solo archivo: se esconde en varios lugares y muchas veces se regenera si dejas una sola pieza.
Escáneres. Usa uno externo, como Sucuri SiteCheck o VirusTotal, para ver lo que ve un visitante, y uno dentro de WordPress para revisar los archivos. Ninguno encuentra todo, pero juntos dan una buena primera foto.
Archivos del núcleo. Con WP-CLI, el comando wp core verify-checksums compara los archivos de WordPress con los originales de WordPress.org y te muestra cuáles fueron modificados.
Lugares donde se esconde. Revisa especialmente:
- archivos PHP dentro de
wp-content/uploads, donde normalmente solo debería haber imágenes y documentos, - el archivo
.htaccess, en la raíz y en otras carpetas, index.php, y elheader.php,footer.phpyfunctions.phpde tu tema,- tareas programadas (cron) que no reconozcas,
- la base de datos: scripts inyectados en entradas, páginas y opciones, y cambios en la URL del sitio.
Esta es la razón por la que pasar un plugin no basta. Muchas infecciones son polimórficas: cambian de forma para no ser detectadas y dejan puertas traseras que reinstalan el malware cuando lo borras.
Paso 4: limpia reemplazando, no “arreglando”
En lugar de editar archivos infectados uno por uno, reemplázalos por copias limpias:
- Núcleo de WordPress: sube de nuevo las carpetas
wp-adminywp-includes, de la misma versión que usas. Hazlo por SFTP y no desde el panel, porque el reinstalador del panel solo sobrescribe archivos y no elimina los que el atacante agregó. - Plugins y temas: reinstálalos desde sus fuentes oficiales. Elimina los que no uses.
- Plugins o temas “nulled” (versiones pirata de plugins de pago): elimínalos. Son una de las vías de entrada más comunes.
- Base de datos: limpia el contenido inyectado y revisa los usuarios.
Paso 5: descubre por dónde entraron
Si no sabes cómo entró el atacante, la web se vuelve a infectar. Las vías más comunes son:
- un plugin o tema desactualizado con una vulnerabilidad conocida,
- un plugin o tema pirata,
- contraseñas débiles o repetidas,
- otra web infectada en la misma cuenta de hosting,
- un computador infectado desde donde se administra la web.
Los registros del servidor (accesos, errores, inicios de sesión) suelen mostrar la entrada. Por eso el respaldo del Paso 1 es tan importante.
Paso 6: blinda tu web
Con la web limpia y la puerta identificada:
- Actualiza WordPress, los plugins y el tema.
- Cambia las contraseñas otra vez, ahora que el sitio está limpio.
- Activa la verificación en dos pasos para los administradores.
- Desactiva la edición de archivos desde el panel, agregando
define('DISALLOW_FILE_EDIT', true);enwp-config.php. - Da a cada usuario solo los permisos que necesita.
- Agrega un cortafuegos y bloqueo de intentos de acceso en el servidor.
- Programa backups fuera del servidor y monitoreo continuo.
Paso 7: recupera tu reputación en Google
Si Google marcó tu web, entra a Search Console, abre el informe de Problemas de seguridad y, cuando todo esté limpio, solicita una revisión explicando qué encontraste y qué hiciste. Según Google, la revisión puede tardar desde varios días hasta algunas semanas. No envíes otra solicitud mientras esperas la respuesta.
Revisa también si tu dominio o tu servidor aparecen en listas negras de correo, porque eso afecta la entrega de tus emails.
Cuándo pedir ayuda
Si la infección vuelve después de limpiarla, si no encuentras el origen o si la web vende todos los días, conviene que lo haga un equipo con experiencia. Cada día con la advertencia de Google es un día de ventas perdidas.
En ONconcept limpiamos webs WordPress hackeadas en archivos, base de datos y servidor, encontramos cómo entró el malware y cerramos esa puerta. Conoce nuestro servicio de seguridad WordPress.
Fuentes
- WordPress.org, FAQ My site was hacked: pasos oficiales después de un hackeo.
- WP-CLI, wp core verify-checksums.
- Google Search Central, Informe de problemas de seguridad: cómo solicitar una revisión.