Author: Trix Cyrus Copyright: © 2025 Trixsec Org Maintained: Yes
Brute-XMLRPC is a Python-based tool designed to perform brute force attacks on WordPress sites through the xmlrpc.php endpoint. It can also enumerate users via the WordPress REST API (on versions >=4.4) to enhance the attack surface.
Two different modes
-
system.multicallmode: Send 1 POST request with a batch of multiple username/password combinations to/xmlrpc.phpusingsystem.multicall(WordPress versions <=4.3 only). This is done sequentially in batches, where each batch is randomly sized (between 1300-1500) and with a random sleep (15-30 seconds) after each POST (except the last one). -
Brute Force mode: Send 1 request per username/password combination to
/xmlrpc.phpusingwp.getUsersBlogsconcurrently (WordPress versions >=1.5.0). This is done in batches, where each batch is randomly sized (between 900-1100) and with a random sleep (15-30 seconds) after each batch (except the last one).
Additional features
- IP Spoofing: Generate random IP addresses for headers like
X-Forwarded-ForandX-Real-IPto enhance anonymity. - Custom Headers: Use a variety of headers to mimic real-world browser requests.
- User Enumeration: Retrieve user information from the WordPress REST API (WordPress versions >=4.4 only).
- Interactive Input: Easy-to-use prompts for user input and configuration.
- Progress Display: Real-time display of brute force attempts and progress.
- WordPress 4.4+ detection: Detect if version 4.4+ (based on presence of REST API) to intelligently allow version based features.
-
Proxy Handling with
aiohttp-socks:- Integrated
aiohttp-socksfor SOCKS5 proxy support, ensuring compatibility with Tor. - Replaced direct proxy arguments with
ProxyConnectorfor streamlined connection management.
- Integrated
-
Enhanced Header and User-Agent Spoofing:
- Expanded
user_agentslist with mobile browsers, old browsers, and bots. - Broadened
referer_domainsand added randomizedAccept-Language,Accept-Encoding,Forwarded,DNT,Origin, andCache-Controlheaders for increased variety.
- Expanded
-
Payload Variation in
check_xmlrpc_available:- Introduced random payloads (
system.getCapabilities,system.methodHelp, etc.) for more robust testing.
- Introduced random payloads (
-
Retry Logic and Rate Limiting:
- Added retry mechanism with delays and handling of
429responses usingRetry-Afterheader.
- Added retry mechanism with delays and handling of
-
WAF Detection:
- Added
check_for_wafto identify 403 responses indicating a WAF and log detections inWAF_DETECTED_LOG.
- Added
-
Deprecated Method Removal:
- Replaced
SocksConnector.createwithProxyConnectorfor modern and non-deprecated proxy handling.
- Replaced
- Python >= 3.10
- Required Python packages are in requirements.txt
-
Clone the repository:
git clone https://github.com/TrixSec/Brute-XMLRPC.git cd Brute-XMLRPC -
Install required packages:
pip install -r requirements.txt
-
Run the script:
python brutexmlrpc.py
-
Follow the prompts to:
- Enter the target WordPress site URL.
- Optionally use Tor.
- Choose to enumerate users via the WordPress REST API (if >=4.4, auto-detected).
- Provide single username manually or a filename containing users.
- Provide a filename containing passwords or use a default password file.
- Optionally use
system.multicallmethod (if <=4.3, auto-detected)
This tool is intended for educational purposes only. Unauthorized use of this tool to compromise or damage systems is illegal and unethical. The developers are not responsible for any misuse or damage caused by this tool.

