Seleccionar página

Plecost, analizando vulnerabilidades en WordPress

martes, 15 septiembre 2015 | WordPress | 2 Comentarios

No es nuevo decir que uno de los vectores de ataque en WordPress son los plugins no actualizados o discontinuados que muchos usuarios utilizan a diario sin plantearse que las vulnerabilidades en plugins de WordPress son la mayor causa de amenaza habitual a este CMS.

La culpa no es necesariamente del ‘core’ de WordPress, pues si lo analizas detalladamente podrás observar que en el transcurso de un año las vulnerabilidades a las que se ve sometido el núcleo de este CMS son muy pocas o de perfil medio o bajo.

 
Vulnerabilidades del core de WordPress en 2015
 

En lo que va de 2015 apenas fueron documentadas 5 vulnerabilidades para el core de WordPress.

Los usuarios que no analizan bien un plugin antes de hacer uso del mismo en una instalación aparente estable de WordPress, son la mayor causa de los problemas de seguridad que vienen después, cuando el plugin entra en producción y comienza a ser blanco de scripts o exploits para aprovechar la brecha que una mala programación de determinado plugin deja tras de si.

WordPress es muy seguro, y de eso no me cabe la menor duda, por lo que descartando que los problemas de seguridad provengan del core, solo resta pensar que el usuario, poco experimentado o desconocedor de las pautas mínimas que debería tener en cuenta antes de hacer uso de un plugin, acaban afectando directamente a todo el sitio web y exponiéndolo a usuarios malintencionados con el fin de defacearlo, infectarlo para propagar malware o aprovechar la brecha para escalar privilegios dentro de la cuenta de usuario, cuyo fin perfectamente podría ser el control del servidor donde se aloja la cuenta.

[piopialo vcboxed=»1″]¡WordPress es muy seguro, y de eso no me cabe la menor duda![/piopialo]

Aquí es donde herramientas como Plecost se presentan como aliados para ‘cazar’ gazapos de programación en plugins vulnerables y de esta forma poder determinar si un sitio web está expuesto a una explotación a raíz de una vulnerabilidad conocida o un 0day, ¡tanto da!

 

¿Que es Plecost?

Básicamente un escaner de vulnerabilidades de plugins y core de WordPress, desarrollado en Python, que por medio de línea de comandos podemos ejecutar contra un sitio web en busca de plugins vulnerables de forma que podamos determinar si procede actualizarlos, (si existe actualización naturalmente), o si es mejor desactivarlos o eliminarlos mientras no hayan sido parcheados por los autores.

Plecos busca vulnerabilidades tanto en plugins como en el core de WordPress, analizando un único sitio web o basándose en resultados de búsquedas en Google a raíz de una lista de plugins dada.

Yo me centro en este artículo en búsqueda de vulnerabilidades en instalaciones de WordPress basadas en una url única (sitio web).

 

Generar la lista de plugins actualizada

Para que Plecost no devuelva falsos positivos, algo que perfectamente sucede si se invoca el archivo que por defecto incorpora la herramienta, hay que actualizar la lista de plugins de WordPress para que Plecost pueda realizar la comparación de forma correcta.

 
Falsos positivos en un análisis con Plecost
 

Si observas bien la captura verás que la versión detectada es superior a la versión de wp_plugins_list.txt provocando que el análisis solo devuelva falsos positivos.

La lista de plugins para que Plecost analice y compare de forma correcta tienes que actualizarla por línea de comandos ejecutando, preferiblemente desde la ruta /usr/share/plecost:

plecost -R /usr/share/plecost/wp_plugin_list.txt

 
Actualizar lista de plugins de Plecost
 

Es importante que tengas en cuenta el tiempo, ya que esta tarea va a tardar mucho, y cuando digo mucho, digo bastante, así que olvidate por un rato de trastear con plecost, hasta que la lista no acabe de actualizarse, vete a dar una vuelta, mira un rato la tele o tómate una cervecita mientras miras otros artículos de mi blog. 

Puedes limitar la lista usando como parámetro -n <número> por ejemplo:

plecost -R /usr/share/plecost/wp-plugin_list.txt -n 60

Una vez concluye esta tarea de actualización de la lista de plugins verás…

 
Lista de plugins actualizada
 

La lista de plugins contenida en el archivo wp-plugin_list.txt se genera en base a los plugins más populares localizados en el directorio de plugins oficial de WordPress.org

 

Sintaxis de uso de Plecost

La sintaxis de esta herramienta es muy sencilla y puedes ejecutarla desde línea de comandos teniendo en cuenta los parámetros que permite:

/usr/bin/plecost [options] [ URL | [-l num] -G]

 

Opciones:

  • -n: Número de plugins a usar (por defecto todos – más de 7.000).
  • -c: Comprobar plugins únicamente asociados con CVE.
  • -R archivo: Actualiza la lista de plugins. Utiliza la opción -n para controlar el tamaño.
  • -o archivo: Archivo de salida. (por defecto «output.txt»).
  • -i archivo: Lista de plugins de entrada.
  • -s tiempo: Tiempo mínimo de descanso entre dos pruebas. Tiempo expresado en segundos. (Por defecto 10).
  • -M tiempo: Tiempo máximo de descanso entre dos pruebas. Tiempo expresado en segundos. (Por defecto 20).
  • -t num: Número de hilos. (Por defecto 1).
  • -h: Muestra la ayuda. (Más información: http://iniqua.com/labs/).

Ejemplo de uso:

plecost -i /usr/share/plecost/wp_plugin_list.txt -t 10 -n 100 
plecost -i /usr/share/plecost/wp_plugin_list.txt -s 12 -M 30 -t 20 -o resultados.txt 

* Busca plugins vulnerables con 20 hilos de actividad, tiempo de espera entre los 12 y 30 segundos para el target www.sitiowp.com

Para más información te recomiendo edites el archivo /usr/bin/plecost con Vim (o tu editor favorito) y veas otras sintaxis adicionales interesantes.

Si eres usuario de distribuciones de seguridad o pentesting como Kali Linux, no deberás preocuparte con la instalación de Plecost pues ya viene como herramienta entre las disponibles junto con JoomScan de la que ya te he hablado anteriormente en este blog.

 

Buscando vulnerabilidades con Plecost

Bueno, ya conoces la sintaxis por lo que solo te queda construir el comando correcto a ejecutar en terminal para obtener resultados a partir de una url a analizar.

Si estas en /usr/bin puedes lanzar Plecost directamente:

plecost -i /usr/share/plecost/wp_plugin_list.txt -t 10 -n 100 

 
Escaneando una instalación de WordPress con Plecost
 

Esté análisis se ha realizado sin actualizar wp_plugin_list.txt para no dar ánimos a usuarios malintencionados 😀

Si tu instalación de WordPress está en tu ordenador (localhost) puedes lanzar el análisis con esta sintaxis (naturalmente poniendo la IP LAN de tu maquina):

plecost -n 100 -s 10 -M 15 -i /usr/share/plecost/wp_plugin_list.txt 192.168.1.12/wordpress

Si aparecen vulnerabilidades en plugins, el sentido común deberá llevarte directamente al dashboard de tu instalación de WordPress a realizar una copia de seguridad (XCloner, etc.) y desde Plugins, actualizar aquellos que tengas vulnerables si existe una nueva versión liberada, de lo contrario es mejor que los desactives, o mejor aún ¡que los desinstales!

Para cada plugin vulnerable detectado Plecost te mostrá información del CVE correspondiente ¡toca que leas e investigues un poco!.

[i] Plugin found: akismet
    |_Latest version:  3.1.3
    |_ Installed version: 3.0.0
    |_CVE list:
	|___CVE-2009-2334: (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2334)
	|___CVE-2007-2714: (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-2714)
	|___CVE-2006-4743: (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-4743)
	|___CVE-2009-2334: (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2334)
	|___CVE-2007-2714: (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-2714)
	|___CVE-2006-4743: (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-4743)

[perfectpullquote align=»full» color=»#ff0000″ class=»» cite=»CVE» link=»https://cve.mitre.org/»]Common Vulnerabilities and Exposures, siglas CVE. Es una lista de información registrada sobre conocidas vulnerabilidades de seguridad, donde cada referencia tiene un número de identificación único.[/perfectpullquote]

 

Recuerda que el uso de esta herramienta debe ser siempre sobre sitios que tengas alojados en tu ordenador o externos (en Internet) sobre los que tengas permiso para ejecutar este tipo de análisis y siempre bajo tu responsabilidad.

Si no especificas un archivo de salida de los resultados con -o resultados.txt por ejemplo, Plecost guardará el resultado en tu carpeta raíz de usuario /home/usuario o la que sea, en el archivo output.txt que podrás editar y consultar los resultados del análisis.

 

¿Quien está detrás de Plecost?

Decirte que detrás de esta herramienta están un grupo de 4 Ingenieros españoles que lleva tiempo desarrollando herramientas como Topera, GoLISMERO o Plecost con una sólida formación en Seguridad y Hacking Ético.

Te recomiendo que pases por su web Iniqua a conocer con más detalle sus proyectos.

 

Conclusiones

Para los que no sean amigos de la línea de comandos ya sea en GNU/Linux o en OSX, hay herramientas online gratuitas, que te dan un resumen de plugins instalados, junto con la versión instalada y la versión actual informándote si están desactualizados para que tomes medidas al respecto.

 
WPDoctor de Webempresa
 

La herramienta WPDoctor desarrollada por Webempresa es una excelente oportunidad para tomarle el pulso a tu instalación y conocer con detalle el estado de salud de tu instalación de WordPress.

También puedes instalarte algún plugin como Exploit Scanner del que ya te he hablado en el Blog de Webempresa, donde escribo habitualmente, por si quieres probarlo, que seguro alguna sorpresa te llevas |;)

[perfectpullquote align=»full» color=»» class=»» cite=»» link=»»]En conclusión, mantener el ‘core’ y plugins de WordPress actualizados a versiones estables te ayudaran a mantener saneada tu instalación y lejos de los usuarios malintencionados que van a la caza de vulnerabilidades para explotarlas.[/perfectpullquote]

 

¿Utilizas algún plugin o herramienta para analizar que otros plugins tienes vulnerables en tu Blog? …cuéntamelo en los comentarios!

 
 

2 Comentarios

  1. cr0hn

    Buenas!

    Soy uno de los creadores de Plecost. Muchas gracias por el post. Solo unas cosillas: la herramienta Scapy, no es nuestra (aunque no gustaría que lo hubiera sido! :D).

    Ah! Tenemos una nueva versión disponible con muchísimo bugs corregidos, nuevas funcionalidad y 10 veces más rápida! Las podéis bajar en el repo de Github:

    https://github.com/iniqua/plecost

    Muchas gracias de nuevos por el análisis.

    Chau!

    Responder
    • Luis Méndez Alejo

      Hola cr0hn,

      Gracias por responder, es un placer 🙂

      Corregido el ‘bug’ 😛 ..probaré la versión de GitHub y de los resultados veo si le hago un ‘update’ al post.

      Responder

Deja un comentario

Entradas relacionadas

¿Qué es WordPress?

¿Qué es WordPress?

WordPress es el sistema ideal para los principiantes, para usuarios avanzados o para los que no tienen demasiados conocimientos técnicos.

A %d blogueros les gusta esto: