# Nessus Tracker Workbook This repo generates an `.xlsx` workbook for tracking Nessus remediation items. Quick operator guide: [WIKI.md](WIKI.md) ## Dependencies - Python `>=3.10` - Python module: `openpyxl` (required) - Python module: `xlsxwriter` (optional, not currently used by the generator) Install on Debian/Ubuntu: ```bash sudo apt install -y python3-openpyxl python3-xlsxwriter ``` Install with pip (alternative): ```bash 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 ```bash python3 scripts/build_tracker_workbook.py ``` Output file: `nessus_remediation_tracker.xlsx` ## Generate 2026 tracker workbook ```bash python3 scripts/build_2026_tracker_workbook.py ``` Output file: `2026_Nessus_Remediation_Tracker.xlsx` ## Validate workbook output ```bash python3 -m py_compile scripts/build_tracker_workbook.py python3 scripts/build_tracker_workbook.py unzip -t nessus_remediation_tracker.xlsx ```