WordPress Core Version Enumeration
You can use several manual methods to discover the installed WordPress version. The fastest starting point is reviewing page source in the browser with View page source (CTRL + U).
Then search for the generator meta tag (CTRL + F) or pull the page from CLI and filter with curl and grep.
WP Version - Source Code
WP Version - CSS
WP Version - JS
readme.html file in the WordPress root directory.
Plugins and Themes Enumeration
You can find information about installed plugins by reviewing the page source manually or filtering withcurl and command-line utilities.
Plugins - Passive Enumeration
Themes - Passive Enumeration
301 redirect confirms the path exists; a 404 means it doesn’t.
Plugins - Active Enumeration
wfuzz or WPScan to automate the process.
Directory Indexing
Active plugins should not be the only area of focus when assessing a WordPress website. Even if a plugin is deactivated, it may still be accessible, and you can still reach its associated scripts and functions. Deactivating a vulnerable plugin does not improve the security of the WordPress site — it is best practice to either remove or keep up-to-date any unused plugins. The following example shows a disabled plugin.

curl and convert the HTML output into a readable format with html2text.
User Enumeration
There are two methods for performing manual username enumeration.First Method
Review posts to uncover the user ID and username. Hovering over the post author link reveals the user’s profile URL in the browser’s status bar.
author parameter:
curl. The Location header in the response confirms which username belongs to that ID.
404 Not Found response.
Second Method
The second method queries the JSON endpoint to retrieve a list of users. From WordPress 4.7.1 onwards, this endpoint only shows whether a user is configured. Before that release, all users who had published a post were returned by default.Login
Once we are armed with a list of valid users, we can mount a password brute-forcing attack to attempt to gain access to the WordPress backend. This attack can be performed via the login page or thexmlrpc.php page.
If our POST request against xmlrpc.php contains valid credentials, we will receive the following output:
cURL - POST Request
403 faultCode error.
Invalid Credentials - 403 Forbidden
WPScan
WPScan is an automated WordPress scanner and enumeration tool. It determines if the various themes and plugins used by a WordPress site are outdated or vulnerable. It is installed by default on Parrot OS but can also be installed manually withgem.
wpscan --hh to verify the installation. This command will show us the usage menu with all of the available command-line switches.
--api-token parameter.
Enumerating a Website with WPScan
The--enumerate flag is used to enumerate various components of the WordPress application such as plugins, themes, and users. By default, WPScan enumerates vulnerable plugins, themes, users, media, and backups. However, specific arguments can be supplied to restrict enumeration to specific components. For example, all plugins can be enumerated using the arguments --enumerate ap.
The default number of threads used is 5, however, this value can be changed
using the
-t flag.WPScan Enumeration