Extract web service URLs from Nessus scan files (.nessus) and output them to a plain text file.
- Python 3.10+
- No external dependencies
# Parse all .nessus files in the current directory
python3 nessus_to_urls.py
# Parse specific files
python3 nessus_to_urls.py scan1.nessus scan2.nessus
# Custom output file (default: urls.txt)
python3 nessus_to_urls.py -o webservices.txt scan.nessusThe script produces a sorted, deduplicated list of URLs — one per line:
http://10.0.0.1:8080
https://10.0.0.2
https://example.com
https://example.com:8443
- Parses the
.nessusXML and iterates over each host and report item - Identifies web services by matching service names (
www,http,https,http-alt,https-alt,http-proxy) and plugin names containing HTTP/web keywords - Determines
httpvshttpsby checking for SSL/TLS-related Nessus plugins on the same port - Uses the host FQDN when available, otherwise falls back to the IP address
- Omits default ports (80 for HTTP, 443 for HTTPS); includes non-standard ports in the URL
| Flag | Description | Default |
|---|---|---|
files |
One or more .nessus file paths |
All .nessus files in . |
-o, --output |
Output file path | urls.txt |