Limpiar un Sitio de WordPress Hackeado

Manuel Campos

Si tienes un sitio de WordPress y has descubierto que tu sitio ha sido hackeado, lo mejor que puedes hacer es restaurar tu sitio usando un respaldo.

En caso de no contar con un respaldo o que usar un respaldo no sea una buena opción, debes remover cualquier indicio de Malware.

Este proceso se lo puede dejar en manos de un profesional, pero tambien es un proceso que tu mismo puedes realizar.

Estos consejos te pueden ayudar a entender mucho más del proceso de limpieza de tu sitio de WordPress hackeado.



¿Cómo Saber si mi Sitio ha sido Hackeado?

Lo primero que debes saber es si tu sitio realmente ha sido hackeado y estos son algunos de los indicadores:

  1. El buscador de Google le dice a los usuarios que el sitio contiene código malicioso y que puedes ser víctima de un ataque de phishing.
  2. Tu proveedor de hosting ha suspendido tu cuenta por lo que el sitio no es visible al público.
  3. Google Search console indica que malware fue encontrado en tu sitio.
  4. Tu scanner de Malware ha detectado que tu sitio se encuentra comprometido
  5. Los visitantes de tu sitio están siendo redirecionados a otro sitio asociado con Malware.
  6. Tiene entradas y enlaces de Spam en tu sitio.
  7. No puedes entrar a tu sitio.
  8. Usuarios fueron creados sin tu consentimiento.
  9. Tu sitio despliega banners maliciosos.

¿Las Posibles Causas del Hackeo?

Debes pensar que permitió que te hackearan.

Hazte estas preguntas antes de seguir:

Plugins

  1. ¿Tienes plugins desactualizados?
  2. ¿Tienes plugins de dudosa procedencia o nulos?
  3. ¿Tienes plugins que tienen una vulnerabilidad tipo cero?

Temas

  1. ¿Usas un tema de WordPress desactualizado?
  2. ¿Usas un tema de wordpress de dudosa procedencia o nulos?
  3. ¿Tienes temas sin usar en el sitio?
  4. ¿Tienes un tema que tienen una vulnerabilidad tipo cero?

Hosting y WordPress

  1. ¿No has actualizado WordPress a la Versión más reciente?
  2. ¿Tu hosting no usa una versión reciente de PHP?
  3. ¿La versión de tu base de datos está desactualizada?
  4. ¿Tu hosting no implementa reglas de seguridad a nivel del servidor?
  5. ¿Estas usando hospedaje web compartido que permite la contaminación de sitios?
  6. ¿Estaba el archivo XMLRPC expuesto a ataques?

Contraseñas

  1. ¿Cuando cambiaste la contraseña de WordPress?
  2. ¿La contraseña de tu hosting es difícil de descifrar?
  3. ¿La contraseña de tu base de datos es difícil de descifrar?
  4. ¿La contraseña de acceso SFTP es difícil de descifrar?
  5. ¿El correo asociado con tu cuenta de hosting tiene una contraseña compleja?
  6. ¿Usas protección de dos factores cuando puedes en tus cuentas?

Puede ser que el hackeo haya sido causado por otro motivo pero esa es una buena lista para empezar.


Lo que Debes Saber antes de Limpiar un Sitio

Estas son cosas que debes saber antes de limpiar tu sitio

  • Si usas un tema de procedencia dudosa, tiene que ser removido por lo que debes valorar comprar el tema directamente de los desarrolladores o usar un tema gratuito del repositorio de WordPress.
  • Los plugins que son de dudosa procedencia deben ser reemplazados por plugins comprados directamente de los desarrolladores o instalar plugins gratuitos con funciones similares.
  • Si tienes la posibilidad de mover tu sitio a otro servidor, deberías considerarlo, paneles de Cloud Hosting como Cloudways permite crear un servidor adicional y borrar el viejo una vez que todo se encuentra solucionado.
  • Debes tener acceso a tu instalación de WordPress por medio de FTP. En tu panel de hosting, puedes encontrar esos credenciales.
  • Debes descargar el archivo de instalación de WordPress más reciente desde wordpress.org
  • Si tratas de revisar los archivos que fueron cambiados recientemente, ten presente que el hack puede ser tan bueno que muchos de los archivos insertados en tu instalación de WordPress pudieron haber sido preparados para dar la impresión que no hay reciente cambios en ellos.
  • En ocasiones restaurar un respaldo no es una buena solución debido a que el hacker pudo haber tenido acceso al sitio y decidió esperar algunas semanas para realizar el ataque que es visible al administrador y a los usuarios o que simplemente tardaste mucho tiempo en date cuenta.
  • Escanea tu computadora en busca de un KeyLogger que podría estar registrando todo lo que escribes en tu computadora.
  • Pensar que la solución es simplemente remover los problemas visibles es lo más insensato que puedes hacer.
  • Si usas CloudFlare, crea un cortafuegos para que el hacker no pueda acceder a tu sitio, si limpias tu sitio y te vuelven a hacker, esta de nuevo en primera base.
  • Si lo único afectado fue tu instalación de WordPress, limpiar el sitio es relativamente fácil. Si el problema es la base de datos, eso requiere de un conocimientos más técnicos.
  • Instala Local by Flywheel o cualquier otro software que permita analizar el sitio en un ambiente local

Pasos para Limpiar un Sitio de WordPress Hackeado

Estos son los pasos que debe seguir para volver tu sitio a la normalidad

#1 Realizar un Respaldo de tu Sitio

Una vez que estás seguro que tu sitio ha sido hackeado debes hacer un respaldo de tu sitio.

Para esto puedes usar cualquier plugin de respaldos que encuentres en WordPress.

Solo asegúrate que ese plugin no te presente inconvenientes a la hora de restaurar/migrar tu sitio usando ese respaldo


#2 Restaura el Sitio en un Ambiente Local

Una vez que tienes un respaldo, crea un sitio de WordPress usando Local by Flywheel.

Una vez que el sitio ha creado en un ambiente local, restaura tu sitio usando el mismo plugin que usaste para crear un respaldo en el paso #1

Ahora puedes realizar los cambios que necesites de manera pronta.


#3 Remover y Reemplazar Archivos

Debido a que revisar todos los archivos puede ser una tarea abrumadora, debes tratar de reemplazar cuánto archivo puedas sin comprometer la seguridad y funcionalidad de tu sitio.

Lo primero que debes hacer es descomprimir el ZIP de WordPress descargado de WordPress.org

Ahora ve a la carpeta de tu sitio de WordPress en tu ambiente local, borra todos los archivos con excepción de WP-config.php y WP-Content

Una vez que esos archivos han sido borrados, debes reemplazarlos por las copias originales obtenidos de wordpress.org directamente.

Una vez hecho esto debes tener presente que puede haber malware en la base de datos, en la carpeta “wp-content” y en el archivo “wp-config.php”

No se puede borrar wp-config.php porque este tiene detalles claves para el funcionamiento de WordPress como lo es la clave de la base de datos.

La carpeta “wp-content” no debe ser borrada porque contiene los imágenes o archivos que has subido a tu sitio.


#4 Revisar WP-Config.php

El archivo wp-config.php luce de esta forma:

<?php
/**
 * The base configuration for WordPress
 *
 * The wp-config.php creation script uses this file during the installation.
 * You don't have to use the web site, you can copy this file to "wp-config.php"
 * and fill in the values.
 *
 * This file contains the following configurations:
 *
 * * Database settings
 * * Secret keys
 * * Database table prefix
 * * ABSPATH
 *
 * @link https://wordpress.org/documentation/article/editing-wp-config-php/
 *
 * @package WordPress
 */

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** Database username */
define( 'DB_USER', 'username_here' );

/** Database password */
define( 'DB_PASSWORD', 'password_here' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

/**#@+
 * Authentication unique keys and salts.
 *
 * Change these to different unique phrases! You can generate these using
 * the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
 *
 * You can change these at any point in time to invalidate all existing cookies.
 * This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

/**#@-*/

/**
 * WordPress database table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 */
$table_prefix = 'wp_';

/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.
 *
 * For information on other constants that can be used for debugging,
 * visit the documentation.
 *
 * @link https://wordpress.org/documentation/article/debugging-in-wordpress/
 */
define( 'WP_DEBUG', false );

/* Add any custom values between this line and the "stop editing" line. */



/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', __DIR__ . '/' );
}

/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';

Si no puedes discernir si este tiene malware,

  1. Toma nota del usuario, la contraseña , el hostname, el prefijo, las salt keys.
  2. Borra sus contenidos
  3. Copia los contenidos desde el repositorio de Github
  4. Pega la información en el archivo
  5. Reemplaza los datos tomados en el punto#1
  6. Revisa que el sitio a nivel local funcione.

#5 Revisar WP-Content /Plugins

Ahora debes ir a la carpeta llamada “wp-content” y debes borrar todas las carpetas con la excepción de las carpetas uploads, plugins y themes:

Examinar los plugins de forma manual es un tarea igual de abrumadora que revisar la instalación.

  1. Haz un inventario rápido de los plugins del sitio.
  2. Borrar la carpeta de los plugins
  3. Crear una nueva carpeta con el mismo nombre.
  4. Ve al escritorio de WordPress, luego a plugins.
  5. Instalar la versión más actualizada de cada uno de los plugins gratuitos y premium.
  6. Revisa que el sitio a nivel local funcione.

Nada de lo que hayas hecho con los plugins se perderá ya que los datos están almacenados en la base de datos.

En este punto, ya podes dejar de sospechar de esa carpeta


#6 Revisar WP-Content /Theme

Esto son los pasos para deshacerte del malware en los temas.

  1. Ve al escritorio de WordPress local
  2. Borras los temas que no estés usando.
  3. Instala cualquier tema y activalo
  4. Borra el tema que estabas usando.
  5. Instala el tema que estabas usando.

Ya con esto, podemos estar seguros que no hay presencia de Malware en la carpeta de temas.


#6 Revisar WP-Content /Uploads

En ocasiones, puede ser que encuentres malware en las imágenes.

Ve a la librería de medios en tu escritorio de WordPress y revisa el:

  • Texto Alternativo
  • Caption
  • Description

En ocasiones, estas imágenes pueden contener scripts de redirección o de ventanas son mensajes engañosos.

Si encuentras scripts debes removerlos manualmente o removerlos de manera pronta usando un plugin como “better search – replace”

El proceso automático con Better Search Replace requiere identificar patrones en los scripts encontrados.


#7 Revisa la Base de Datos

Asegurate de cambiar el prefijo de la base de datos y de revisar las tablas en busca de código malicioso.

Las tablas de WordPress por default son 12. Los plugins agregan más. Esto requiere una intervención manual.

Realizar esta tarea sin saber cómo realizar búsquedas en la base de datos es una tarea prácticamente imposible.


#8 Crear Respaldo

Una vez completado estos puntos, puedes crear un respaldo de la instalación local y usarla para restaurar tu sitio.

Una vez restaurado el sitio, debes aumentar la seguridad del mismo y monitorear constantemente lo que sucede en este usando un plugin de seguridad.


Pensamientos sobre el Proceso de Limpieza

Estos son algunos pensamientos sobre le proceso de limpieza de un sitio.

  • Hay algunos que limpian sitios únicamente usando plugins de seguridad y refuerzan seguridad.
  • Una de mis recomendaciones es tratar de reducir el número de plugins de ser posible porque eso facilita el proceso de limpieza.
  • Una limpieza de la base de datos puede acelerar el proceso de limpieza. Por lo general las tablas de la base de datos tienen contenido que no es útil ya que los plugins que crearon algunas tablas o filas pudieron haber sido borrados hace mucho tiempo atrás.
  • Hay personas que limpian un sitio de WordPress hackeado sin borrar muchos archivos o se toman tiempo para ir buscando el código malicioso basándose en la última modificación o al ver el código, sin embargo borrar lo que se pueda borrar y concentrarse en algunos pocos archivos da más de alivio.
  • Si miras estos pasos y crees que esto se te escapa de tus manos, trata de contratar un servicio profesional de limpieza de malware o un experto de WordPress de tu confianza.
  • Limpiar un sitio de WordPress de un Hackeo se puede hacer con enfoques distintos por lo que no hay que juzgar una forma sobre otra si el resultado es efectivo.
  • Si usas un hosting pésimo que no tiene medidas para prevenir la contaminación cruzada de sitios en un servidor, eso implica considerar otros proveedores de hosting.
  • Si no quieres deshacerte de tus plugins y temas piratas, no hay nada que hacer. Ya tu sitio es blanco de hackers.

Manuel Campos, English Professor

Manuel Campos

I am José Manuel. I am writing about things I know and things that I am learning about WordPress. I hope you find the content of this blog useful.

WP SURFER

home

about

privacy

contact

© 2024 WP SURFER • Made with Love in Costa Rica