Skip to content
Script to export Nessus results to a relational database for use in reports, analysis, or whatever else.
TSQL Python
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
queries null check for a few more params, plugin_id for stored procedure Apr 4, 2020
.gitignore basic interactions with nessus Mar 1, 2020
LICENSE Initial commit Feb 21, 2020 Update Apr 6, 2020
config.ini.example cleanup, check to skip existing scan run, only fetch completed scans Mar 3, 2020 null check for a few more params, plugin_id for stored procedure Apr 4, 2020
requirements.txt folders and scans upserting Mar 1, 2020

Nessus Professional Database Export

A script to export Nessus results regularly into a MySQL database for easy analysis/aggregation.

Use Cases

  • Find occurences of a specific vulnerability across your scans (e.g. in a folder) without having to export all of them to CSV.
  • Search for text in plugin outputs across all your scans.
  • Quickly see trending stats across scan runs (summary stats are calculated at export time and saved in the DB).
  • Build a web app front end to present a subset of results for customers.

Some usage examples here:


  • Nessus Professional
  • MySQL database


  1. git clone
  2. pip3 install -r requirements.txt


  1. Instantiate database schema (see schema.sql file for import)

    e.g. at the mysql command line mysql> source \home\user\Desktop\schema.sql;

  2. Copy config.ini.example to config.ini and fill in all fields


Install in crontab for scheduled exports or run manually by just calling the script with no arguments:

$ python3
Processing: REDACTED
Inserting scan run: 69
Inserting scan run: 81
Processing: REDACTED
Processing: REDACTED
Inserting scan run: 87

Once the export is completed you can run whatever queries you want. e.g.:


  • Check API output for compliance scans and add code to pull in compliance scans
  • Use trash flag to not pull in scans in the trash
You can’t perform that action at this time.