Análisis y vulnerabilidades – WordPress (I)

análisis wordpress

En esta entrada veremos las vulenrabilidades típicas que podemos encontrar durante un análisis en un entorno WordPress. Aunque ya existe una gran cantidad de artículos sobre este tema, siempre va bien refrescar un poco la memoria.

Aquí te dejo un vídeo sobre la entrada de hoy:

¿Qué es WordPress?

WordPress es un sistema de gestión de contenido, en inglés Content Management System (CMS), que permite crear una web para la creación y administración de contenido como blogs, tiendas online, portales web… Con la ayuda de los «temas», para el diseño de la web, y los «plugins», pequeñas funcionalidades extras, hace que sea muy fácil y rápido crear una web para alguien que no tiene conocimientos de programación o simplemente que quiera ahorrarse tiempo.

Si quieres saber un poco más sobre WordPress puedes encontrar más información en su web.

Diferencias entre analizar una web normal y otra WordPress

Cuando tenemos que analizar una web que se ha hecho sin un CMS hay una serie de pruebas a realizar que dependerán del contenido de esta. Por ejemplo:

  • Inyecciones de código SQL (o parecido)
  • Deficiencias en la gestión de la autenticación
  • Información sensible expuesta
  • Entidades externas de XML
  • Configuraciones del entorno deficientes
  • Inyección de código JavaScript (XSS)
  • Componentes desactualizados

En el caso de un análisis de un entorno WordPress esto puede reducirse. Al ser un gestor muy usado también ha sido analizado profundamente y es por esto que muchas de las pruebas «típicas» podrían dejar de realizarse. ¿Siempre? No, lógicamente si se dispone del tiempo nunca va mal hacer alguna pequeña comprobación. Además, hay que tener en cuenta que los temas y los plugins pueden llegar a contener por sí solos alguna vulnerabilidad.

Deficiéncias de configuración

Ficheros innecesarios

Una vez hemos instalamos WordPress existen ficheros, usados para este proceso, que pueden ser eliminados. Estos pueden contener cierta información de configuración además exponer la versión de WordPress:

  • wp-config-sample.php (eliminar o renombrar por wp-config.php)
  • wp-admin/install.php
  • readme.html
readme-wp
Contenido del fichero readme.html

Servicios expuestos y panel login

WordPress tiene dos servicios que pueden ser especialmente peligrosos si no se conocen los riegos:

cron.php

Cron permite ejecutar tareas de forma periódica. Por ejemplo, el propio WordPress lo usa cuando se programa la publicación de una entrada o para verificar si existen actualizaciones. Los puglins también pueden añadir tareas a realizar. El problema ocurre cuando un usuario malicioso provoca la ejecución de estas tareas de forma muy seguida. Si la ejecución consume muchos recursos, puede llegar a denegar el acceso de otros usuarios a la web.

xmlrpc.php

Este servicio tiene múltiples funciones. Básicamente permite interactuar con un sitio WordPress remotamente, como una API. Entre las operaciones que ofrece podemos encontrar funciones para ver el listado de entradas de un blog, ver los usuarios o incluso subir ficheros.

Las vulnerabilidades que introduce este servicio son un ataque de fuerza bruta y un Cross-Site Port Attack, que nos permitiría averiguar qué puertos, de un servidor que hayamos especificado, están abiertos. Veremos un ejemplo de cada uno de estos en la próxima entrada.


Como apunte final, una de las recomendaciones típicas es hacer que wordpress no muestre en ningún sitio la versión que tiene. Aunque esto no supone un riesgo directo puede ayudar a obtener información sobre el sitio y, en el caso que hubiera vulnerabilidades para esa versión, un atacante las podría encontrar fácilmente. En la siguiente entrada veremos la herramienta WPScan, añadida en la lista de herramientas, además de algunos otros ejemplos prácticos.

¡Espero que te haya resultado interesante!

Saludos.

Si te ha sido de ayuda, ¡comparte!

Deja una respuesta