A Flask light webpage to help convert OpenVAS XML into reports. Uses latest OpenVAS Reporting
Convert any OpenVAS XML Report into an Excel worksheet or a Word Document. You can specify filters like which networks are included (or excluded) in the report or which vulnerabilities or which CVES.
- Python version 3.9x
- Flask
- Flask-Session
- PyYAML
- netaddr
- defusedxml
and, of course
# Install Python3 and pip3
apt(-get) install python3 python3-pip # Debian, Ubuntu
yum -y install python3 python3-pip # CentOS
dnf install python3 python3-pip # Fedora
# Clone and Install openvareporting:
git clone https://github.com/TheGroundZero/openvasreporting.git
cd openvasreporting
pip3 install pip --upgrade
pip3 install build --upgrade
python -m build
pip3 install dist/OpenVAS_Reporting-X.x.x-py3-xxxx-xxx.whl
# Clone the repo (not bellow openvasreporting, please)
cd ..
git clone https://github.com/dudacgf/ovrgen.git
cd ovrgen
pip3 install -r requirements.txt
# Run from localhost
FLASK_APP=ovrgen-site flask run
This package is not pip ready yet. Maybe never
# Point your browser to http://localhost:5000 and have fun
You can create text files to filter in or out Networks, Regexes or CVEs from the converted report. Take a look at the openvasreporting documentation to find out how to use them.
After you inserted filters and uploaded your .xml reports, the web page will look like this:
Use the menu Configuration to save the current configuration to a .yml file. It will include all options and filters already defined in the interface. You can also save the current configuration to a file or clear it.
The .yml file will have the following format:
format: xlsx
level: none
reporttype: vulnerability
cve:
excludes:
- CVE-2021-27102
- CVE-2021-27101
- CVE-2021-27103
- CVE-2021-21017
- CVE-2021-28550
- CVE-2018-4939
- CVE-2018-15961
- CVE-2018-4878
networks:
excludes:
- 192.168.20.234
- 192.168.20.236
- 192.168.20.237
- 192.168.20.238
- 192.168.20.239
- 192.168.168.120
includes:
- 192.168.20.0/24
- 192.168.24.100-192.168.24.199
- 192.168.21.4
regex:
excludes:
- defender
- firefox
- report.*default
Some of the ideas I still have for future functionality:
- insert/remove lines of filters directly on the interface
- make it run under apache or nginx
- detect if running in the same server as Greenbone Security Assistant to offer convert report directly from gvm using python-gvm.