Publicaciones etiquetadas ‘ataques fuerza bruta’

El día después de un ataque a WordPress

Escrito por Occentus Network el . Posteado en Documentación

Actualmente WordPress es uno de los CMS más utilizados, nació como una plataforma para blogs, y poco a poco se ha convertido en un CMS extremadamente potente y muy popular en los últimos años. Miles de personas y empresas se dedican a crear nuevas funciones, temas, servicios, etc, que hacen cada día más atractiva a ésta plataforma. Esta popularidad también ha hecho que sea un objetivo atractivo para lanzar ataques a gran escala.

Una de las mayores fortalezas de WordPress es su firme compromiso con la seguridad de la plataforma. Desde un principio han previsto y simplificado la actualización de todas sus partes con cierta seguridad y sin necesitar de conocimientos técnicos.
Una instalación media de WordPress, actualizada al día, con plugins contrastados y un tema correctamente programado es un entorno generalmente seguro.

Actualiza de forma rutinaria tu instalación de WordPress, todos los plugins y el tema.
Por defecto, las actualizaciones automáticas deben estar activadas

Algunos de los tipos de ataques más comunes son:

  • Ataques a instalaciones de WorpPress obsoletas
  • Ataques por vulnerabilidades en plugins
  • Ataques de fuerza bruta

Pero, ¿Qué puedo hacer después de un ataque?

Los pasos básicos son los propios ante cualquier infección (Contención, análisis, limpieza):

  1. Contención. En primer lugar hemos de detener el ataque y evitar cualquier mal mayor. Dependiendo del alcance del ataque podemos comenzar protegiendo el acceso público al proyecto. Podemos añadir una protección mediante htpasswd (en el caso de Apache) al directorio raíz de tu site.
    Si contamos con panel de control, seguramente podamos hacerlo desde él. En el caso de Plesk: elige la suscripción, pestaña “Sitio web y dominios”, desplegando las opciones del dominio, encontramos “Directorios protegidos con contraseña” como se muestra en la siguiente imagen:

    Con esto tus ficheros no podrán ser ejecutados sin las credenciales de la protección.

  2. Análisis. Revisar minuciosamente los ficheros logs en busca de patrones sospechosos y el flujo del ataque. Comprueba también los ficheros que hayan podido ser modificados en busca de contenido malicioso. Si tienes acceso a CLI, estos comandos pueden ser de ayuda para buscar algunas cadenas sospechosas:
    grep -r --include=*.php -PHn "(eval\(.*\);)"
    find . -type f -name '*.php' | xargs egrep -i "preg_replace *\((['|\"])(.).*\2[a-z]*e[^\1]*\1 *," --color
    find . -type f -name '*.php' | xargs grep -l "eval *(" --color
    find . -type f -name '*.php' | xargs grep -l "base64_decode *(" --color
    find . -type f -name '*.php' | xargs grep -l "gzinflate *(" --color
    

  3. Limpieza. Dada la simplicidad estructural de WordPress, en el caso de que el alcance de la infección haya sido importante o hayamos determinado que el sitio ha quedado comprometido, solemos recomendar proceder a una reinstalación limpia. Sigue el esta pequeña guía para limpiar los ficheros de WordPress: Manual para reinstalar WordPress sin perder contenido

Reinstalar WordPress sin perder contenido

Escrito por Occentus Network el . Posteado en Documentación

Dada la simplicidad estructural de WordPress, en el caso de que el alcance de la infección haya sido importante o hayamos determinado que el sitio ha quedado comprometido, es en muchas ocasiones recomendable realizar a una reinstalación limpia. Es una operación relativamente sencilla que en apenas 20 minutos puede garantizarnos que la instalación está completamente limpia.

Índice:

  1. Actualizar WordPress y plugins
  2. Guardado de ficheros necesarios
  3. Eliminar todos los ficheros de WordPress
  4. Subir un nuevo WordPress
  5. Recuperar ficheros, plugins y/o temas guardados
  6. Acceder al administrador para cargar la configuración de la base de datos

Pasos a seguir:

  1. Actualizar WordPress y plugins
  2. En primer lugar recomendamos acceder a la copia infectada y actualizar tanto el WordPress como los plugins utilizados a la última versión. Ésta actualización es necesaria para asegurarnos que la estructura de la base de datos y los plugins de WordPress están actualizados a la última versión de WordPress.

  3. Reservamos los archivos que consideremos necesarios
  4. Antes de empezar con la instalación guardaremos copia de los plugins personalizados, comprados, o que no podamos volver a descargar. Comprobaremos especialmente plugins y el tema utilizado en nuestro WordPress. Comprobaremos si estos mantienen una configuración propia dentro de alguna de las siguientes carpetas: /wp-content/plugins, wp-content/themes o wp-content/uploads. Puede resultar útil conservar una copia de los ficheros .htaccess y wp-config.php.

    Antes de recuperar el contenido del directorio uploads, verificaremos que no existe ningún archivo *.php, a excepción del index.php.
    Recuerda anotar el listado de los plugins que tenemos actualmente activos.

  5. Eliminar todos los ficheros de WordPress
  6. Después de guardar, procedemos a eliminar todos y cada uno de los ficheros del site, incluyendo .htaccess y/o wp-config.php (los hemos guardado en el paso anterior).

    Antes de borrarlo, recuerda copiar las credenciales de la base de datos o configuraciones especiales existentes en el fichero wp-config.php. Los datos más relevantes que necesitarás son:
    /** El nombre de tu base de datos de WordPress */
    define('DB_NAME', 'nombreBBDD');
    /** Tu nombre de usuario de MySQL */
    define('DB_USER', 'usuarioBBDD');
    /** Tu contraseña de MySQL */
    define('DB_PASSWORD', 'contraseñaBBDD');
    

  7. Subir una copia limpia de WordPress
  8. Sube una copia limpia de los ficheros desde el sitio oficial de WordPress en tu directorio raíz. A continuación deberás añadir las credenciales de la Base de datos en tu nuevo fichero wp-config.php, para cargar los datos con el WordPress y plugins actualizados.

    Descarga la última versión desde el sitio oficial de WordPress, recuerda que ésta debe coincidir con la versión actualizada previamente.

  9. Recuperar ficheros, plugins y/o temas guardados
  10. Antes de acceder al wp-admin (importante!) recuperaremos manualmente los ficheros de los plugins que teníamos instalados. Esto lo haremos desde el zip que podemos descargar desde el directorio oficial de plugins de wordpress. En caso excepcional, recuperaremos de la copia salvada aquellos plugins o temas guardados. También recuperaremos las imágenes del directorio uploads, en general cualquier fichero que hayamos tenido que guardar.

    Antes de recuperar ningún fichero antiguo, es importante revisar uno por uno su contenido.
    Es muy frecuente que estén infectados para poder ser utilizados de caballo de troya.
    El directorio uploads, nunca, nunca debería contener archivos *.php, a excepción del index.php que estará vacío.

  11. Acceder al administrador para cargar la configuración de la base de datos
  12. Una vez tengamos todo recuperados los ficheros (wordpress, plugins y plantilla) desde de copias limpias, y no antes (importante!), procederemos a acceder vía navegador al administrador del site. Al acceder nos mostrará un mensaje de “Actualizar la base de datos”, le decimos que si, para que cargue la configuración guardada (del anterior WordPress) y ya podremos acceder al administrador (dominio.com/wp-admin), con el mismo usuario y contraseña que teníamos previamente.

    Para asegurarnos de que todos los plugins se cargan correctamente, desde el /wp-admin, en la pestaña plugins, pulsamos sobre editar y guardar en cada uno de los plugins que queramos activar. Así conseguimos cargar la configuración guardada en la base de datos para cada plugin.

    Una vez tengamos completamente recuperado nuestro wordpress, procederemos a securizarlo.

Y con ésto, nos aseguramos de tener una instalación limpia y segura de WordPress