viernes, 6 de enero de 2023

Cuadernos de campo: WordPress

 

OBJETIVOS DE ESTE HOW-TO:  

1.- Obtener usuarios y credenciales válidos para el acceso al entorno web, una vez dentro intentar generar una RCE

2.- Encontrar vulnerabilidades en plugins o themes para la obtención de un RCE u otras cosas.

3.- Encontrar archivos de configuración con información útil.

 

PASOS A SEGUIR

 

·       Detección de la presencia de WordPress

 

o   Cabeceras HTTP. >>> Se obtiene por ejemplo una cabecera : X-Redirect-By: WordPress

o   En robots.txt >>> Aparecen referencia a carpetas:

 

§  /wp-admin/

§  /wp-admin/login.php

§  /wp-admin/wp-login.php

§  /wp-admin.php

§  /wp-content/

§  /wp-includes/

§  /wp-login/

§  /wp-login.php

§  /login/

§  /login.php.

 

IMPORTANTE: Principales ficheros/directorios de WordPress:

 

·       license.txt >>> contiene información útil

·       wp-activate.php >>> es usado por el proceso de activación por correo electrónico mientras se configura el WordPress

·       Carpetas de login

o   /wp-admin/login.php

o   /wp-admin/Wp-login.php

o   /login.php

o   /wp-login.php

·       xmlrpx.php >>> fichero que presenta la capacidad de WordPress para solicitar información enviando las peticiones por HTTP mediante XML. Estas comunicaciones se están reemplazando por API REST

·       /wp-content/ >>> directorio donde se almacenan los plugins y themes

·       /wp-content/uploads/ >>> directorios donde se almacena cualquier fichero subido a WordPress

·       /wp-includes/ >>> directorio dónde se almacenan los ficheros esenciales de WordPress, tales como certificados, fuentes, código javascript, etc.

      

o   Buscar en el código fuente de la página inicial:

             

§  Cadena “wordpress

§  Cadena: ‘<meta name:”generator”

§  Cadena: “.css?ver

§  Cadena: “.js?ver

 

NOTA: Estas dos últimas cadenas pueden darnos también información sobre: plugins, themes … entre esa información, las versiones

 

o   Mediante herramientas

 

§  Nuclei >>> echo “<página>”| nuclei  -t wordpress-detect.yaml

§  Wp-scan 

NOTA: con token

§  Wappalyzer

 

·       Detectar usuarios

 

o   https[:]//<dominio>/?author=[0..1000]

o   https[:]//<dominio>/wp-json/wp/v2/users

 

NOTA: Tras obtener un listado de usuarios, se podrían realizar ataques de diccionario y fuerza bruta.

              Los usuarios de WordPress pueden tener estos roles:

 

§  Administrator

§  Editor: Pública y gestiona sus post y los de otros.

§  Author: Pública y gestiona sólo sus propios post.

§  Contributor: Escribe y gestiona sus post pero no puede publicarlos.

§  Subscriber: Puede buscar post y editar su perfil.

 

·       Detectar la existencia y uso del archivo: xmlrpc.php

 

o   Esto permitiría usar los métodos accesibles para hacer “cosicas”, como por ejemplo: ataques de fuerza bruta

 

·       Detectar plugins

 

o   En el código fuente de la página inicial, buscar:

 

§  Cadena: “.css?ver”

§  Cadena: “.js?ver”

 

NOTA: Estas dos últimas cadenas pueden darnos también información sobre: plugins, themes … entre esa información, las versiones

 

o   Mediante herramientas

§  Wp-scan 

 

·       Detectar themes

 

o   En el código fuente de la página inicial, buscar:

 

§  Cadena: “.css?ver”

§  Cadena: “.js?ver”

 

NOTA: Estas dos últimas cadenas pueden darnos también información sobre: plugins, themes … entre esa información, las versiones

 

o   Mediante herramientas

§  Wp-scan 

 

·       Detectar fugas de información

 

o   De la configuración >>> https[:]//<dominio>/wp-config.[php|txt|zip|md|php_orig|bak]

o   De los logs de debugging >>> https[:]//<dominio>/wp-content/debug.log

o   De los backups >>>

https[:]//<dominio>/domain.[7z|lz|xz|bz2|gz|sql.xz|sqlitedb|rar|tar.gz|zip|z|tar.z|sql.tar.z|sql.gz|db|sqlite|sql.7z|sql.bz2|sql.lz|sql.rar|sql.tar.gz|sql.zip|sql.z]

 

·       Detectar la existencia y uso del archivo: wp-cron.php

 

o   Esto permite realizar ataques de DoS