Soporte » Seguridad » Limpiar un WordPress infectado/hackeado

  • Moderador Jose Conti

    (@jconti)


    Lo primero es que cuando subes una copia limpia de WordPress, arreglas el problema de funcionamiento de WordPress ya que restauras los archivos originales y ya no están modificados. Pero siempre hay otros archivos modificados, o incluso, solo archivos subidos como uploaders, scripts para envío masivo de emails (yo he visto sitios enviando más de 16.000 emails/hora, o simplemente un sitio de phishing).

    Lo segundo es que aunque restaures los archivos de WordPress, seguramente te los volverán a modificar al día siguiente si no se ataca el problema de la raíz ¿por dónde han entrado?

    Lo anterior es obvio, lo se, pero es la introducción a lo siguiente para que se vea lo que está sucediendo. Mucha gente se piensa que solo subiendo todo de nuevo, sobrescribiendo los archivos, resolverá el problema.

    No sirve solo subir todo de nuevo sobrescribiendo los archivos. Seguro que volverás a tener problemas en breve, o no lo solucionarás por scripts que te han podido subir.

    En primer lugar, y es importante. En el momento es que comenzó a pasar todo, ¿Tenias plugins, WordPress o el theme sin actualizar? Esto nos indicará si es un problema de descuido de la instalación aparte de otros posibles que ya llegaré a ellos.

    Una cosa que puede suceder, es que «limpies» WordPress, pero ni los plugins, ni el theme, ni otros directorios de WordPress.

    Lo que se tienes que hacer para limpiar una instalación de forma correcta y por este orden es:

    En los ordenadores que acceden vía FTP al servidor

    1. Pasa un buen antivirus para asegurarte que no tengas ningún troyano. Recomiendo pasar Panda. La versión gratuita ya es más que suficiente y déjalo ya instalado. Tengo clientes con McAfee, que tras pasar Panda, descubrieron más de 60 infecciones en su ordenador. Una vez pasada Panda Free, pasa el Panda Cloud Cleaner. Con este acabarás de asegurarte que no tienes ninguna infección. Si eres usuario de Mac, te recomiendo que utilices ClamXav y si eres de Linux, ClamAV
    2. Si usas FileZilla, actualiza a la última versión para tener las contraseñas encriptadas, no en texto plano como las tienen las antiguas versiones.

    En ordenadores que tienen acceso a la administración de WordPress

    1. Pasar los dos programas de Panda o los otros si no eres de Windows por si tienen troyanos que están capturando las contraseñas. Que las contraseñas sean seguras.

    En el servidor:

    1. Cambia las contraseñas del FTP. Sobre todo que sean seguras. Sobre todo, hazlo después de haberte asegurado que tu ordenador no tiene ningún tipo de infección, o te las volverá a capturar el posible troyano.

    En WordPress

    1. Consigue copias limpias del Themes si no las tienes ya.
    2. Consigue copias limpias de todos los plugins que utilices y en sus últimas versiones.
    3. Descárgate todo el directorio uploads de WordPress a tu ordenador. Si usas plugins que creen directorios dentro de wp-content para subir archivos, descárgalo también. Hay plugins que crean directorios propios principalmente para subir imágenes. Pero ojo, estate seguro que ese directorio es legítimo, no vayas a descargarte para su posterior subida el directorio que ha creado el cyber criminal.
    4. Descárgate la base de datos a tu ordenador. Puedes usar el gestor de bases de datos que ofrezca tu hosting, por regla general será phpMyAdmin
    5. ve a los usuarios de WordPress, y mira que no haya ninguno que no debiera estar ahí. Si hay algún usuario que no debiera estar, bórralo.
    6. Ve a la base de datos, y mira la tabla {prefijo}_users que no haya ninguno que no debiera estar ahí. Si lo hubiera, apunta el ID de usuario y elimínalo. OJO, PRESUPONGO QUE HAS REALIZADO UNA COPIA DE LA BASE DE DATOS TAL Y COMO TE HE DICHO EN EL PUNTO 4.
    7. En el caso en que hubiera algún usuario que no debía estar en {prefijo}_users ve a la tabla {prefijo}_usersmeta y busca todos los metadatos del ID de los usuarios que has eliminado y eliminalos todos.
    8. Copia a tu ordenador el archivo wp-config.php.
    9. Una vez copiado, ábrelo y mira que no haya nada que no debiera estar ahí. Si lo hubiera, bórralo.
    10. Pasa el Panda antivirus o los otros antivirus si tuvieras otro SO por el directorio uploads que te has descargado. Por regla general los antivirus detectan malware, uploaders, etc. Si te has descargado otros directorios de otros plugins, revísalos igualmente con el antivirus.
    11. Entra uno a uno en todos los directorios dentro de uploads y de los otros directorios creados por otros plugins y mira que no haya nada que no debería estar ahí, como archivos php, exe, ISO, etc. Si hay archivos index.php, ábrelos y mira que no haya nada raro
    12. Borra TODO lo que hay en la web ¿todo? si TODO. Pero ten en cuenta que debes ya haber copiado wp-config.php, el directorio uploads, los otros directorios creados por plugins si los hubieran y haberlo comprobado todo tal y como te he dicho en los puntos 9, 10 y 11. OJO, hablo de todo lo relacionado con WordPress. Si tuvieras cosas que no pertenecen a WordPress (otros directorios, otros CMS, etc..) no los borres, pero tendrás que revisarlos también por si están entrando por ahí
    13. Sube una copia limpia de WordPress.
    14. Sube el directorio uploads ya comprobado y limpio y los otros directorios creados por plugins si existieran, igualmente revisados y limpios.
    15. Sube una copia limpia de todos los plugins que usas en tu sitio
    16. Sube el theme limpio
    17. Sube el archivo wp-config.php (ya comprobado)
    18. Entra en la administración de WordPress y guarda de nuevo los enlaces permanentes para que te cree un .htaccess nuevo.
    19. Que todos los usuarios cambien sus contraseñas, por si han sido capturadas por algún script. Si esto no se puede hacer inmediatamente, cambia tu directamente las contraseñas apretando en la edición de cada usuario en restablecer contraseña, WordPress generará contraseñas nueva y seguras.

    Permisos de archivos y directorios en el servidor

    Este apartado es uno de los más importantes. Podemos tener todo actualizado y sin vulnerabilidades, pero si aplicamos permisos incorrecto desde el punto de vista de la seguridad a los archivos y directorios, estamos dejando el campo abierto a los cyber criminales.

    ¿Alguna vez has tenido que dar un permiso 777 a un directorio o archivo? si es así, tienes un gran problema. Hacer esto, es como irnos de fin de semana de nuestra casa, y dejar la ventana o la puerta abierta de par en par. Puede que un ladrón no vea que te la has dejado, pero si lo ve, entrará y te limpiará la casa. El dar permisos 777 es como dejarse la ventana o la puerta abierta en tu casa, con la diferencia que los cyber criminales saben que por regla general que esa ventana o puerta será el dirtorio wp-contant/uploads o wp-content/cache, etc…

    Si te encuentras que debes dar permisos 777 para que tu WordPress funcione de forma correcta, habla con tu hosting o sysadmin y dile que instale uno de los siguientes mods en el servidor:

    • suPHP
    • mod_ruid2
    • mpm-itk
    • mod_fcgid
    • PHP-FPM que es una alternativa a mod_fcgid cuando el servidor web es Nginx en vez de Apache

    Si tu hosting se negará por el motivo que fuera, te aconsejo que busques otro hosting.

    Una vez instalado, ya no te hará falta dar permisos 777 y asegúrate que todos los permisos son para directorios, 755 y para los archivos 644, a excepción si quieres del archivo wp-config.php que le puede dar permisos 440, pero no es obligatorio.

    Si el hosting instala uno de esos módulos, y tu pones los permisos a los directorios y archivos que te comento, tu WordPress estará con todas las ventanas y puertas cerradas y blindadas, siempre y cuando tengas todo actualizado a la última versión y no tengas troyanos en tu ordenador.

    Por cierto, si eres usuario de Mac o Linux, no caigas en la falsa seguridad que como yo uso Mac/Linux, no me afectan los virus. En primer lugar, eso ya no es cierto, y en segundo lugar, si marcáis la casilla de WordPress de «Recordarme» en la página de inicio de sesión, os pueden capturar la Cookie de sesión en cualquier sitio y acceder a vuestro WordPress con vuestro propio usuario. No es algo normal, pero se puede llegar a hacer. Mi recomendación, nunca marquéis esa casilla.

    Espero que esto os sea de ayuda.

    Como has podido ver, te pueden estar entrando de varias formas.

    1. Tienen acceso al FTP
    2. Tienen contraseñas de usuarios con permisos
    3. El theme está modificado
    4. Plugins modificados con vulnerabilidades
    5. Archivos que te hayan subido por vulnerabilidad.
    6. Permisos erróneos o peligrosos en archivos o directorio (777)
    7. Marcado el «Recordarme» en el formulario de identificación y posterior captura de vuestra cookie
    8. Por desgracia, existe un último punto que no podemos evitar nosotros de ninguna forma, y es por culpa del mismo hosting. Es que el servidor no tenga las cuentas aisladas, es decir, que si el cyber criminal accede a otra cuenta del servidor por no seguir todos los consejos de seguridad, por muy seguro que lo tengamos nosotros todo, nos hackearán igual ya que podrán saltar de la cuenta asegura que han hackeado a la nuestra. Por eso es importante averiguar si el hosting usa el aislamiento de cuentas. No todos los hacen ni saben como hacerlo.

    Regla básica de seguridad

    • Tener siempre TODO actualizado a la última versión. El dejar algo sin actualizar, puede significar el dejar una puerta abierta a los cyber criminales.
    • Nunca escribir con un usuario con rol de administrador, hacerlo significa que el cyber criminal puede saber el nombre de usuario del administrador. Si ya los has hecho, crea un nuevo usuario con rol administrador, accede mediante este nuevo usuario, y degrada a Editor el que estabas utilizando hasta ahora.
    • Utilizar siempre contraseñas seguras. Cuanto más larga, mejor. Por regla general, si la contraseña la puedes recordar, es que no es lo suficientemente fuerte. La forma más sencilla de solucionar este problema, es la utilización de gestores de contraseñas, y no hablo de los que incluyen los navegadores, si no de software adquirido como podría ser 1Password. Estos softwares, aparte de guardarte todas las contraseñas de forma segura, si quieres te las crea, de forma que gracias a él, las contraseñas de todos mis sitios tienen siempre un aspecto similar a este U>g43NftigVgWBtvB4j64YsPv(U$w]A, contraseñas de 31 caracteres (letras, números, mayusculas y minúsculas y signos) de forma que son en la práctica imposibles de encontrar por un ataque de fuerza bruta.
    • Nunca dar permisos 777 a un directorio o archivo
    • Nunca utilizar la misma contraseña en dos sitios diferentes. Si se hacen con tu usuario y contraseña, tendrían acceso absolutamente a todos vuestros sitios.
    • Nunca, nunca te conectes a una WIFI gratuita si no estás utilizando un VPN. El hacerlo puede significar que un cyber criminal esté capturando todo lo que haces consiguiendo todas tus contraseñas. Y mucho menos accedas a tu WordPress a menos que uses el VPN o tu sitios esté bajo cifrado (HTTPS/TLS).
    • Realizar backups diarios de tu sitio. Esto hará que en caso de un problema, sea del tipo que sea, se pueda restaurar la web de forma rápida. Es importante que este backup sea enviado a otro sitio, ya que si no fuera así, el mismo problema que afecte a nuestro sitio, podría afectar a los backups, con lo que los perderíamos todos. Los backups, por regla general, pueden ser enviados a Dropbox, S3 de Amazon, Azure, etc…
    • Y por supuesto, nunca, nunca, nunca, descargarse themes o plugins de sitios desconocidos, y aún menos si os están ofreciendo un theme o plugin que por los cauces normales lo deberías adquirir. Estos themes o plugins, en un 99’99% de los casos llevarán regalo, es decir, os estarán poniendo un backdoor en vuestra instalación por el que entrarán.

    Tener una web para tener presencia en la red, no es un juego para pasar el rato, necesita de cuidados y debes ser cuidadoso y cauteloso. Si encuentras que hacer todo esto no es para ti, y hablo de los consejos de seguridad, no de limpiar el sitio tras un hackeo, te aconsejo que en vez de usar WordPress.org, uses WordPress.com o que contrates los servicios de un profesional (un profesional de verdad) para que mantenga tu instalación.

    Si has encontrado troyanos en tu ordenador, te aconsejo que cambies absolutamente todas las contraseñas de todos los sitios, llámale Twitter, Facebook, bancos, suministradoras de servicios como el gas, agua, luz, teléfono, etc.. Pueden tener absolutamente todos los usuarios y contraseñas de todos tus sitios y contratar servicios para terceros por ejemplo y cargártelos todos a ti.

    Si encuentras complicado o no te atreves a realizar todo lo mencionado en esta guía, te aconsejo que contactes con un profesional.

    Esta guía hay que tomarlo como lo que es, una guía, no pretende ni hacer del que lo lee todo un experto, ni ser una biblia, así que tómalo como lo que es, una guía con consejos y posibles forma de actuación.

    No me hago responsable de posibles errores que cometas al seguirla y que puedan dañar tu sitio, por algo te he repetido en diferentes ocasiones que debes realizar backups, por si tienes cualquier problema puedas restaurar el sitio.

    Este guía está en constante evolución, así que ve mirando si te interesa el tema.

    Si tienes cualquier problema, abre un tema en el foro de seguridad, y seguro que alguien te ayudará encantado.

  • El debate ‘Limpiar un WordPress infectado/hackeado’ está cerrado a nuevas respuestas.