Como todos saben WordPress es el CMS mas utilizado en el mundo y por este tema es un target tentador para cualquier ataque automatizado. Cuando te infectan una instalación de WordPress en general, el 99% de las veces, no es algo personal contra vos o tu sitio. Son ataques de fuerza bruta, escaneos en busca de vulnerabilidades. Cuando encuentran una versión de WordPress, theme o plugin con una vulnerabilidad conocida, atacan, infectan y hacen lo suyo. No pienses que es culpa de tu hosting, salvo raras excepciones, no lo es.
Hay otras formas de hacerlo, mucho de lo que acá les cuento lo hago por consola por ejemplo. En este caso voy a tratar de explicarlo para que lo puedan hacer utilizando solo un cliente de FTP.
Ok, vamos al grano
Para realizar todas las taréas tenes que tener algo de conocimientos básicos sobre desarrollo web o al menos haber instalado WordPress a mano. Si sos el usuario final de un WordPress que solo entra a publicar cosas mejor consultá con quién te realizó la web. Estos pasos son genéricos y curan casi todas las infecciones. Antes de hacer cualquier paso por favor asegurate de tener un buen backup.
Cambiar la contraseña de tu panel de control y/o FTP
Este es un gran «por las dudas» o «mas vale prevenir», existe una posibilidad de que el hack haya sido por una clave insegura o filtrada. Ante la duda lo mejor es cambiar la clave del panel de control que te brinde tu hosting y si tenes cuentas de FTP adicionales también cambiales la clave.
Desactivá el acceso público a la web
Si tu web lleva varios días infectada es probable que Google ya haya marcado como peligroso tu sitio. Hay que decirle a Google desde la Search Console que tu sitio ya no está infectado. Como esto tarda unas horas, es bueno que sea lo primero que hagas, para ello necesitas limpiar el sitio y como eso puede demorar vamos a evitar que se pueda ver durante el trabajo de limpieza. Lo que debes hacer es eliminar el index.php y el archivo .htaccess (crea una copia de este si tiene algo mas que lo que mete WordPress) de la raiz de tu sitio. Luego de esto crea un index.html o index.php en blanco. Si te das maña podes hacer un html con los dátos básicos de contacto de la web infectada para que un eventual visitante no vea la página en blanco. Una vez hecho todo esto ya le podes pedir a Google que vuelva a revisar tu sitio en busca de malware.
Elimina todos los archivos de WordPress excepto wp-content
Esto lo podes hacer utilizando FTP pero es lento porque son muchos archivos chiquitos. Lo ideal es hacerlo desde el administrador de archivos de tu cPanel, todos nuestros planes lo tienen. Elimina todos los archivos de la raiz y los directorios wp-admin y wp-includes. Con esto nos cargamos cualquier infectado que haya habido en esas carpetas.
Limpieza de wp-content
Este es el único directorio que conservamos porque tiene los archivos que no son genéricos de cualquier instalación. Themes, plugins, modificaciones, archivos subidos, etc. Los últimos hackeos que vi son ultra virulentos por lo que podes tener archivos desconocidos con malware, archivos conocidos con malware inyectado, incluso hasta archivos que simulan ser imágenes con malware infectado. Revisá que en la raiz de wp-content no tengas ningún archivo desconocido y mira dentro de los conocidos que no haya nada extraño. Normalmente solo deberías tener un index.php con un comentario.
Es el turno de /plugins. Toma nota de todos los plugins instalados, y bajalos del repositorio de WordPress uno por uno. En tu escritorio hacete una nueva carpeta /plugins y descomprimi todos los archivos que bajaste ahí dentro. Luego solo te queda eliminar /plugins la del sitio infectado y subir la nueva desde tu escritorio.
Ahora vamos con la carpeta /themes. Si el theme que estas usando es del repositorio o comprado y no tiene modificaciones caseras tenes volverlo a descargar y reemplazarlo integramente, como hicimos con los plugins. Si lo modificaste sin usar un child entonces tenes que mirar uno por uno los archivos para ver que dentro no haya malware. Es bastante obvio cuando un archivo está infectado aunque no sepas mucho de PHP.
Si tenes un child, que es lo mas correcto cuando modificas el theme original, tambien debes revisar todos tus archivos a mano en busca del bicho.
Si tenes themes que no estas usando es un buen momento para borrarlos, tenerlos ahí es un riesgo innecesario.
Por último solo nos queda la carpeta /uploads, dependiendo de la cantidad de contenidos del sitio puede ser mas o menos tedioso. El trabajo a realizar aquí es ir entrando uno por uno en todos los años y meses buscando archivos que no corresponden. Normalmente algún php entre muchas imágenes. Puede ser útil ordenar por fecha y/o por extensión los archivos dentro de cada carpeta para detectar rápidamente los no deseados.
Si alojás tu web con Bee dentro del cPanel vas a encontrar un scanner de malware. Correlo para ver si detecta algún archivo infectado que se te haya pasado por alto.
Algunos ajustes sobre la base de datos
Este paso también es un «por si las dudas». Primero vamos a cambiar la clave del usuario de la base de datos. No la pierdas! Si estás canchero con phpmyadmin otra cosa que podés hacer es ver si en la tabla de usuarios no aparece algun invitado desconocido. Si hay, borralo.
Puesta en marcha
Es el momento de volver a poner en marcha todo. Lo primero es descargar la última versión de WordPress. Si no te da confianza un upgrade de golpe podes buscar en el repo la versión anterior de WordPress que hayas tenido en tu web.
Descomprimí el archivo descargado en tu escritorio y eliminá la carpeta wp-content. No la vamos a necesitar. Renombrá el archivo wp-config-sample.php a wp-config.php y completá los datos de la base de datos, no olvides que cambiaste la clave. Usa el link que viene en el archivo para generar llaves salt nuevas y pegalas. Por último si tus tablas tenían un prefijo distinto al estandard no olvides cambiarlo ya que si no lo haces cuando quieras ver tu sitio va a querer instalar un nuevo WordPress.
Una vez terminado con el wp-config.php es momento de subir todos los los archivos. Al finalizar si todo salió bien deberías poder ingresar a tu /wp-admin.
Últimos pasos
Una vez dentro de backend de WordPress lo primero que debes hacer es cambiar la clave a TODOS los usuarios con permisos de administrador, editor y autor. Pone la clave mas fuerte que puedas, la mejor clave es la que no te podes acordar. Utilizá un gestor de contraseñas como LastPass.
Revisa todas las entradas y páginas para que no haya cosas raras. En varias ocasiones hemos encontrado con páginas o posteos intervenidos con links a sitios de venta de medicamentos y otras cosas fraudulentas. Todo lo que no sea el contenido habitual de tu web eliminalo. Si quedó algún plugin que pide actualización, hacela.
Ya deberíamos contar con un sitio limpio. Vas a tener que controlarlo de cerca unas semanas, si quedó algún archivo infectado se puede volver a romper. A veces puede pasar que tengas algún plugín o theme desactualizado y no soportado, por más que pongas uno no infectado este podría tener vulnerabilidades conocidas y volver a infectarse. Si es el caso, googlea acerca de ese plugin o theme y trata de arreglarlo y/o reemplazarlo.
The end
Espero les haya sido de utilidad este artículo. Si tienen alguna consulta, usen los comentarios, seguimos en contacto!
2 comentario(s)
Marina
Muchas gracias por la Guía!! Tengo un super Virus que el hosting no me está solucionando, extendido a dominios y subdominios. Mirando en la carpeta plugins […] Sigue LeyendoMuchas gracias por la Guía!! Tengo un super Virus que el hosting no me está solucionando, extendido a dominios y subdominios. Mirando en la carpeta plugins veo index.php sueltos. Serán malwere? No entendí en la explicación de plugins la última línea "Normalmente solo deberías tener un index.php con un comentario." Este index que es el normal donde debería estar? Muchisimas gracias por la ayuda! Read Less
Vikingo
to Marina
Hola Marina, ante todo disculpame la demora en la respuesta. El index.php que hay en algunas carpetas de WordPress solo tiene un comentario que dice […] Sigue LeyendoHola Marina, ante todo disculpame la demora en la respuesta. El index.php que hay en algunas carpetas de WordPress solo tiene un comentario que dice "El silencio es oro", pero en inglés. // Silence is golden. Read Less