ojin
08 Mar
Explotación a Gestores de Contenido

¿Qué son los Gestores de Contenido?

Los gestores de contenido, comúnmente abreviados como CMS (Content Management Systems), constituyen una clase de software esencial en el ámbito de la creación y administración de contenidos en línea. Estos sistemas representan una amalgama de herramientas y funcionalidades diseñadas para simplificar el proceso de construcción, gestión y publicación de contenido digital, abarcando una diversidad de formatos que van desde páginas web estáticas hasta complejas plataformas interactivas y dinámicas.
En su esencia, los CMS actúan como una suerte de plataforma centralizada desde la cual los usuarios pueden gestionar todos los aspectos relacionados con la creación y mantenimiento de un sitio web o aplicación web. Esto incluye la creación y edición de contenido en diversos formatos (texto, imágenes, video, etc.), la organización y categorización de dicho contenido, la gestión de usuarios y permisos, la personalización del diseño y la funcionalidad a través de temas y complementos, así como la gestión de la estructura del sitio y la optimización para motores de búsqueda, entre muchas otras funciones.

Ejemplos de CMS

Entre los CMS más destacados y ampliamente utilizados se encuentra WordPress, un sistema de código abierto que ha logrado una inmensa popularidad gracias a su facilidad de uso, flexibilidad y una vasta comunidad de desarrolladores y usuarios que contribuyen con temas y complementos que extienden su funcionalidad de manera significativa. WordPress es particularmente apreciado por su capacidad para adaptarse a una amplia variedad de casos de uso, desde simples blogs personales hasta complejas plataformas de comercio electrónico y sitios web empresariales.


Otro CMS prominente es Drupal, también de código abierto, que se destaca por su enfoque en la flexibilidad y escalabilidad. Drupal es ampliamente utilizado en proyectos que requieren una mayor personalización y un mayor grado de complejidad, como sitios web gubernamentales, portales de noticias y comunidades en línea.
Joomla es otro CMS popular que se encuentra en un punto intermedio entre WordPress y Drupal en términos de complejidad y funcionalidad. Ofrece una amplia gama de características y extensiones que permiten a los usuarios crear sitios web altamente personalizados sin la necesidad de tener conocimientos avanzados de programación.

Herramientas de escaneo

Las herramientas de escaneo de WordPress, como WPScan y DroopScan, son herramientas especializadas diseñadas para identificar vulnerabilidades y posibles puntos de entrada en sitios web construidos con WordPress y Drupal, respectivamente. Estas herramientas son ampliamente utilizadas por administradores de sistemas, desarrolladores web y expertos en seguridad para evaluar la seguridad de sus sitios web y aplicar medidas correctivas para mitigar posibles riesgos.


WPScan

WPScan, por ejemplo, es una herramienta de código abierto que se centra específicamente en la detección de vulnerabilidades en instalaciones de WordPress. Utiliza una combinación de técnicas de escaneo automatizado y análisis estático para identificar problemas de seguridad comunes, como plugins desactualizados, temas vulnerables, configuraciones inseguras y otros puntos débiles que podrían ser explotados por atacantes.

DroopScan

Por otro lado, DroopScan está dirigido a la detección de vulnerabilidades en sitios web construidos con Drupal. Al igual que WPScan, DroopScan utiliza un enfoque automatizado para escanear sitios Drupal en busca de posibles vulnerabilidades, como versiones desactualizadas de Drupal core, módulos no parcheados y configuraciones inseguras que podrían poner en peligro la seguridad del sitio.
Ambas herramientas ofrecen una amplia gama de funcionalidades, incluyendo la capacidad de escanear múltiples sitios de forma simultánea, generar informes detallados sobre las vulnerabilidades detectadas, y proporcionar recomendaciones sobre cómo solucionar los problemas identificados.

WPScan y la vulnerabilidad de XML-RPC

La vulnerabilidad relacionada con el archivo XML-RPC en WordPress está asociada con la capacidad de este archivo para ser utilizado como una puerta trasera potencial para acceder a ciertas funciones del sitio web que podrían no estar destinadas a ser públicas. XML-RPC es un protocolo que permite la comunicación entre diferentes sistemas de software a través de HTTP utilizando XML como formato de datos.


En el contexto de WordPress, el archivo xmlrpc.php es una API que permite a los desarrolladores y aplicaciones externas interactuar con un sitio WordPress de forma remota. Esto significa que puede ser utilizado para realizar diversas acciones, como publicar contenido, editar publicaciones, obtener información del sitio, entre otras, sin necesidad de acceder directamente al panel de administración.


La vulnerabilidad surge cuando los permisos de acceso al archivo xmlrpc.php no están configurados correctamente o cuando el archivo no está debidamente protegido. Esto puede permitir a un atacante realizar ataques de fuerza bruta o explotar fallos de seguridad conocidos para obtener acceso no autorizado al sitio web o para realizar acciones no deseadas, como la enumeración de usuarios, la publicación de contenido no autorizado o la ejecución de código remoto.
En resumen, la vulnerabilidad relacionada con el archivo XML-RPC en WordPress radica en su capacidad para ser utilizado como una puerta trasera potencial para acceder a funciones del sitio web que podrían no estar destinadas a ser públicas, lo que puede conducir a una serie de problemas de seguridad si no se aborda adecuadamente mediante la implementación de medidas de seguridad apropiadas y la actualización regular del software.
A continuación, se enlistará el contenedor de GitHub, dentro de este habrá un archivo Docker-File que al ejecutarlo te montara el laboratorio para probar la herramienta.


Preparar el laboratorio


Inicio de la Página

Fase de Reconocimiento

Para Empezar con la fase de reconocimiento y puede ser la más importante, hay dos cosas por hacer al enfrentarse a algún gestor de contenido, para empezar y lo más fundamental es saber a qué te estas enfrentado. Primeramente, puedes hacer un reconocimiento pasivo de manera visual a la página o mediante la herramienta Whatweb, utilizada para el reconocimiento y la enumeración de tecnologías web en un sitio específico. Funciona escaneando sitios web y analizando las respuestas para identificar las tecnologías y plataformas utilizadas en la construcción y operación del sitio.

Gracias a esto puedes puedes saber que versión (En este caso WordPress) tiene el WordPress al que te estas enfrentando, y simplemente buscando algún exploit en Searchsploit (Si este esta desactualizado o tiene vulnerabilidades que se puedan explotar).

En el caso de WordPress hay secciones llamados Plugins, estos plugins son funcionalidades adicionales, sirven para extender y personalizar las capacidades de WordPress más allá de las características básicas que vienen incluidas en la instalación estándar. Con esto en contexto, mediante una petición a través de Curl  podemos ver que plugins podemos encontrar dentro del sitio en cuestión.

En algunas versiones anteriores de WordPress se puede aplicar un reconocimiento a usuarios validos a la hora de acceder al panel de wp-admin (Además este panel no debe o debería estar a la vista de cualquiera). Este reconocimiento a usuarios como vimos el en la página principal vimos que había un usuario o alguien que publico algo con el nombre de Admin.

Estando en el panel de wp-admin, si ponemos como usuario Admin y alguna contraseña cualquiera, vemos que se nos muestra la siguiente leyenda:
The Password you entered for the username Admin is incorrect. Entonces sabemos que el usuario Admin existe, pero la contraseña es algo que desconocemos.

Ya en este punto confirmamos que hay un usuario llamado admin.

Uso de la Herramienta WPScan

Primeramente y antes de utilizar la herramienta debemos saber que hace tal:
Las principales características de WPScan incluyen:

  1. Escaneo de vulnerabilidades: WPScan puede identificar vulnerabilidades conocidas en instalaciones de WordPress, incluyendo versiones desactualizadas de WordPress core, plugins y temas.
  2. Enumeración de usuarios: Puede enumerar usuarios válidos en un sitio de WordPress mediante ataques de fuerza bruta, lo que puede ayudar a identificar nombres de usuario comunes o débiles.
  3. Detección de configuraciones inseguras: WPScan puede identificar configuraciones de WordPress que podrían representar riesgos de seguridad, como permisos incorrectos en archivos y directorios, archivos de configuración expuestos, etc.
  4. Escaneo de plugins y temas: Además de escanear la instalación de WordPress en sí, WPScan puede analizar los plugins y temas instalados en busca de vulnerabilidades conocidas.
  5. Integración con bases de datos de vulnerabilidades: Utiliza bases de datos de vulnerabilidades conocidas, como la base de datos de vulnerabilidades de WPScan, para identificar posibles riesgos de seguridad.
  6. Escaneo de configuraciones de WordPress: WPScan puede escanear archivos de configuración de WordPress en busca de información sensible que podría ser explotada por atacantes.


El primer uso de la Herramienta es de manera sencilla solo usando el como opción la URL del sitio objetivo.

A la hora de hacer el primer uso de la Herramienta podemos notar que el sitio esta desactualizado y la herramienta nos informa que hay plugins interesantes o archivos que no comúnmente deben estar a la vista de todos. Dentro de WPScan existen opciones extra que pueden ayudarnos a la hora de descubrir vulnerabilidades en este caso estaremos usando la opción -vp que nos lista los plugins vulnerables, también utilizáremos un api-Token que se obtiene al registrarse en la página de WPScan, al usar este api-Token se nos mostraran más opciones de vulnerabilidades obtenidas a la hora del escaneo.

 En este caso estamos con la vulnerabilidad del archivo XML-RPC, a la hora de buscarlo de manera objetiva podemos ver que la pagina si tiene ese archivo a la vista y puede ser vulnerable.

Este documento utilizado por WordPress está definido por el archivo xmlrpc.php que tiene la siguiente estructura: donde fdjskfj es una contraseña que desconocemos.

<methodCall>
<methodName>wp.getUsersBlogs</methodName> 
<params> 
<param><value>Admin</value></param>
<param><value>fdjskfj</value></param>
</params>
</methodCall>

Al hacer una petición por POST con Curl de la siguiente manera tiene como resultado lo siguiente:

Como podemos observar la respuesta que nos manda es parecida al panel de autenticación de la página, pero sabemos que el usuario es correcto solo lo que está mal debe de ser la contraseña, entonces estando en este punto podemos hacer un script que, mediante un ataque de contraseñas, que con el diccionario adecuado puede estar la contraseña correcta.


El script en bash es el siguiente:

Al ejecutar el script me dice que la contraseña es (Esto sabiendo que mi diccionario tiene un poco más de 100 líneas aproximadamente y dependiendo del tamaño del diccionario se tardara lo necesario):

Para comprobar que el usuario y la contraseña son correctos podemos hacer una petición por POST con Curl como lo hicimos anteriormente de la siguiente manera:


Haciendo la petición nos dice los siguiente:

Vemos que es diferente a la respuesta anteriormente vista, y nos muestra algo interesante que es la información de que el usuario tiene privilegios y por lo tanto los parámetros son correctos. 

Ingresar a la Pagina


Próximamente Escaneo y Explotación a Drupal ...

Comentarios
* No se publicará la dirección de correo electrónico en el sitio web.