Pasos básicos para limpiar un sitio WordPress hackeado

¿Has sido hackeado alguna vez? Quienes alguna vez hemos tenido un sitio hackeado sabemos el enojo e impotencia que ocasiona, arruina nuestro día. Puede afectar nuestro posicionamiento web, ya que se expone a a nuestros visitantes a infecciones desde nuestro sitio, ya sea de virus o ataques de trojanos y nos expone a que nos marquen como promotores de infección con una pantalla de advertencia en nuestros navegadores. Nos convertimos en promotores sin saberlo ni quererlo de material que en muchas ocasiones causa la destrucción de nuestro propio contenido. Sin embargo, una vez sabemos que hemos sido afectados, que nuestro sitio ha sido hackeado, es mejor no esperar y debemos iniciar el proceso de limpieza, de manera que se reduzca el daño causado.

Existe mucha información que recomienda actualizar tu instalación de WordPress a la última versión, sin embargo no te dicen que en la mayoría de casos eso no evitará que los hackers vuelvan a llegar, incluso si no existen agujeros de seguridad conocidos para la nueva versión de WordPress. Los intrusos podrían haber dejado un archivo back door no visible en un directorio donde no será re-escrito al realizar una actualización, o quizá insertaron código en un archivo de un tema o plantilla, o quizá crearon alguna cuenta de usuario con privilegios de administración. Cualquiera de los puntos mencionados los traerá de regreso, incluso si corregiste el agujero original a través del cual entraron.

Respalda el sitio completo y la base

Lo ideal es que tengas un respaldo previo a la afectación realizada. Sin embargo, en caso no lo tengas, lo cual es un descuido, realiza el respaldo de tu sitio afectado, completo, ya que incluso un sitio hackeado tendrá información aun útil. Si algo no sale bien en el proceso de limpieza, entonces tendrás un respaldo. El pero escenario al tratar de limpiar un sitio WordPress es que tengas que restauran el mismo sitio hackeado y empezar de nuevo el proceso de limpieza.

Copia cualquier tipo de archivo subido como usuario

Por lo general, las imágenes no representan un riesgo de seguridad. Y si no tienes copia de esas imágenes cuando hagas el reemplazo y actualización de todo, podrías tener imágenes rotas en las entradas de tu blog. Si tienes algún tipo de archivo subido que podría representar un riesgo de infección (zip, php, plugin, etc) lo mejor es tomar una copia nueva de esos archivos y evitar el riesgo. Si tienes copia completa de tus imágenes, mejor.

Descarga la versión última de WordPress, y los plugins utilizados, así como el tema original limpio

El utilizar la actualización automática de WordPress, resulta verdaderamente fácil actualizar cada vez que se requiere. Sin embargo, este tipo de actualización sólo reescribe ciertos tipos de archivos, y no elimina los archivos obsoletos. También deja sin modificar los temas y plugins que tienes instalados. Eso significa que si usas este procedimiento para actualizar un sitio WordPress que está comprometido, puede fácilmente dejar la puerta abierta para otros ataques.

Elimina todos los archivos y carpetas del directorio WP, ya sea a través de FTP o mediante el uso de tu panel de control

Ahora que tienes ya copias recientes y limpias de lo que requieres, y también copia de tus imágenes subidas por usuarios, elimina la carpeta completa en donde se encuentra tu blog. Esta es la única manera segura de remover por completo cualquier archivo sospechoso de infección. Puedes hacerlo vía FTP o puedes hacerlo vía el panel de control para tu hospedaje.

Sube las copias nuevas de WordPress, plugins y tema

Utiliza FTP para subir tus archivos nuevos. No olvides que el archivo original wp-config.php contiene la información de configuración de tu base de datos y del sitio en su conjunto.

Ejecuta la actualización de tu base de datos

Escribe en tu navegador /wp-admin/upgrade.php después de tu dominio. Esto realizará los cambios necesarios en la estructura de base de datos para soportar la nueva versión de WordPress que instalas.

Cambia de inmediato el password del administrador

Al realizar la actualización de tu base de datos, el siguiente paso inmediato es cambiar tu password. Si tienes más de un administrador y no es posible cambiar el password de esos usuarios, lo mejor es que edites su capacidad dentro del sitio si reconoces los usuarios, o los elimines si no los reconoces.

Revisa y repara las entradas del blog

Un sitio WordPress que ha sido hackeado es altamente probable que tenga en las entradas del sitio en la base de datos modificaciones tales como ligas, iframes, noscript, etc. Debes ejecutar queries sobre la base en búsqueda ese tipo de modificaciones. Un ejemplo sería:

SELECT * FROM wp_posts WHERE post_content LIKE ‘%<iframe%’

y lo mismo para %<noscript% y %display:%

Este tipo de consultas las puedes realizar directamente en phpMyAdmin. Este tipo de búsqueda de modificaciones e infecciones no es exhaustivo y no sustituye la búsqueda manual.

Una vez realizada la limpieza del blog, es altamente recomendable la lectura e implementación de los siguientes artículo:

Cómo proteger mi sitio WordPress lo mejor posible I

Cómo proteger mi sitio WordPress lo mejor posible II