Burptomator is an advanced automation tool for Burp Suite Professional that enables automated vulnerability scanning, scope management, and report generation.
- Automated Burp Suite startup with project creation
- Spider + Active scanning workflow for comprehensive coverage
- Scope management - automatically add hosts to scan scope
- HTML report generation per host with detailed findings
- Concurrent scanning with configurable limits
- Text file host input for bulk scanning operations
- Headless operation for CI/CD integration
- Java 21 (required for Burp Suite Professional)
- Python 3.8+ with pip
- Burp Suite Professional license and JAR file
- Burp REST API extension JAR file
Ensure Java 21 is installed and available in your PATH:
java -versionShould output Java version 21.x.x
git clone <repository-url>
cd burptomator
pip install -r requirements.txt- Burp Suite Professional JAR: Download from PortSwigger and place as
burpsuite_pro.jar - Burp REST API JAR: Download
burp-rest-api-2.3.2.jarfrom VMware's Burp REST API
-
Copy the environment template:
cp .env.example .env
-
Edit
.envand set your Burp API key:BURP_API_KEY=your_api_key_here -
Create your hosts file:
cp hosts_example.txt hosts.txt
Edit
hosts.txtand add your target hosts (one per line):https://example.com https://target1.com https://target2.com
Run a basic scan with default settings:
python main.pypython main.py --helpAvailable options:
--hosts-file: Specify custom hosts file (default: hosts.txt)--max-concurrent: Maximum concurrent scans (default: 10)--headless: Run Burp Suite in headless mode--output-dir: Custom output directory
# Scan with custom hosts file
python main.py --hosts-file my_targets.txt
# Limit concurrent scans and specify output directory
python main.py --max-concurrent 5 --output-dir ./my_scans
# Run in headless mode for CI/CD
python main.py --headlessThe project uses a hierarchical configuration system:
BURP_API_KEY=your_api_key_here
- BurpConfig: Burp Suite and API settings
- ProjectConfig: Output directories and project management
- ScanConfig: Scanning behavior and limits
# Burp Suite Configuration
burp_jar_path = "./burpsuite_pro.jar"
burp_rest_api_jar_path = "./burp-rest-api-2.3.2.jar"
api_port = 8090 # REST API port
official_api_port = 1337 # Official Burp API port
headless = True
# Scanning Configuration
max_concurrent_scans = 10
hosts_file = "hosts.txt"
report_format = "HTML"output/
└── scan_YYYYMMDD_HHMMSS/
├── project.burp # Burp project file
├── reports/
│ ├── host1_report.html
│ ├── host2_report.html
│ └── ...
└── logs/
└── scan.log
- Startup: Burptomator starts Burp Suite Professional with the REST API extension
- Project Creation: Creates a new Burp project for the scan session
- Scope Management: Automatically adds target hosts to the scan scope
- Spider Phase: Performs content discovery on each target
- Active Scan: Runs active vulnerability scans on discovered content
- Report Generation: Generates detailed HTML reports per host
- Cleanup: Safely terminates Burp processes and saves results
- Project management
- Scope configuration
- Scan orchestration
- Issue retrieval
- Report generation
- Additional scan controls
- Status monitoring
-
Java Version Mismatch
Error: A JNI error has occurred
Solution: Ensure Java 21 is installed and in PATH
-
API Connection Refused
ConnectionError: Connection refused
Solution: Check if Burp Suite started properly and API is enabled
-
Permission Denied
PermissionError: [Errno 13] Permission denied
Solution: Run with appropriate permissions or check file paths
-
Port Already in Use
Address already in use: bind
Solution: Change API ports in config.py or kill existing Burp processes
Enable verbose logging by modifying the logging level in the code:
import logging
logging.basicConfig(level=logging.DEBUG)Check scan logs in:
output/scan_YYYYMMDD_HHMMSS/logs/scan.log
- Keep your Burp Suite Professional license secure
- Store API keys in environment variables, not in code
- Use HTTPS for target URLs when possible
- Review generated reports before sharing
- Ensure proper authorization before scanning targets
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
This tool is intended for authorized security testing only. Users are responsible for ensuring they have proper authorization to scan target systems. Unauthorized scanning may be illegal in your jurisdiction.