Descubrir malware en tu web es una auténtica pesadilla. Que te hayan hackeado tu sitio de WordPress puede convertirse en un verdadero desastre. Pero no te preocupes, esta guía te ofrece instrucciones detalladas y fáciles de seguir para identificar y eliminar eficazmente esta amenaza cibernética, al mismo tiempo que te brinda estrategias para protegerte en el futuro.
Si tienes prisa, te ofrecemos una solución GRATUITA (lee más abajo). Sin embargo, si dispones de tiempo y ciertas habilidades, nuestro procedimiento de limpieza te ayudará a restaurar tu sitio a su estado normal.
Sabrás que tu sitio web probablemente ha sido hackeado si notas cosas como:
El aspecto de tu sitio ha cambiado sin que hayas hecho nada.
Al navegar por su sitio, recibe una advertencia en tu navegador o,
Tu sitio ha sido incluido en la lista negra de Google y ves el mensaje «Este sitio puede dañar su computadora»
No puedes iniciar sesión. Los piratas informáticos a veces eliminan usuarios o cambian contraseñas para evitar el acceso. Si no puedes restablecer tu contraseña, tu cuenta de usuario podría haber sido eliminada. Esta es una señal de malware.
Tu sitio está redirigiendo a otro sitio no autorizado o realiza redireccionamientos inesperados. Este probablemente sea un sitio al que no querrías llevar a tus usuarios
Al inspeccionar los archivos de tu sitio, identificas cambios en los archivos, plugins o temas del sistema central.
El proceso de limpieza de malware puede ser un desafío porque puede haber puertas traseras ocultas dentro de tu sistema. Estas puertas traseras son puntos de entrada secretos que los creadores de malware utilizan para recuperar el acceso incluso después de que se haya eliminado la amenaza inicial.
Es posible que los próximos pasos no cubran todos los aspectos de la infección de malware, pero al seguirlos, deberías ser capaz de manejar muchas de las infecciones más típicas.
1 Haz una copia de seguridad o clona tu sitio actual
Durante el proceso de limpieza, deberás realizar algunas acciones no reversibles, como actualizaciones y reinstalaciones. Conserva una copia de tu sitio infectado actual en un entorno de ensayo.
El primer paso en el proceso de limpieza es reinstalar los archivos de WordPress Core. Este proceso es seguro porque los archivos de WordPress Core nunca deben modificarse.
Aquí tienes tres opciones :
Reinstalar WordPress con WP-CLI
La mejor opción es usar su terminal y WP-CLI , la interfaz de línea de comandos para WordPress.
# save your WordPress root path in an ENV var:
export WP_PATH=/var/www/html/
cd $WP_PATH
# get the current WP Version:
export WP_VERSION=$(wp core version)
# download WP:
cd /tmp
wp core download --version=$WP_VERSION --path=./
rm -rf $WP_PATH/wp-admin
mv ./wp-admin $WP_PATH
rm -rf $WP_PATH/wp-includes
mv ./wp-includes $WP_PATH
rm ./wp-config*.php
mv -f ./*.php $WP_PATH
IMPORTANTE : existen métodos más rápidos para la reinstalación, pero nuestro enfoque tiene una razón: el objetivo detrás de estos comandos es reemplazar todos los directorios principales de WordPress, con el objetivo de eliminar cualquier archivo potencialmente oculto que podría usarse como puerta trasera.
Reinstala WordPress desde el panel de administración de WP
Si no tienes acceso a la línea de comandos, puedes iniciar sesión en wp-admin y reinstalarlo desde la página de actualizaciones de WordPress :
IMPORTANTE: Si bien este método reemplaza todos los archivos de WordPress Core, no elimina ningún archivo potencialmente oculto que podría servir como puerta trasera.
3 Inspecciona el archivo wp-config.php
Después del reemplazo anterior de WordPress Core, el único archivo central de php que deberíamos tener en la raíz de WordPress debería ser wp-config.php .
Elimina cualquier código malicioso del archivo wp-config.php . Para hacer esto, abra el archivo con un editor e inspeccione minuciosamente en busca de cualquier cosa sospechosa. Si encuentra algo preocupante, elimínelo en consecuencia.
4 Vuelve a instalar una versión limpia del tema
Obtén una copia limpia del tema y utilízala para sobrescribir todo el directorio existente.
Si tienes un Child Theme , reemplace también todo el directorio con una copia limpia o inspeccione uno por uno todos los archivos existentes.
5 Elimina todos los temas no utilizados
Para evitar posibles agujeros de seguridad o archivos ocultos utilizados como puertas traseras, elimina todos los temas que no estés utilizando.
6 Elimina todos los plugins no necesarios
Es importante eliminar cualquier posible problema de seguridad eliminando los plugins no utilizados.
También es el momento de inspeccionar individualmente los pulgins que no instalaste tú mismo, o los plugins que no están disponibles en los repositorios oficiales.
7 Reinstala plugins
Debes reinstalar tantos plugins como sea posible.
Durante esta etapa, mantener las mismas versiones es fundamental para evitar interrupciones.
¡¡Sí!! , le recomendamos actualizar los plugis más adelante , pero solo después de que se haya limpiado el sitio, se haya creado una copia de seguridad y se haya llevado a cabo el trabajo de eliminación de malware .
# save your WordPress root path in an ENV var:
export WP_PATH=/var/www/html/
cd $WP_PATH
# get commands to update plugins preserving versions:
wp plugin list --fields=name,version --skip-update-check --format=csv | \
awk -F"," 'NR>1 {print "wp plugin install " $1 " --force --version=" $2}'
Esto generará una lista de comandos que te ayudará a reinstalar:
Ejecuta cada comando ‘ wp plugin install ‘ , uno a la vez, estando atento a cualquier error potencial. Una alerta de advertencia relacionada con problemas de escritura o reemplazo de archivos podría indicar un plugin comprometido o infectado. Si es necesario, elimina todo el directorio de plugins y vuelve a ejecutar el comando hasta que se ejecute sin errores.
8 Inspecciona el directorio mu-plugins
Si existe un directorio ‘ mu-plugins ‘, inspecciona manualmente cada complemento instalado dentro de él. Esta es una de las ubicaciones comunes donde el malware se puede ocultar.
En WordPress, el directorio «mu-plugins» (Must Use) alberga plugins que se activan automáticamente para todos los sitios en una instalación. Estos plugins se cargan antes que otros y no se pueden desactivar desde el panel de administración.
9 Escanea el sistema de archivos de WordPress
Llegados a este punto, tu web de WordPress debería estar casi limpia. Es hora de realizar un análisis completo de cada archivo dentro del sistema de archivos de WordPress.
Para el análisis de malware, en Wetopi recomendamos el complemento WordFence . Instalálo:
Luego, configura las opciones de escaneo para una inspección profunda. Salta la sección «Escanear» de WordFence, luego haz clic en el enlace «Opciones de escaneo y programación»:
Ve a la página «Opciones de escaneo y programación».
En la sección «Opciones básicas de tipo de escaneo», selecciona la opción «Alta sensibilidad» .
Después de hacer esta selección, haga clic en «GUARDAR CAMBIOS», ubicado en la parte superior derecha de la página.
Finalmente, regresa a la sección principal «Escanear» y haz clic en el botón «INICIAR NUEVO ESCANEO».
WordFence tardará un tiempo en realizar el análisis y, a continuación, aparecerá una lista de posibles problemas durante este proceso. Para obtener más detalles sobre cómo interpretar estos resultados, consulta la página oficial del complemento titulada » Trabajar con resultados de escaneo «.
En resumen, el objetivo es limpiar todos los problemas encontrados en la pestaña «Resultados encontrados». Luego «escanea»INICIAR NUEVO ESCANEO» nuevamente hasta que obtengas los «Resultados encontrados (0)».
10 Escanea manualmente el sistema de archivos de WordPress
Si has identificado la hora de la intrusión de un análisis anterior, debes buscar los archivos que se modificaron durante ese tiempo. Tienes varios comandos para ayudarte:
# find files with content modified between 2023-06-07 and 2023-06-01:
find /var/www/html -type f -newermt "2023-06-07" ! -newermt "2023-06-01" | xargs ls -l
# find files with inode data change time older than 720 days:
find /var/www/html -type f -ctime +720
# find files with content modified in the last 15 days:
find /var/www/html -type f -mtime -15
# find files modification time older than 720 days:
find /var/www/html -type f -ctime +720
# delete files with content modification time older than 720 days:
find /var/www/html -type f -mtime +720 -exec rm {} \;
# sort files by date
find /var/www/html -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort
Si sus escaneos anteriores revelaron un «patrón» o rastros de «código malicioso», se sugiere ejecutar un segundo escaneo. Los siguientes comandos pueden ayudarlo en este proceso:
# search text 'the_malicious_code' inside files:
grep -r --include "*.php" 'the_malicious_code' /var/www/html/
# search for malicious evals:
grep -r --include "*.php" -E "^[^/]*[^(double)]eval\(([^)]+)\)" /var/www/html/
# combined find and grep using a file with a list of patterns:
cat <<EOF > patterns.txt
eval\(
exec\(
gzinflate\(
base64_decode\(
str_rot13\(
gzuncompress\(
rawurldecode\(
strrev\(
ini_set\(
chr\(
rand\(
shell_exec\(
fopen\(
curl_exec\(
popen\(
EOF
find /var/www/html/ -type f -mtime -7 -exec egrep -Hno -f patterns.txt {} \;
11 Elimina cualquier usuario que no reconozcas
Minimiza la cantidad de cuentas en todos sus sistemas, como SSH, SFTP, base de datos y WordPress, al mínimo. Para WordPress, presta especial atención a los usuarios «Administradores» y retén solo aquellos que sean absolutamente necesarios.
12 Cambia todas las contraseñas de usuario de WordPress
Después de eliminar a todos los usuarios no esenciales, aplique un restablecimiento de contraseña para cada uno de ellos.
Puedes cambiar todas las contraseñas de usuario a la vez utilizando la función «Enviar restablecimiento de contraseña» en la página de lista de usuarios de WordPress.
IMPORTANTE : tenen cuenta que esta acción no cambiará directamente las contraseñas ni obligará a los usuarios a hacerlo. Esta acción masiva envía un correo electrónico con un enlace para restablecer la contraseña a cada usuario. Por lo tanto, asegúrate de informar a todos sus usuarios que revisen su correo electrónico para obtener el enlace de restablecimiento de contraseña.
En esta etapa, su sitio debe estar libre de malware.
Sin embargo,
⚠️ no pares ahora
– su sitio sigue siendo vulnerable.
Proteje tu web WordPress frente a malware
Después de una intrusión de malware, eres todavía el objetivo de los bots que intentan recuperar el acceso a las vulnerabilidades de tu sitio. Conocen sus vulnerabilidades anteriores y lo intentarán una y otra vez. Es hora de cerrar las puertas abiertas.
1 Haz una copia de seguridad de tu sitio limpio
Una vez que estés seguro de que tusitio está limpio, crea una copia de seguridad inmediatamente. Puedes hacerlo desde el panel de Wetopi con un solo clic del mouse.
Tareas como la actualización de plugins, o temas pueden alterar la apariencia o la funcionalidad del sitio. Por lo tanto, tener una copia de seguridad para una posible reversión es vital. Una estrategia más prudente es configurar un entorno de prueba: un clon seguro del sitio donde puedas realizar pruebas antes de implementar cambios en el sitio de WordPress en vivo.
No hagas pruebas directamente en tu servidor producción.
Al testear nuevas configuraciones de servidor, se recomienda trabajar en un servidor «localhost» o «Staging».
Si no tienes un servidor de desarrollo de WordPress, regístrate en wetopi, es GRATIS.
2 Actualiza plugins, temas y núcleo de WordPress
Si bien es crucial recuperarse de las intrusiones de malware lo más rápido posible durante el proceso de limpieza, no recomendamos actualizar en esta etapa. Ahora, una vez que estés en un entorno de prueba seguro y tengas más flexibilidad, se vuelve esencial actualizar a las últimas versiones. Y si no es a las últimas versiones, al menos las últimas versiones que incluyen correcciones de seguridad.
Sigue este orden y realiza actualizaciones, una a la vez:
Actualizar plugins
Actualizar temas
Actualizar el núcleo de WordPress
3 Bloquea tu sistema de archivos de WordPress
Si, por algún motivo, no pudiste actualizar el código de WordPress en el paso anterior para cerrar todas las vulnerabilidades de seguridad, te recomendamos encarecidamente que elimines los permisos de escritura de tu sitio .
Al bloquear el sistema de archivos de WordPress a través de los permisos de archivo, puedes mejorar la seguridad de tu instalación de WordPress.
4 Inspecciona el tráfico malicioso y bloquea las IP
La razón detrás de esto es examinar las solicitudes de tráfico asociadas con archivos anteriores de código malicioso.
Esta es una precaución adicional que nosotros, en Wetopi, tomamos para proteger su sitio y los sitios de todos los clientes de nuestra plataforma.
4 Tus credenciales pueden haber sido comprometidas
Un último consejo para tu futura protección.
Los sitios web pueden ser hackeados si tus datos de inicio de sesión se ven comprometidos o se filtran por infracciones en otros sitios. Dado que a menudo usamos la misma información de inicio de sesión en varios sitios web , es fundamental verificar si tus credenciales de inicio de sesión alguna vez se han visto comprometidas en infracciones públicas conocidas.
Comprueba si tus credenciales de inicio de sesión se han visto comprometidas por alguna brecha de seguridad https://haveibeenpwned.com .
Have I Been Pawned fue creado en 2013 por Troy Hunt, un experto en seguridad, para brindarle al público en general un medio para verificar si su información privada se filtró o se vio comprometida.
¿Qué sucede si a mi sitio le entra malware mientras se aloja con Wetopi?
En el raro caso de que un sitio sea hackeado en Wetopi , nuestro equipo de expertos en WordPress eliminará el malware rápidamente sin costo alguno para servidores de tamaño Medium o superior.
Si eres cliente de Wetopi, esto está incluido en tu plan:
Copias de seguridad incluidas : haz un backup de tu sitio con nuestras copias de seguridad diarias incluidas.
Infraestructura de seguridad de WordPress : no necesitas saturar los recursos de tu servidor con plugins de Firewall. Todos los planes incluyen WordPress WAF externo dedicado, fuentes de listas negras, filtrado de tráfico e infraestructura anti-DDoS.
Comprobaciones de escaneo diario : escaneamos todos los días los archivos de su servidor para identificar malware.
Soporte 24/7 : se te asigna un ingeniero de Wetopi para soporte continuo.
Resumidamente, somos unos techies apasionados por WordPress que hemos creado Wetopi, un Hosting Gestionado WordPress, para minimizar la fricción a la que todo profesional se enfrenta al trabajar y alojar proyectos WordPress.
Hacemos una copia de tu web gratis y sin esfuerzo por tu parte.
Sin letra pequeña. Sin compromisos. Sin tarjeta de crédito.
Resumen de privacidad
En Wetopi nos importa tu privacidad y creemos firmemente en la transparencia. Por este motivo nos comprometemos a ser honestos con nuestras prácticas de privacidad y a proporcionarte ajustes que te permitan elegir cómo se utiliza cierta información.
Aquí puedes administrar tus preferencias en relación a las cookies, incluyendo el no permitir algunos tipos de cookies.
Cookies estrictamente necesarias
Estas cookies son necesarias para que wetopi funcione y pueda prestar los servicios esenciales sin degradar la seguridad o la experiencia de navegación. Están siempre activas pero no contienen información personal identificable.
Uso de cookies: exclusivamente para guardar tus preferencias acerca de qué cookies aceptas y cuáles no.
Cookies y almacenamiento local wetopi: son cookies con tus preferencias de idioma, moneda, aspectos visuales y datos locales como tokens para manejar de forma segura el acceso a tu panel de cliente.
Cookies de Wistia: se usan para controlar los reproductores de videos de la web.
Stripe: éste es nuestro proveedor seguro de pagos. Usa estas cookies para evitar el fraude y prevenir todo tipo de inconvenientes relacionados con la seguridad. Son necesarias para que el sistema de pagos funcione.
Cookies de terceros
Utilizamos Google Analytics: nos ayudan a entender mejor a nuestros potenciales usuarios. Nos hemos asegurado que no se vincula información personal ni se identifican direcciones IP.
¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!