Wpaudit
WPAUDIT: Advanced WordPress security auditing suite & vulnerability scanner. Automates pentesting with Nmap, WPScan, Nuclei, SQLMap. Comprehensive reports. Ideal for ethical hackers & Kali Linux.
Install / Use
/learn @ihuzaifashoukat/WpauditREADME
WPAUDIT - Advanced WordPress Security Auditing Suite
Welcome to the official WPAUDIT documentation! This comprehensive guide provides an in-depth overview of WPAUDIT, a powerful WordPress security audit tool designed for ethical hackers, penetration testers, and security professionals. Learn about its advanced features, setup, and effective usage for conducting thorough WordPress vulnerability scanning and WordPress penetration testing.
Table of Contents
- WPAUDIT - Advanced WordPress Security Auditing Suite
- Table of Contents
- Overview
- Key Features of WPAUDIT - Your Expert WordPress Vulnerability Scanner
- Technical Architecture: How WPAUDIT Works
- Extending WPAUDIT
- Understanding Scan Profiles
- The ScanState Object
- Prerequisites
- Installation Guide for WPAUDIT
- Development Setup
- Usage
- Configuration
- Scan Phases
- Output and Reporting
- Contributing to WPAUDIT
- Troubleshooting Common Issues
- Roadmap / Future Enhancements
- License
Overview
WPAUDIT is a hyper-configurable, modular WordPress security auditing suite engineered to automate and streamline the process of identifying vulnerabilities and security weaknesses in WordPress installations. As a leading automated WordPress security tool, WPAUDIT empowers users to perform detailed security assessments, making it an essential utility for any WordPress penetration testing tool kit, especially when operating on platforms like Kali Linux. Its modular architecture allows for highly customized scans tailored to specific target environments and auditing requirements.
Key Features of WPAUDIT - Your Expert WordPress Vulnerability Scanner
- Modular Scan Phases: Executes distinct security checks in sequence (Preflight, Nmap, WPScan, REST API Analysis, Parameter Fuzzing, Nuclei, SQLMap, Exploit Intel).
- Configurable Profiles: Supports different scan profiles (
default,stealth,aggressive) for varying levels of intensity and stealthiness. - Flexible Configuration: Uses YAML/JSON configuration files for detailed control over tool paths, API keys, scan parameters, and output settings.
- Command-Line Overrides: Allows overriding specific configuration settings directly via CLI arguments for quick adjustments.
- Phase Skipping: Users can choose to skip specific scan phases.
- Tool Dependency Checking: Verifies the presence and configuration of required external tools before starting the scan.
- State Management: Tracks scan progress and findings, saving the state incrementally.
- Reporting: Generates a console summary, a comprehensive JSON state file, and an interactive HTML report for easy analysis and sharing.
- Interactive Mode: Optionally prompts the user for confirmation before potentially intrusive actions, ensuring control over the scan.
- Cross-Platform Compatibility: While optimized for environments like Kali Linux, WPAUDIT is a Python-based tool and can run on various operating systems where Python and the external tools are supported.
Technical Architecture: How WPAUDIT Works
WPAUDIT operates through a coordinated system of core components and specialized scanner modules:
main.py(Orchestrator): The central script that parses command-line arguments, loads configurations, initializes the scan state, and sequentially executes the defined scan phases.core/Modules:config_loader.py: Manages loading and merging of YAML configuration files.state.py: Handles theScanStateobject, which stores all findings, metadata, and progress throughout the scan. It supports saving and loading the state.tool_checker.py: Verifies the availability and (optionally) versions of required external command-line tools.tool_runner.py: A robust wrapper for executing external tools, managing timeouts, and capturing output.utils.py: Contains various helper functions used across the application.
modules/Directory: Contains individual Python scripts for each scan phase or specific tool integration (e.g.,nmap_scanner.py,wpscan_auditor.py,wp_analyzer/sub-package for detailed WordPress checks). Each module typically has arun_scanorrun_analysisfunction called bymain.py.reporting/Directory:generator.py: Responsible for creating the text summary and HTML reports from the finalScanState.report_template.html: A Jinja2 template used to render the HTML report.
config/Directory: Contains default configuration files (default_config.yaml) that users can adapt.
The scan proceeds through phases defined in main.py, with each phase potentially updating the shared ScanState object. This state is saved periodically and at the end of the scan, forming the basis for the final reports.
Extending WPAUDIT
WPAUDIT is designed to be modular, allowing for the addition of new scanning capabilities. If you wish to add a new scanner module:
- Create a New Module File: Add a new Python file in the
modules/directory (or a sub-directory likemodules/wp_analyzer/for more specific WordPress checks). For example,modules/new_scanner_module.py. - Implement the Scan Logic:
- Your module should typically define a main function, e.g.,
run_scan(target_url, scan_state, config, tool_runner, logger). - This function will receive the target URL, the current
ScanStateobject, the global configuration, an instance ofToolRunner(if external tools are needed), and a logger instance. - Perform your checks and update the
scan_state.findingsdictionary with your results. For example:scan_state.findings['new_scanner_results'] = {'vulnerabilities': [...]}. - Use the provided
loggerfor any output specific to your module.
- Your module should typically define a main function, e.g.,
- Integrate into Main Workflow (
main.py):- Import your module's
run_scanfunction at the top ofmain.py. - Add a unique string key for your new phase (e.g.,
'new_scanner_phase') to thePHASESlist inmain.py, placing it in the desired order of execution. - In the main scan loop within
main.py(thefor phase in active_phases:loop), add anelif phase == 'new_scanner_phase':block to call your module'srun_scanfunction. - Ensure you pass all necessary arguments (target URL, scan state, config, tool runner, logger).
- Import your module's
- Configuration (Optional):
- If your module requires specific configurations (e.g., API keys, special parameters), add them to
config/default_config.yaml. - Access these configurations within your module via the
configobject passed to yourrun_scanfunction.
- If your module requires specific configurations (e.g., API keys, special parameters), add them to
- Tool Dependencies (If any):
- If your module uses new external tools, add them to the
tool_pathssection inconfig/default_config.yamland updatecore/tool_checker.pyto include checks for these tools.
- If your module uses new external tools, add them to the
- Update Documentation: Add details about your new module to this README, including its purpose, any new configuration options, and the nature of the output it produces. Also, mention it in the "Scan Phases" section.
- Add Tests: Write unit tests for your new module's functionality and place them in the
tests/directory (you might need to create this directory and atests/test_new_scanner_module.pyfile).
This modular approach helps keep the codebase organized and makes it easier to contribute new functionalities.
Understanding Scan Profiles
WPAUDIT offers scan profiles (default, stealth, aggressive) to tailor the scan intensity and techniques:
default: A balanced profile suitable for most initial assessments, providing good coverage without being overly intrusive.stealth: Designed for less noisy scans. This profile typically uses passive techniques where possible, makes fewer requests, employs slower timings for tools like Nmap, and may use a more restricted set of Nuclei templates. Ideal when trying to minimize the scan's footprint or avoid detection by WAFs/IPS.aggressive: A comprehensive and potentially noisy profile. It enables more checks, deeper fuzzing (if configured), scans all TCP ports with Nmap using more intrusive scripts, and utilizes a broader set of Nuclei templates. This profile provides the most tho
