Tutorial: Guía completa para desinfectar WordPress de Malware

  • Autor Autor Negocios del Web
  • Fecha de inicio Fecha de inicio
Negocios del Web

Negocios del Web

Épsilon
Hospedaje
Verificación en dos pasos activada
Hola a todos,

A lo largo de los últimos 3 años trabajando diariamente con WordPress me he encontrado con cientos de clientes con su WordPress infectados, infecciones de todo tipo. He trabajado con cientos de plugins (gratis, pago, nulled, desarrollados a medida, etc…). Conozco muchas de las páginas que ofrecen plugins de pago gratis, qué páginas son las que los plugins están limpios y las que no. Toda esa experiencia me ha hecho plantearme el realizar una guía completa sobre como desinfectar un WordPress y sus diferentes soluciones.

Es importante destacar que para realizar una desinfeccion de un WordPress efectiva se necesitan unos conocimientos avanzados. Ésta guía es un breve resumen de como se podría desinfectar un WordPress. Un aspecto muy importante para la limpieza es el sentido común.

VUiqBHl.png

¿Cómo se infecta un WordPress?

Un WordPress se infecta a través de la subida de un archivo con código malicioso. Un WordPress (si se descarga desde su fuente original) nunca viene infectado ni con ningún tipo de archivo con código malicioso.

La mayoría de infecciones de un WordPress se infectan con la subida de plugins/themes. También hay la posibilidad de que la contraseña sea muy débil y accediendo al control panel se suba algún archivo con código malicioso.

Es muy importante saber que plugin/theme se está subiendo a nuestro WordPress, sobretodo cual es la procedencia.

Por ejemplo, los plugins nulled (los plugins de pago que están en blogs de manera gratuita. No voy a dar blogs famosos que todos sus plugins están infectados para no perjudicar a nadie.) El 90% están infectados.

Importante: Que el plugin esté infectado no significa que el plugin no funcione. Puede estar infectado y el plugin funcionar a la perfección.
Respecto a las contraseñas débiles. Es importante tener siempre en cuenta que en Internet hay scripts funcionando 24/7 buscando resultados de WordPress en los motores de búsqueda para realizar bruteforce y subir archivos infectados con el propósito de realizar una Botnet/Minar/etc…

Resumen: Un WordPress se infecta a través de la subida de un plugin o theme en el cual contiene en sus archivos código malicioso.
Qué un plugin o theme esté infectado no quiere decir que no funcione.


¿Cuál es el problema del Malware en WordPress?

Infectar el WordPress es muy fácil y desinfectarlo en la mayoría de los casos es un rompe cabezas. La infracción se puede producir de 2 maneras.
La primera subiendo archivos .PHP completos de malware. Y la segunda (la más complicada y rompe cabezas) es la edición de archivos originales del WordPress.

Ejemplo práctico:

Se sube un plugin con archivo malware. Ese archivo lo único que realiza es editar, simplemente editar, archivos del WordPress insertando el código malicioso.. Archivos de la carpeta wp-admin, wp-includes, etc…

El usuario detecta que ese plugin es extraño y lo elimina.

¿Se ha desinfectado mi WordPress?
No, al contrario. Cuando el malware edita archivos originales del WordPress la opción más recomendable es reinstalar. (Tranquilo también aprenderemos como hacerlo 🙂)

¿Qué sucede cuanto el WordPress está infectado?

La mayoría de malware que infecta los WordPress se utiliza para enviar correos SPAM. Es lo típico… algunos más elaborados se utilizan para una botnet o realizar bruteforce a páginas externas o simplemente añadir páginas chinas a tu WordPress.

¿Porque los alojamientos tienen las actualizaciones activadas en WordPress?

Me han llegado muchos clientes quejándose de que varias empresas (OVH, SiteGround, etc…) tienen actualizaciones automáticas activadas. Esto se hace simplemente para proteger el servidor y al cliente de lo mencionado arriba.

Esto tiene un punto negativo y es la compatibilidad en caso de actualizaciones automáticas de theme y plugin.

¡Empezamos!

Vamos a trabajar con CPanel como control panel.

jlpjnn6.png

- Utilizando ClamAV
ClamAV es un antivirus de código abierto muy habitual en todos los servidores con CPanel. El 95% de servidores tienen incluido para sus clientes dicho antivirus.

Lo primero que debemos de hacer es realizar un escaneo de toda nuestra cuenta de hosting.

bb5cefaeb6a85e938384c6b3d9c998ef.png

La opción de escanear virus se llama “ClamAV” o “Escáner de virus”. (Nosotros en Negocios del Web le llamamos Escáner de virus).

73c82e8375652a7514542847168defbb.png

Vamos a realizar la ‘Búsqueda de todo el directorio principal’. Ya adelanto que la opción de ‘Buscar correo’ no es muy efectiva.

Depende del tamaño de tu cuenta hosting (peso de tu WordPress) tardara más o menos…

Una vez tengamos los resultados: en caso de estar infectado nos anotamos todos los archivos del resultado. En caso contrario… ¡cuidado! no quiere decir que el WordPress esté limpio. Hay que seguir trabajando…

Es MUY importante no borrar los archivos a través del antivirus ni mandarlos a cuarentena. Si los movemos o los borramos no podremos acceder al WordPress por falta de archivos (el WordPress quedara corrupto). Este punto es muy habitual realizarlo y es lo que puede cuásar el mayor de los problemas.

- Buscamos los archivos infectados…

Si ClamAV nos notificó una serie de archivos infectados ya tenemos una parte del trabajo realizado. Ahora tenemos que buscar archivos que no sean originales del WordPress.

No todo el mundo conoce los archivos o la jerarquía de carpetas del WordPress por ese motivo te recomiendo descargar un WordPress virgen en .ZIP y comparar.

Estos archivos los tenemos que buscar manualmente a través del ‘Administrador de archivos’.

Importante: La mejor búsqueda de malware en una página web que se puede realizar es con trabajo manual. Las herramientas automáticas te pueden ahorrar trabajo pero nunca será completo sin el trabajo manual. Seguimos…

70f17607d10c7be16e32b37383420905.png

Muchos scripts con malware para ponerlo más difícil suelen estar ocultos. Vamos a hacer visibles todos los archivos ocultos de nuestra cuenta hosting. (Los archivos ocultos empiezan con un . – punto -).

h9wWi2B.gif

Con los archivos ocultos visibles no se nos puede escapar ningún archivo :welcoming:

Los archivos que nos interesa buscar son los archivos que no pertenezcan al WordPress. Cuando un WordPress está infectado la mayoría de los casos en la misma carpeta del WordPress ya hay archivos que no son originales. En resumen no hay que buscar mucho al principio…

También en este trabajo es recomendable utilizar el sentido común. WordPress no va a tener archivos con nombre:

  • asdaasadsada.php
  • 671XX.php
  • index463.php.php.php
  • XNML.PHP
  • .XMLDT54

Como se puede ver a simple vista… esos archivos no son muy amigables 🙂

Llegados a este punto es MUY importante hacer una copia de seguridad completa de los archivos (teniendo en mente que esa copia de seguridad puede estar infectada) dicha copia la vamos a utilizar como plan b por si borramos archivos necesarios para realizar algunas funciones.

Con la copia de seguridad realizada… empezamos a borrar archivos sospechosos. Es muy importante también que los archivos que eliminemos vayan a la papelera primero.

24efcfc8825f69c0b4c907908d3e5169.png

No marcar esa opción ya que así los podemos recuperar más rápidamente.

Debemos de entrar a las siguientes carpetas buscando archivos sospechosos.

- public_html (o la raíz del wordpress)
- wp-content (donde se almacenan los plugins, theme, etc…)
- - upload
- - theme
- - plugins

¿Por qué solo a esas carpetas? Las otras carpetas vamos a realizar la búsqueda a través de un plugin.

Si entramos a la carpeta de un plugin y vemos un archivo sospechoso pero dudamos… lo recomendable es descargarlo y ver si ese archivo viene de origen.

Lo más efectivo para revisar si un archivo está infectado es editándolo.

Ejemplo práctico real de un cliente:

Un cliente nos comentó que su WordPress iba lento y que, además, tenía problemas con el envío de correos electrónicos.

Realizamos un escáner con ClamAV y salió todo limpio. Pasamos al siguiente paso, buscamos los archivos de manera manual y solo acceder al public_html nos dimos cuenta de una cosa…

d91ac3330918b273bb0cfff4045e76fe.png

Esos archivos con doble/triple/… extensión no pertenecían a WordPress. No nos hacía falta editar el archivo para ver que tenía código malicioso.

Para ésta guía volví a subir los archivos infectados a una cuenta CPanel y así poder editar el archivo.

El editar el archivo contenía esto:

8b7d22b5fa1656281eba38959b998219.png

Aquí volvemos al sentido común… ese archivo no es original de WordPress.

Borramos todos los archivos sospechosos para seguir trabajando.

Es importante que sepas algo; no porque borres todos los archivos sospechoso que veas significa que el WordPress está 100% limpio.

Con todos los archivos sospechosos eliminados (de todas las carpetas mencionadas anteriormente) toca realizar una serie de trabajos automáticos.

Las demás carpetas vamos a analizarlas con un plugin llamado ‘Wordfence Security – Firewall & Malware Scan’.

-Instalamos Wordfence Security – Firewall & Malware Scan

No hay que olvidar que el WordPress posiblemente siga infectado. Instalamos dicho plugin y antes de hacer un escáner vamos a hacer un cambio en la configuración.

Esta configuración poca gente la suele modificar.

10047b2f40b97d99295b693bb599e9b0.png

Hacemos clic en Scan y pasamos a ‘Scan Options and Scheduling’ vamos a cambiar la configuración del escáner sea más exhaustiva.

c64544e80966af984b7a279c48349505.png

Guardamos todos los cambios y ahora si realizamos el Scan. Este punto puede tardar máximo 1 hora (depende de los archivos a escanear).

Una vez tengamos los resultados en tabla de abajo podremos ver en la parte derecha unos botones de acciones.

b4cb0319166e35a6baa023e8c520c58a.png

Como podemos ver ha encontrado 2 problemas. El primero (color rojo) son los críticos y el segundo (color amarillo) son las alertas. Las alertas pueden ser plugins desactualizados, etc… nada grave.

Los rojos si, como se puede ver es crítico. Nos notifica que el archivo functions.php del theme tiene un código malicioso. Podemos hacer click en DETALIS para ver más información…

6543ab9efdda7474e808f7017d436584.png

Como se puede ver el archivo tiene una variable que se puede utilizar para realizar un backdoor.

De momento es muy probable que tenga código malicioso dentro del archivo, veamos que contiene dicho archivo haciendo clic en VIEW FILE.

36ce870ac3e155bd27d1fdbfc927a4c8.png

Y efectivamente… el WordPress estaba infectado. El archivo functions.php del theme tenía código con el cual enviaba información a un dominio.

Solo nos queda eliminar el código malicioso y guardar cambios.

Una vez que hayamos borrado todo el código malicioso volver a pasar Scan para asegurarnos.

Para saber si un WordPress ha quedado totalmente limpio (aunque todos los escáneres den positivo de limpieza) lo más recomendable es esperar unos días. Los malware se suelen autogenerar a través de un archivo oculto y se vuelven a generar (lo mismo que borraste, se vuelve a generar). Si en 1 semana sigue estando limpio es muy probable que tu WordPress ya este definitivamente desinfectado.

- Reinstalar wordpress (en caso de no quedar limpio)

Si nada de lo anterior ha solucionado el problema y al cabo de unos días se han vuelto a generar dichos archivos nos toca reinstalar sin perder información.

Realizar otra copia de seguridad. Una vez tengamos la copia de seguridad tenemos que saber la versión del WordPress que estamos utilizando.
Para conocer este dato es tan simple como acceder a la base de datos y buscar en la tabla wp_options (o el prefijo XX_ que tengáis…) y buscar db_version.

Ese código será vuestra versión codificada. Para descodificarla entrar aquí: User:Esmi/Database versions « WordPress Codex

Bien ya tenemos la nueva versión, ahora tenemos que de la fuente original de WordPress el .ZIP de ESA versión.

Con el .ZIP en nuestro equipo. Pasamos a anotar todos los plugins que tenemos instalados y el theme.

Anotarlos en un bloc de notas para volver a instalarlos de nuevo (guardar solo los plugins de calidad y de confianza).

Borrar todos los archivos menos wp-config.php ya que, RECUERDA, la idea es NO perder NADA de información. Ese archivo contiene el acceso a la base de datos.

Subimos el .ZIP de la versión que teniamos instalada y accedemos al panel de control mediante http://www.tuweb.com/wp-admin con los mismos datos de usuario.

En ese momento es la hora de volver a instalar todos los plugins y themes.

No te asustes, es normal que todo se haya desconfigurado. La solución es volver a subir todos los plugins y themes que había antes.

Recuerda si la mayoría de archivos infectados estaban en un theme/plugin no vuelvas a descargar ese theme desde la fuente que lo has descargado.

Y hasta aquí la guía.

Es importante que tengas en cuenta que esta guía es un resumen de todo un trabajo muy exhausto y se debería de realizar con unos conocimientos medios/avanzados.​

Estaré encantado de resolver dudas y/o problemas.

Autor: Negocios del Web.

Un saludo
 
Gracias por el tremendo tutorial :encouragement:
 
buen tutorial amigo, muy utl!
 
Gracias por compartir y tu disposición a ayudar.

Saludos :encouragement:
 
Excelente aporte colega, muchas gracias por la info!
 
Muchas gracias. Estupendo tutorial 🙂
 
Gran aporte, yo prefiero pagar por una licencia que por ganarme un virus que estrepee todo mi trabajo gratis.
 
Haces del mundo un lugar mejor colega :encouragement:
 
Muchas gracias a todos. 😀

Me alegra que os haya gustado, si os interesará una guía completa avanzada de algún tema relacionado con WordPress tan solo comentármelo 🙂.

La iré ampliando a medida de lo posible.

Un abrazo
 
En caso de utilizar como control panel en lugar de cpanel, plesk, como se haría? 🙂
 
Que este tutorial tan completo tan solo tenga 4 me gustas, eso no se entiende! Muchas gracias!
 
Lo hice para probar y aprender no pensé que mi Worpress en realidad estuviera infectado, pero si, lo estaba.
¡Muchas gracias! 😎
 
En caso de utilizar como control panel en lugar de cpanel, plesk, como se haría? 🙂

Buena pregunta. Plesk no tiene un antivirus tan potente como ClamAV de manera gratuita. Se debería de hablar con el proveedor del hosting para saber que herramienta utilizar en ese caso.

Todos los siguientes pasos serian igual.

También te comento, visto que estas interesado, lo más recomendable es trabajar con CPanel por muchos motivos. Nosotros Negocios del Web somos una empresa con experiencia demostrable y podríamos ofrecerte un descuento importante en nuestros planes de alojamiento. En tu caso un descuento en la siguiente factura ya que eres cliente 🙂

Que este tutorial tan completo tan solo tenga 4 me gustas, eso no se entiende! Muchas gracias!

¡Muchísimas gracias!

Lo hice para probar y aprender no pensé que mi Worpress en realidad estuviera infectado, pero si, lo estaba.
¡Muchas gracias! 😎

¡Oh! Me alegro muchisimo que te haya servido para darte cuenta de que tu WordPress estaba infectado. Muchas gracias.
 
Muchas gracias :encouragement:
 
Excelente tutorial, sirve de mucho para los que no sabemos mucho si nuestras web esta infectada o no.
 
Excelente tutoril :encouragement::encouragement:
 
Maravilloso tutorial, sin duda he aprendido bastante. Va a favoritos :congrats:
Gracias por el gran aporte y la dedicación que le has puesto al escribirlo :encouragement:
 
Gracias por el tutorial, si sufro de problemas en algún proyecto , pediré presupuesto, un saludo.
 
Gracias por el tutorial, si sufro de problemas en algún proyecto , pediré presupuesto, un saludo.

¡Muchas gracias!

Y nosotros estaremos encantados de ayudarte.

Un saludo
 

Temas similares

Atrás
Arriba