Files
nessus_tracker/README.md
T

2.5 KiB

Nessus Tracker Workbook

This repo generates an .xlsx workbook for tracking Nessus remediation items.

Quick operator guide: WIKI.md

Dependencies

  • Python >=3.10
  • Python module: openpyxl (required)
  • Python module: xlsxwriter (optional, not currently used by the generator)

Install on Debian/Ubuntu:

sudo apt install -y python3-openpyxl python3-xlsxwriter

Install with pip (alternative):

python3 -m pip install --user openpyxl xlsxwriter

What it creates

  • Remediations tab with columns:
    • CVE, Plugin ID, Severity, Name, Description, Links, Status, Excepted until (date), First seen, scan 1 notes, scan 2 notes, scan 3 notes
  • Template tab with columns:
    • Key, CVE, Plugin ID, Severity, Name, Hosts, Owner, status, Excepted until (date), Unresolved for, scan 1 notes, scan 2 notes, scan 3 notes

Template behavior:

  • Enter Key in each row.
  • Key may be:
    1. CVE:...
    2. PID:...
    3. raw CVE/plugin text (no prefix)
  • The sheet normalizes the key and matches against Remediations (CVE first, then Plugin ID).
  • If Key is blank, formula-driven fields remain blank.
  • If Key is entered and no match is found, fields show NEW ITEM.
  • If matched, both CVE and Plugin ID are auto-populated in Template.
  • If matched, Name in Template is a hyperlink to the matching row in Remediations.
  • If matched, Excepted until (date) is auto-populated in Template.
  • If a matched source value is empty in Remediations, the corresponding auto-populated Template cell stays blank.
  • Unresolved for in Template shows elapsed days since First seen when First seen is before today.
  • Hosts and Owner are intended for manual entry.
  • Template is protected so only Key, Hosts, and Owner are editable (rows 2+).

Remediations controls:

  • Severity has a dropdown: info, low, medium, high, critical.
  • Status has a dropdown:
    • exception
    • exception - permanent
    • In progress - next updates
    • In progress - researching
    • resolved
  • Excepted until (date) is highlighted red when the date is in the past.
  • Conditional colors are applied for severity/status values.

Generate workbook

python3 scripts/build_tracker_workbook.py

Output file: nessus_remediation_tracker.xlsx

Validate workbook output

python3 -m py_compile scripts/build_tracker_workbook.py
python3 scripts/build_tracker_workbook.py
unzip -t nessus_remediation_tracker.xlsx