tools

Overview

WPScan is a black-box WordPress security scanner used to identify vulnerabilities, enumerate plugins and themes, detect user accounts, and audit WordPress installations. It is commonly used during web application reconnaissance to surface exploitable components in WordPress-based targets.

Target / Context

WordPress-based web applications during external or internal web penetration testing.


Installation

ℹ︎Installation Commands:
gem install wpscan

docker:

docker pull wpscanteam/wpscan

Basic Usage

ℹ︎Basic Usage:
wpscan --url https://<target>

Flags & Options

ℹ︎Flags & Options:
FlagDescriptionExample
—urlTarget WordPress URL—url https://10.129.12.10
-e pEnumerate installed plugins-e p
-e uEnumerate user accounts-e u
-e tEnumerate installed themes-e t
-e apEnumerate all plugins (passive + aggressive)-e ap
—plugins-detectionSet plugin detection mode: passive, mixed, aggressive—plugins-detection aggressive
—disable-tls-checksSkip TLS/SSL certificate verification—disable-tls-checks
—no-bannerSuppress the WPScan banner in output—no-banner
-tNumber of threads to use-t 100
-oWrite output to a file-o wpscan_results.txt
—api-tokenWPScan API token for vulnerability data from WPVulnDB—api-token <token>
—password-attackAttack method for brute force: xmlrpc or wp-login—password-attack xmlrpc
-UTarget username(s) for brute force; comma-separated-U admin,editor
-PPath to password wordlist for brute force-P /usr/share/wordlists/rockyou.txt

Common Use Cases

Plugin Enumeration (Aggressive)

Enumerates all plugins using aggressive detection — sends more requests but finds more results.

ℹ︎Commands:
wpscan -e p --url https://10.129.12.10 --disable-tls-checks --no-banner --plugins-detection aggressive -t 100

User Enumeration

Enumerate WordPress user accounts, which can then be targeted for brute-force or credential testing.

ℹ︎Commands:
wpscan --url https://<target> -e u --disable-tls-checks

Full Enumeration

Enumerate plugins, themes, users, and timthumbs in a single run.

ℹ︎Commands:
wpscan --url https://<target> -e ap,at,u --disable-tls-checks --no-banner -t 50

Password Brute Force

Brute-force credentials against a WordPress login using either the xmlrpc.php endpoint or the wp-login form. The xmlrpc method is generally faster and less likely to be blocked.

ℹ︎Commands:
wpscan --password-attack xmlrpc -t 20 -U <user1>,<user2> -P <wordlist.txt> --url http://<target>
wpscan --password-attack wp-login -t 5 -U <username> -P <wordlist.txt> --url http://<target>
FlagDescription
--password-attack xmlrpcAttack via the XML-RPC endpoint (faster; multiple credentials per request)
--password-attack wp-loginAttack via the standard login form
-U <user>Target username(s); comma-separated for multiple
-P <file>Path to the password wordlist

Vulnerability Research via Metasploit

After identifying a plugin or theme version, search for known exploits in Metasploit.

ℹ︎Commands:
msfconsole -q
search wordpress <plugin-name>
use 0

Verify the module targets the identified version before using

info 0


References / Images