WordPress

Principales rutas y archivos

  • General:

    • /index.php

    • /wp-config.php= información requerida por WordPress para conectarse a la base de datos.

    • /wp-content/ = directorio principal donde se almacenan los complementos y los temas.

    • /wp-content/uploads/

    • /wp-content/uploads/myfiles/<file>

    • /wp-content/plugins/

    • /wp-content/themes/

    • xmlrpc.php

  • Inicio de sesión:

    • /wp-admin/login.php

    • /wp-admin/wp-login.php

    • /login.php

    • /wp-login.php

  • /license.txt

  • /readme.html

Roles de usuarios

Rol
Descripción

Administrator

Tienen acceso a funciones administrativas dentro del sitio web. Esto incluye agregar y eliminar usuarios y publicaciones, así como editar el código fuente.

Editor

Pueden publicar y administrar publicaciones, incluidas las publicaciones de otros usuarios.

Author

Pueden publicar y administrar sus propias publicaciones.

Contributor

Pueden escribir y administrar sus propias publicaciones, pero no pueden publicarlas.

Subscriber

Son usuarios normales que pueden buscar publicaciones y editar sus perfiles.

Enumeración

General

  • --url = URL (Uniform Resource Locator).

    • <target> = objetivo.

  • --api-token = API token (https://wpscan.com/).

    • <api-token> = API token.

  • -o = guarda resultado del escaneo en archivo wpscan.txt.

Nmap

  • -p 80,443 = puertos 80/TCP y 443/TCP.

  • --script http-wordpress-enum = enumeración general.

    • check-latest=true: recupera información de la versión más reciente del plugin desde wordpress.org.

    • search-limit=200: limite de búsqueda de 250 temas y plugins.

  • <target> = objetivo.

cURL

Obtención de número de versión de Wordpress.

Usuarios

WPScan

  • --url = URL (Uniform Resource Locator).

    • <target> = objetivo.

  • --enumerate u = enumeración de usuarios.

  • -o = guarda resultado del escaneo en archivo wpscan-user.txt.

Nmap

  • -p 80,443 = puertos 80/TCP y 443/TCP.

  • --script http-wordpress-users = enumeración de usuarios.

    • --script-args limit=50: limite de búsqueda por los primeros 50 ID de usuarios.

  • <target> = objetivo.

cURL

Enumeración por nombre de usuario.

  • <target> = objetivo.

  • <username> = nombre de usuario.

Enumeración de usuarios desde listado.

  • <path-usernames> = ruta de usuarios.

  • <target> = objetivo.

Enumeración de usuarios por ID.

JSON endpoint.

Plugins

Desactivar un plugin vulnerable no mejora la seguridad del sitio de WordPress. Es una buena práctica eliminar o mantener actualizados los complementos no utilizados.

Si un plugin está desactivado, aún puede ser accesible y, por lo tanto, podemos obtener acceso a sus scripts y funciones asociados.

Revisión manualmente de ruta de plugins.

WPScan

  • --url = URL (Uniform Resource Locator).

    • <target> = objetivo.

  • --enumerate p = enumeración de plugins.

Nmap

  • -p 80,443 = puertos 80/TCP y 443/TCP.

  • --script http-wordpress-enum = enumeración general.

    • type="themes" = enumeración de temas.

    • check-latest=true: recupera información de la versión más reciente del plugin desde wordpress.org.

    • search-limit=200: limite de búsqueda de 250 plugins.

  • <target> = objetivo.

cURL

Themes

cURL

XML-RPC

Verificación de XML-RPC activo.

  • /xmlrpc.php

wp-cron.php

De forma predeterminada, al recibir una solicitud, WordPress genera una solicitud adicional al archivo wp-cron.php. Al generar un gran número de solicitudes al sitio, es posible que este realice un ataque de Denial of Service (DoS) contra sí mismo.

El sitio podría tener definida la constante DISABLE_WP_CRON en el archivo wp-config.php con el valor true, lo que deshabilita la ejecución automática de wp-cron.php en cada solicitud. Esta configuración no puede determinarse externamente, por lo que el estado real únicamente puede verificarse con acceso directo a la configuración del sitio.

Ataques de contraseñas

Usuarios

WPScan

Método "wp-login".

  • --password-attack = wp-login.

  • --url = URL (Uniform Resource Locator).

    • <target> = objetivo.

  • --usernames = usuarios.

    • <user-01, user-02, user-03> = usuario 01, usuarios 02, usuario 03, etc.

  • --passwords = contraseñas.

    • <path-passwords> = ruta de archivo con listado de contraseñas.

Método "xmlrpc".

  • --password-attack = xmlrpc.

  • --url = URL (Uniform Resource Locator).

    • <target> = objetivo.

  • --usernames = usuarios.

    • <user-01, user-02, user-03> = usuario 01, usuarios 02, usuario 03, etc.

  • --passwords = contraseñas.

    • <path-passwords> = ruta de archivo con listado de contraseñas.

cURL

Utilizando XML-RPC (/xmlrpc.php).

  • {user} = usuario.

  • {password} = contraseña.

  • <target> = objetivo.

Cracking de contraseñas de usuarios en base de datos

MySQL CLI

John the Ripper

Upload reverse shell

Theme

Se recomienda seleccionar un theme inactivo, así evitar corromper el theme principal que se encuentra en uso.

Modificación de theme.

  • wp-admin -> Appearance -> Theme Editor -> Select theme to edit -> 404 Template (404.php)

Ejecución de webshell.

Plugin

  • wp-admin -> Plugins -> Plugin Editor -> file.php

    • Activar plugin.

Metasploit Framework (MSF)

Última actualización

¿Te fue útil?