Post25 nn

Wordpress es un CMS (Content Management System), el cual es utilizado para crear un sitio web. Básicamente este gestor de contenido viene con una estructura predefinida, la cual permite a la persona que lo administra desarrollar un sitio web conforme a sus necesidades. Este CMS es fácil de usar y uno de los más usados a nivel mundial, sin embargo al ser uno de los más usados, se encuentra propenso a distintas vulnerabilidades las cuales principalmente se ven reflejadas en sus plugins, también existen investigadores de Seguridad que constantemente se dedican a buscar vulnerabilidades dentro de este CMS.

Las vulnerabilidades principales de WordPress, se conforman de la siguiente manera:

  • A través de sus plugins desactualizados, un atacante podría aprovechar ciertas vulnerabilidades y explotarlas a su antojo.
  • El panel de administración de WordPress al estar expuesto, por defecto no posee un captcha, y de esta manera es posible realizar un ataque de fuerza bruta.
  • A través de una configuración por defecto de WordPress es posible realizar una enumeración de usuarios.

En esta oportunidad veremos cómo mitigar estas vulnerabilidades, ya que es muy importante mantener una aplicación de con un mayor nivel de Seguridad.

Sitio Web aparentemente corriendo sobre WordPress

Ahora para verificar la aplicación está corriendo sobre Wordpress agregamos, ingresamos al sitio web con la siguiente estructura:

http://192.168.1.7/tienda/wp-login.php


Sitio Web WordPress


Hemos verificado que el aplicativo esta corriendo sobre un CMS WordPress. A continuación utilizaremos la herramienta Wpscan, esta herramienta nos permitirá buscar vulnerabilidades en el gestor de contenido, para ello la usaremos de la siguiente manera:


wpscan --url http://192.168.1.7/tienda --enumerate p

Con esto le decimos a la herramienta que nos busque todos los plugins instalados en WordPress y sus posibles vulnerabilidades.

Información Relevante sobre el objetivo

Como es posible observar, gracias a la herramienta Wpscan, es posible obtener información como por ejemplo, versión del CMS que está corriendo, información sobre los plugins instalados y sus posibles vulnerabilidades. (Este CMS no solo posee el plugin que viene por defecto en su última versión, para actualizar los plugins es necesario ingresar al panel administrativo y realizar dicha tarea).

A continuación veremos algo muy interesante, la enumeración de usuarios. WordPress por defecto posee un recurso llamado author, a través de este recurso, podemos consultar a la aplicación sobre los autores del sitio (administradores, usuarios estándar). Para detectar que usuarios tiene el sistema podemos hacerlo con la siguiente estructura:

http://192.168.1.7/tienda/?author=1

Aquí le estamos diciendo a WordPress que nos devuelva el author con id 1, y así sucesivamente podríamos ir cambiando el número e ir detectando usuarios del sistema:




http://192.168.1.7/tienda/?author=1  = Usuario: backtrackacademy




http://192.168.1.7/tienda/?author=2  = Usuario: administrador

Utilizando Wpscan para enumerar usuarios, se obtiene lo siguiente:

wpscan --url http://192.168.1.7/tienda --enumerate u

Enumeración de Usuarios con Wpscan


Esto lógicamente puede ayudar a un atacante a realizar un ataque de fuerza bruta, a través de esta vulnerabilidad no existe una solución en concreto, sin embargo, hay una forma muy inteligente de engañar a un atacante.
En primer lugar, debemos iniciar la sesión dentro de nuestro mysql, donde tenemos la base de datos del WordPress. La base de datos de este WordPress se llama “tienda”.





Tenemos la tabla de los usuarios del WordPress en cuestión, y nos percatamos que tenemos una columna llamada “user_nicename”, esta columna hace que el autor, se pueda visualizar con el nombre designado, que corresponde al mismo nombre de usuario, por ende, podriamos cambiar el user_nicename de cada usuario para engañar al atacante y hacerle creer que el nombre de usuario es el que nosotros definamos, por ejemplo, cambiaremos el user_nicename del usuario backtrackacademy y le pondremos como nombre antonio. Para ello, generamos la siguiente consulta SQL:



mysql> update wp_users
   -> set user_nicename = "antonio"
   -> where ID = 1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Lo mismo hacemos con el usuario administrador, le pondremos de user_nicename el nombre de julio.


mysql> update wp_users
   -> set user_nicename = "julio"
   -> where ID = 2;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0


Finalmente nos queda lo siguiente:

Campo user_nicekame modificado


Ahora salimos de mysql y ejecutamos nuevamente Wpscan para enumerar los usuarios de la aplicación web, donde finalmente obtenemos lo siguiente:


Engañando al atacante con la enumeración de Usuarios


Si deseas deshabilitar la solicitud de credenciales FTP para instalar plugins de WordPress lo puedes hacer añadiendo la siguiente línea al archivo wp-config.php.

Con esto, estamos engañando al atacante para hacerle creer que los usuarios del sistema son, antonio y julio.

Podemos añadir otro factor de Seguridad para nuestra aplicación, para esto, agregaremos un plugin de Captcha para evitar ataques de fuerza bruta.

define('FS_METHOD', 'direct');

A continuación descargaremos el plugin llamado reCaptcha  desde el repositorio oficial de plugins de WordPress y en su última versión. Este Captcha está fabricado por Google, por ende podemos deducir que su nivel de Seguridad es mayor en relación a otros Captcha.


Instalando Captcha en WordPress


El proceso de instalación es bien simple, en caso de que lo quieras descargar manualmente, lo puedes hacer de la siguiente ruta:

https://downloads.wordpress.org/plugin/login-form-recaptcha.zip


Una vez instalado vamos a la parte de plugins, en el panel de administración de WordPress y lo activamos:

A continuación necesitamos validar el Captcha, en primer lugar nos dirigimos al siguiente link:


https://www.google.com/recaptcha/intro/index.html


Y pinchamos la opción “Get reCaptcha”, llenamos los datos con la información de nuestra dirección IP de WordPress, de la siguiente manera:

Habilitando Captcha en Google

Luego nos aparecerán dos llaves privadas que deberemos agregar dentro de nuestro panel de administración de WordPress.


Llaves privadas el Captcha

Dentro de nuestro panel de administración de WordPress nos dirigimos a  Settings -> reCaptcha Options, y agregamos las llaves generadas en Google.


Agregando llaves privadas a WordPress

Luego de agregar las llaves privadas, guardamos los cambios, nos deslogeamos y vamos a la ruta /wp-login.php para ver si quedo bien implementado el Captcha.


Implementación del Captcha de manera exitosa


Como es posible observar, el Captcha fue implementado de manera correcta. Estas medidas de seguridad son fundamentales para mantener  un mayor control sobre nuestra aplicación, además SIEMPRE será necesario actualizar los plugins de WordPress a su última versión.




Artículos que te pueden interesar