Como limpiar y recuperar un WordPress hackeado o infectado

Si sospechas que tu sitio web WordPress ha sido infectado o hackeado de algún modo lo menos que querrás es saludos y abrazos, o exposiciones de motivos, así que vamos al grano a ver paso a paso qué hacemos si creemos o estamos seguros de que han infectado o hackeado nuestra web WordPress.

¿Cómo sé si han hackeado o infectado mi web WordPress?

Antes de nada deberías comprobar si realmente han hackeado o infectado de algún modo tu web WordPress.

Hay varios posibles síntomas de que tu web WordPress haya sido hackeada, estos son los más habituales:

  • Tu sitio se redirige a otra URL: Puede haber redirecciones indeseadas cuando un hacker añade un script que redirige a la gente a otro sitio cuando visitan el tuyo.
  • No puedes acceder: Antes de sacar conclusiones sobre el hackeo, asegúrate de que no se trata de que hayas olvidado tu contraseña. Si llegas a la conclusión de que el olvido de la contraseña no es el prlblema, es posible que un hacker haya cambiado tu contraseña para impedir el acceso o haya eliminado tu cuenta.
  • Caída repentina del tráfico: Esto puede ocurrir si un malware o troyano secuestra el tráfico de tu sitio WordPress y lo redirige. Las caídas de tráfico también ocurren si terminas en las listas de bloqueo de Google, algo que puede pasar si tu web es hackeada.
  • Tu sitio fue cambiado: El cambio de una página de inicio a una página estática con enlaces a sitios desagradables, o un pie de página con enlaces que no añadiste tú, son todas buenas señales de hackeo. Los cambios en el sitio pueden ocurrir si un hacker obtiene acceso a tu administrador, al sistema de archivos o – menos frecuente – a la base de datos. Asegúrate de comprobar con los otros administradores que tengan acceso a tu sitio para confirmar que no han hecho los cambios ellos mismos.
  • Se añaden enlaces erróneos a su web: Al igual que el cambio de tu sitio, esto puede suceder si un hacker tiene acceso a tu administrador, al sistema de archivos o la base de datos.
  • Scripts de archivos desconocidos: Si encuentras esto, podría significar que tu web fue comprometida por un hacker que añadió malware o algún otro software malicioso. Esto puede ocurrir si tu web es susceptible de ataques (por ejemplo, si tienes instalado un tema, plugin o WordPress obsoleto o inseguro).
  • Cuentas de usuario sospechosas en WordPress: Tu sitio puede estar comprometido y un hacker ha creado una nueva cuenta en el administrador. Si tienes activa la opción de registro en tu sitio, asegúrate de comprobar que no se trata de un simple usuario. Normalmente, una cuenta de hacker tendrá un perfil de administrador.
  • Imposibilidad de enviar o recibir correos electrónicos con WordPress: Generalmente provocada por el hackeo del servidor de correo de WordPress.
  • Aumento de las tareas no programadas: Si un hacker consigue acceso completo podría aumentar las tareas programadas en tu servidor web, incluyendo todo tipo de ejecuciones malintencionadas.
  • Recibes notificaciones del plugin de seguridad: El plugin de seguridad podría darte informes de seguridad y te permite conocer la actividad sospechosa. Si se producen algunas banderas rojas, es posible que hayas sido hackeado.
  • Una web lenta o que no responde: Un ataque DDoS puede provocar que tu web muestre todo tipo de errores de conexión o simplemente que su velocidad de carga sea excesivamente lenta repentinamente.
  • La empresa de hosting ha desactivado tu web: En ocasiones, hay empresas de hosting compartido que, para garantizar la seguridad del resto de webs, pueden llegar a desactivar completamente tu web, a veces notificándotelo, y no siempre con antelación.
  • Google advierte de que tu sitio puede haber sido hackeado: Google puede mostrar una señal de advertencia cuando se busca tu sitio. Esto puede ser una indicación de que el mapa del sitio de WordPress o parte de la instalación ha sido hackeada, de cualquiera de los métodos anteriores.

¿Cómo saber qué tipo de infección o hackeo es?

Esto puedes hacerlo utilizando herramientas de escaneo, que pueden localizar códigos maliciosos. Además, comprueba si hay alguna vulnerabilidad en los archivos del núcleo de WordPress, ubicados en las carpetas wp-admin, wp-includes y otras carpetas raíz.

Entre las muchas herramientas online que puedes encontrar te recomiendo la comprobación de sitios de Sucuri, con una enorme base de datos de posibles infecciones, hackeos y malware.

Otros servicios online de detección de vulnerabilidades, hackeos y malware que puedes utilizar son los siguientes:

  • Mozilla Observatory – Analiza la seguridad de tu web en su conjunto, ofreciendo detalles de vulnerabilidades y oportunidades.
  • Inmuniweb – Completo servicio online gratuito de análisis de vulnerabilidades de seguridad, incluyendo específicas de WordPress.
  • WordPress Security Scanner – Servicio de detección de vulnerabilidades específico para sitios WordPress.
  • Navegación segura de Google – Herramienta de Google para comprobar si tu web tiene contenido no seguro.

Además, siempre debes revisar los archivos de registro (logs) del servidor, pidiendo acceso a los mismos si fuera necesario a tu empresa de hosting, para analizar posibles accesos no reconocidos, modificaciones de archivos, conexiones a URLs desconocidas y sospechosas, etc. Esta puede ser una fantástica fuente de detección del origen y acciones del hackeo o infección de tu WordPress.

¿Qué hacer si estoy recibiendo un ataque DDOS?

Si el problema es que estás recibiendo un ataque de denegación de servicio lo que tienes que hacer es tratar de remitir en lo posible el tráfico desde las IPs atacantes.

Para ello tienes algunas herramientas que pueden ayudarte.

Bloquea IPs atacantes desde el hosting

A falta de otra herramienta automática, si no dispones de ninguna, o simplemente si no puedes siquiera acceder a tu web de lo lenta que carga, puedes bloquear el tráfico desde las IPs desde las que estés recibiendo el ataque.

Si tienes tu web alojada en SiteGround puedes hacerlo desde la sección de seguridad, pudiendo añadir IPs completas (123.123.123.123) o rangos, usando asteriscos como comodines (123.123.123.*).

Si tu web está en otro hosting, que tenga cPanel, también dispones de esta herramienta.

Bloquea IPs atacantes desde la CDN (CloudFlare)

Si el sitio atacado está usando CloudFlare como CDN puedes activar un par de utilidades para minimizar e incluso parar el ataque.

En la sección del firewall tienes el llamado modo Bot Fight, un desafío en JavaScript que evita en gran medida posibles atacantes, solo tienes que activarlo.

Y mucho más completo y radical es indicar a Cloudflare que el sitio está bajo ataque, activando el modo Under Attack, que ejecutará una comprobación por JS antes de cada petición de visualización de páginas de la web.

También puedes bloquear IPs manualmente desde el firewall de Cloudflare pero el modo Under Attack es muy efectivo, y mucho más rápido.

¡Confirmado, me han hackeado! ¿Qué hago?

Si has confirmado que tu web WordPress está comprometida de algún modo, hackeada, infectada, o como lo quieras llamar, te aconsejo seguir estos pasos, sin dejarte ni uno solo.

En mi experiencia de muchos años, cada vez que una web hackeada no queda limpia del todo y – normalmente – vuelve a ser hackeada, es debido a que se ha omitido alguno de estos pasos.

Ante todo, mucha calma

Esto es fundamental para que no te saltes ningún paso y para que realices todos los demás procedimientos de manera rigurosa y precisa.

Es normal estar preocupado cuando detectas que han infectado tu WordPress de algún modo, pero el mal ya está hecho, y que puedas aplicar la mejor solución posible depende inicial y fundamentalmente de que no te pongas nervioso, respires hondo, y te pongas manos a la obra, lo más tranquilo posible.

Tienes una tarea importante, pero sobre todo metódica, por delante, y no podrás hacerla bien en un estado de nervios, preocupado o con prisas. No antepongas tu urgencia de solucionar el problema a la importancia del mismo.

Un hacker se ha tomado su tiempo para infectar tu web WordPress, y si no haces tú lo mismo seguramente pasarás algo por alto y todo el tiempo y trabajo empleado habrá sido en vano.

Cierra el resto de la agenda, apaga el teléfono, evita todo tipo de distracciones y asume que vas a dedicar al menos el resto del día a limpiar tu web WordPress, nada más, y nada menos, no tienes nada más importante que hacer.

En la seguridad no caben las prisas, sino el método y la confirmación de realizar cada paso necesario con la dedicación, atención y concentración requerida en cada momento.

Muestra una página de web en mantenimiento

Algo que solemos olvidar muchas veces es que los visitantes no saben que nuestra web está hackeada, y esto en ocasiones puede suponer un riesgo también para los usuarios, así que mientras realizamos la limpieza y recuperación de nuestra web WordPress infectada nunca está de más ofrecer una página que indique el sitio está en mantenimiento.

He visto por ahí guías de recuperación de webs hackeadas que dicen que instales un plugin de web en mantenimiento pero la realidad es que no siempre vas a tener acceso a tu WordPress, así que lo más fácil es crear un archivo llamado index.html, subirlo a la carpeta raíz de tu servidor, y poner un texto de aviso.

Aquí te dejo un ejemplo sencillo de lo que podría contener, y que puedes usar si no tienes algo mejor:

<!doctype html>
<title>Web en mantenimento</title>
<style>
body { text-align: center; padding: 150px; }
h1 { font-size: 50px; }
body { font: 20px Helvetica, sans-serif; color: #333; }
article { display: block; text-align: left; width: 650px; margin: 0 auto; }
a { color: #dc8100; text-decoration: none; }
a:hover { color: #333; text-decoration: none; }
</style>
<article>
<h1>¡La web está en mantenimiento - Estaremos pronto de vuelta!</h1>
<div>
<p>Sentimos las molestias, estamos realizando algunas tareas de mantenimiento en la web en este momento. Si necesitas algo de nosotros puedes <a href="mailto:[email protected]">contactarnos por email</a>, la web volverá a estar activa pronto</p>
<p>&mdash; El equipo</p>
</div>
</article>

Haz copia de seguridad de la web WordPress hackeada

Este es un paso que mucha gente no realiza y es importantísimo para poder analizar todos los posibles elementos que puedan haber provocado la vulnerabilidad, así como para la revisión exhaustiva de archivos infectados, etc.

También, en caso de necesidad, desde esta copia de seguridad, puedes recuperar, tras una revisión exhaustiva de los mismos, por supuesto, algunas configuraciones, imágenes y contenidos que vayas a necesitar, si no dispones de copias de seguridad limpias de tu web.

Otra medida que puedes hacer, por si tus contenidos no hubiesen sido comprometidos, es exportar las entradas, páginas, productos, etc. desde WordPress, en la sección de administración de Herramientas → Exportar.

Así que haz una copia de seguridad de la web WordPress ya infectada y guárdala a buen recaudo, para su análisis posterior.

Si tienes copia de seguridad, restaura una copia de seguridad limpia

Si tienes copias de seguridad de tu web WordPress es el momento de restaurar una copia de la que estés seguro que no está infectada, para recuperar tu web.

Solo son 2 sencillos pasos:

  1. Borra TODA la instalación infectada, al completo.
  2. Restaura la copia de seguridad limpia.

Si no tienes copia de seguridad, instala todo desde cero

En caso de que no tengas ninguna copia de seguridad que estés totalmente seguro de que está totalmente limpia de infecciones o hackeos, entonces hay que instalar todo desde cero:

  1. Instala la última versión WordPress segura usando la descarga oficial, sin atajos.
  2. Instala la última versión segura del tema usando la descarga oficial y la licencia si fuese necesario.
  3. Instala las últimas versiones seguras de todos los plugins que necesites.
  4. Si tienes una copia limpia de las imágenes y archivos de la carpeta /uploads/ súbela, pero solo si estás totalmente seguro.
  5. Si tienes una exportación limpia de entradas, páginas, productos, etc. impórtala (Herramientas → Importar), pero solo si estás seguro de que no tienen nada inyectado.

Analiza tu ordenador y el de todos los administradores

También puede suceder que el origen de la vulnerabilidad provenga de un ordenador infectado por malware o puertas traseras, así que nunca sobra analizar con un buen software antivirus y malware los ordenadores de todos los que tengan acceso de administrador a la web o el panel del hosting, pues cualquier cambio que hagas podría no servir de nada si sus ordenadores van a exponer las contraseñas, antiguas o nuevas.

Aquí te dejo un par de antivirus gratuitos por si no usas ninguno aún:

Cambia todas las contraseñas de acceso a TODO

Este es quizás el paso más importante y que casi nadie se toma lo suficientemente en serio, en toda su amplitud.

Debes cambiar las contraseñas de acceso a absolutamente todo lo relacionado con tu web WordPress, y una lista exhaustiva, pero quizás no completa, sería la siguiente:

  • Contraseñas de acceso de usuarios SQL a TODAS las bases de datos, incluso de las – a priori – no infectadas. Más seguro aún es borrar los usuarios SQL actuales y crear todos nuevos, con contraseñas nuevas (esto es lo que suelo hacer yo).
  • Contraseñas y usuarios de acceso FTP y SFTP. Borra TODOS los accesos actuales y crea nuevos, solo los exclusivamente necesarios.
  • Contraseñas de acceso a WordPress de TODOS los usuarios. No es suficiente con enviar un correo electrónico para que las cambien, fuerza el cambio o cámbialas todas en masa.
  • Contraseñas de correo electrónico de TODOS los usuarios.
  • Contraseñas de acceso a servicios que interactúen con tu web, como CDN, cuentas de WordPress.com, GMail, licencias de plugins y temas, servicios de newsletter, etc.

Vuelve a analizar tu web para buscar vulnerabilidades

Ahora que has subido copias (supuestamente) limpias de todo debes volver a utilizar las herramientas de detección que hemos visto antes, para comprobar que el sitio ya no está infectado y no hay contenido comprometido.

Haz una copia de seguridad de la web recién instalada y limpia

Si no vuelves a encontrar malware, o cualquier hackeo o puerta trasera es momento de hacer una copia de seguridad de la web WordPress totalmente limpia, y etiquetarla claramente por si tienes que volver a usarla para recuperar el sitio en el futuro.

Cómo eliminar el malware y limpiar el hackeo de tu web WordPress

Da igual cómo recuperes tu web o si no has podido hacerlo, siempre debes eliminar el hackeo, malware, puerta trasera o lo que sea que haya comprometido tu sitio WordPress.

Los siguientes pasos te ayudarán a limpiar tu web si no has podido recuperar copias limpias de tu contenido, y siempre te servirán para comprender mejor tu instalación y aprender cómo proteger mejor tu web para evitar futuras infecciones o hackeos.

El siguiente proceso sirve igual para tu instalación comprometida como para la copia de seguridad del sitio infectado que hicimos en el primer paso de esta guía.

En este proceso de limpieza y desinfección de la web WordPress no vamos a emplear plugins, pues debemos partir de la idea de que también pueden estar comprometidos los plugins de seguridad en una instalación hackeada, y podrían mostrar falsos positivos, además de ocultar las vulnerabilidades, así que descarta cualquier tutorial que encuentres que te recomiende hacer este proceso usando plugins WordPress de seguridad.

Comprobación y limpieza de archivos de WordPress infectados o hackeados

El primer paso sería buscar en los archivos de la instalación de WordPress, plugins, temas y otras carpetas cualquier archivo que haya podido infectarse o contener malware o puertas traseras.

Hay varias maneras de comprobarlo…

Compara tu instalación de WordPress frente a una instalación limpia

Compara tu instalación con un WordPress recién descargado, para observar si tu instalación contiene archivos que no son de la instalación estándar o si han cambiado.

Si detectas archivos que no están en la instalación oficial ábrelos para analizar si son archivos que tú subiste para algún propósito concreto y, ante la duda, descarga una copia y bórralos.

Debes hacer esto con todas las carpetas, y sus subcarpetas, de la instalación de WordPress (wp-admin, wp-includes, wp-content, etc.)

El modo más rápido y recomendable es usar un gestor de archivos (FTP, administrador de archivos del hosting, administrador de archivos local, etc.) y, ordenando los archivos por la fecha de la última modificación y última inclusión, buscar archivos diferentes, con distinto peso, distinto contenido.

Antes de empezar esta tarea es conveniente, como te recomendé antes, analizar los registros (logs) del servidor, además de empezar buscando los archivos que los escáneres de seguridad hayan detectado como malware o infectados.

Busca archivos o tipos de archivo sospechosos concretos

Si ya tienes claro qué nombres de archivo o que extensiones de archivo buscar, si tienes acceso por SSH a tu instalación puedes hacer una búsqueda del archivo o tipo de archivo que buscas.

Aquí tienes unos ejemplos de posibles búsquedas:

//Buscar y mostrar todos los archivos html
find . -type f -name '*.html'
//Buscar y mostrar todos los archivos php
find . -type f -name '*.php'
//Buscar y mostrar todos los archivos js
find . -type f -name '*.js'
//Buscar un archivo concreto
find . -type f -name 'no-soy-sospechoso-que-va.php'

Una búsqueda diferente sería localizar aquellos archivos que hayan sido modificado o subidos recientemente. Por ejemplo, con el siguiente comando tendremos una lista de los archivos que han sido modificados los últimos 7 días:

find .mtime -7 –ls | less

A partir de esta lista seguiríamos buscando, analizando, e incluso abriendo archivos para comprobar su integridad y localizar el código malicioso.

Busca textos concretos

Si sabemos exactamente que texto o URL buscar, bien porque son URLs a las que redirige nuestra web o porque es un texto no deseado que se muestra en alguna parte, podemos realizar una búsqueda de esa cadena de texto concreta para detectar en qué archivo de nuestra instalación está inyectado.

De nuevo usaríamos la interfaz de comandos para realizar la búsqueda, por ejemplo:

grep –Ril www.no-robamos-bitcoins.com

Este comando mostrará una lista de los archivos que contengan la URL www.no-robamos-bitcoins.com para que puedas localizarlos rápidamente y limpiar el código.

Aparte de esa cadena de texto tan obvia de la URL, aquí tienes una lista de códigos y textos que se suelen utilizar en las webs WordPress hackeadas. Puedes utilizar la herramienta grep para buscar lo siguiente:

  • base64_decode
  • is_admin
  • eval
  • gzuncompress
  • passthru
  • exec
  • shell_exec
  • assert
  • str_rot13
  • system
  • phpinfo
  • chmod
  • mkdir
  • fopen
  • fclose
  • readfile

Una forma rápida de conseguirlo utilizando grep es a través del siguiente comando grep, que busca archivos de forma recursiva (sigue cualquier enlace simbólico), busca las cadenas que coinciden con la expresión regular especificada, y devuelve el texto coincidente así como el número de línea donde se produjo la coincidencia.

grep -RPn &quot;(base64_decode|is_admin|eval|gzuncompress|passthru|exec|shell_exec|assert|str_rot13|system|phpinfo|chmod|mkdir|fopen|fclose|readfile) *\(&quot;

Eso sí, ten en cuenta que parte de este código también puede ser utilizado en código legítimo, por lo que hay que analizar el código adecuadamente y entender cómo se está utilizando antes de marcar algo como una infección o un hack.

Comprobación y limpieza de bases de datos de WordPress infectadas o hackeadas

Para revisar y limpiar la base de datos de tu sitio WordPress utiliza la herramienta de administración de bases de datos MySQL de tu hosting, que normalmente será phpMyAdmin.

  1. Busca el contenido sospechoso (palabras clave de spam, textos no deseados, enlaces, etc.).
  2. Abre la tabla que contenga contenido sospechoso.
  3. Elimina manualmente cualquier contenido sospechoso.
  4. Realiza una prueba para comprobar que tu sitio sigue funcionando después de los cambios.

Los principiantes pueden utilizar la información sobre la carga útil que proporcionan los escáneres de malware que vimos antes. Los usuarios intermedios también pueden buscar manualmente las funciones maliciosas más comunes de PHP, como eval, base64_decode, gzinflate, preg_replace, str_replace, etc.

Comprobación y limpieza de puertas traseras

Otro método que los hackers utilizan para entrar ilegalmente en tu web es mediante funciones PHP de puerta trasera que se inyectan en archivos como wp-config.php y .htaccess, así como con directorios como /themes/, /plugins/, o /uploads/.

Las funciones PHP más comunes, como base64, eval, exec y preg_replace, se utilizan para las puertas traseras y para el uso legítimo de la mayoría de los plugins de WordPress.

Por lo tanto, además de evitar cualquier ruptura del sitio, hay que limpiar adecuadamente las puertas traseras para evitar cualquier reinfección de la web.

Cómo quitar las advertencias de sitio no seguro

Para finalizar, es conveniente que no olvides anular cualquier advertencia de que el sitio WordPress no es seguro, así que, cuando hayas terminado de limpiar y recuperar la web WordPress hackeada, haz lo siguiente:

  • Si tu hosting bloqueó la web contacta con ellos para que vuelvan a activarla y disponible.
  • Si el navegador Chrome mostraba advertencias de que visitar la web no era seguro, accede a la Google Search Console para solicitar una revisión de la web.

A partir de aquí ya dependerá de Google lo que tarde el rastreo y la eliminación de la advertencia, que podrás comprobar visitando la web o desde la misma Search Console de Google.

De hecho, si aún no has dado de alta tu web en la Search Console de Google te recomiendo hacerlo y revisar de manera periódica la sección de seguridad de la herramienta, para anticiparte a los problemas.

Qué hacer después de limpiar y recuperar la web WordPress hackeada

Cuando termines de limpiar y hayas recuperado la web WordPress infectada o hackeada tu principal misión es evitar en lo posible que esto vuelva a suceder.

Para ello mi recomendación es la siguiente:

  1. Utiliza y fuerza siempre la conexión segura HTTPS mediante un certificado SSL.
  2. Activa, al menos, las cabeceras de seguridad HSTS y CSP.
  3. Pon en marcha una buena estrategia de copias de seguridad de WordPress, para evitar disgustos en el futuro.
  4. Instala un buen plugin de seguridad para WordPress.
  5. Realiza o contrata un buen mantenimiento de WordPress, manteniendo siempre todo actualizado.
  6. Impón el cambio periódico de contraseñas y que estas sean fuertes.
  7. Instala un plugin de registro de actividad, si no incorpora esta funcionalidad el plugin de seguridad, para controlar y analizar el tráfico y uso de la web.
  8. Protege contra escritura los archivos de configuración.
  9. Analiza si tu empresa de hosting hace lo suficiente para proteger tu sitio y, en caso contrario, cambia a una empresa de hosting de confianza.
  10. Analiza con frecuencia toda la instalación para encontrar posibles vulnerabilidades, usando las herramientas que hemos visto al principio, o incluso contratando un servicio de exploración periódico automatizado.

Espero haberte ayudado a limpiar y recuperar tu web WordPress si ha sido hackeada o infectada, si tienes alguna duda puedes dejarla abajo en la sección de comentarios, o si lo prefieres, contratar nuestro servicio de recuperación de webs WordPress hackeadas.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 5

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en los medios sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

Sobre el autor

1 comentario en “Como limpiar y recuperar un WordPress hackeado o infectado”

  1. Buen artículo, Fernando. Sólo tendría una duda. Si hemos podido realizar el proceso de sustituir la web hackeada por una copia limpia de forma sencilla y rápida, ¿hacemos aun así una revisión de qué le ocurrió a la web hackeada?
    Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Información base sobre privacidad:
  • Responsable: Fernando Tellado ([email protected])
  • Fin del tratamiento: Moderación de comentarios para evitar spam
  • Legitimación: Tu consentimiento
  • Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
  • Derechos: Acceso, rectificación, portabilidad, olvido

 

Ir arriba
Ir al contenido