From 95cae32464d5e1af3c05edcb5c1871b2004dd0c2 Mon Sep 17 00:00:00 2001 From: Damian Krawczyk Date: Sun, 18 Jan 2026 14:51:54 +0100 Subject: [PATCH 1/2] v0.1.1 --- .gitignore | 3 ++- CHANGELOG.md | 9 +++++++++ .../software_enumeration.py | 17 +++++++++++------ setup.py | 2 +- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index e71186b..c54dea0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.egg-info -.DS_Store \ No newline at end of file +.DS_Store +__pycache__ \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index e4a7286..1f42f77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ This document records all notable changes to [LimberDuck NFA (nessus file analyz The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.1] - 2026-01-18 + +### Fixed + +- Software listing for ubuntu without two lines + - `+++-==========..` + - `Desired=Unknown/Install/Remove/Purge/Hold` +- Software description moved to correct column. + ## [0.1.0] - 2026-01-18 diff --git a/nfa_plugin_software_enumeration/software_enumeration.py b/nfa_plugin_software_enumeration/software_enumeration.py index c663b09..01d7035 100644 --- a/nfa_plugin_software_enumeration/software_enumeration.py +++ b/nfa_plugin_software_enumeration/software_enumeration.py @@ -20,7 +20,7 @@ def get_metadata(self) -> PluginMetadata: return PluginMetadata( name="Software Enumeration", id="software_enumeration", - version="0.1.0", + version="0.1.1", description="Generate inventory of installed software on Windows and Linux hosts", author="NFA Plugin Examples", plugin_ids=[20811, 22869] @@ -195,6 +195,10 @@ def _parse_unix_software(self, plugin_output: str) -> List[Dict[str, str]]: skip_count += 1 continue + # Skip separator lines and Debian package status legend + if stripped_line.startswith('+++') or stripped_line.startswith('Desired='): + continue + # Check for Debian/Ubuntu dpkg format: " ii/rc package version arch description" if line.startswith(' ii') or line.startswith(' rc'): # Remove the " ii" or " rc" prefix @@ -204,19 +208,20 @@ def _parse_unix_software(self, plugin_output: str) -> List[Dict[str, str]]: parts = re.split(r' +', line, maxsplit=3) if len(parts) >= 4: - # Full format with all fields + # Full format with all fields: name version arch description name = parts[0].strip() version = parts[1].strip() architecture = parts[2].strip() description = parts[3].strip() elif len(parts) == 3: - # Missing description + # Format without architecture: name version description + # The third field is description, not architecture name = parts[0].strip() version = parts[1].strip() - architecture = parts[2].strip() - description = '' + architecture = '' + description = parts[2].strip() elif len(parts) == 2: - # Missing architecture and description + # Only name and version name = parts[0].strip() version = parts[1].strip() architecture = '' diff --git a/setup.py b/setup.py index 4778843..c4435d3 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="nfa-plugin-software-enumeration", - version="0.1.0", + version="0.1.1", author="Damian Krawczyk", author_email="damian.krawczyk@limberduck.org", description="Software Enumeration report plugin for LimberDuck NFA (nessus file analyzer)", From a028f8eb5443c155bfb6d4b3017d446571cb58f2 Mon Sep 17 00:00:00 2001 From: Damian Krawczyk Date: Sun, 18 Jan 2026 14:53:13 +0100 Subject: [PATCH 2/2] version update --- nfa_plugin_software_enumeration/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nfa_plugin_software_enumeration/__init__.py b/nfa_plugin_software_enumeration/__init__.py index 9d7502b..5d936e6 100644 --- a/nfa_plugin_software_enumeration/__init__.py +++ b/nfa_plugin_software_enumeration/__init__.py @@ -3,4 +3,4 @@ Software Enumeration Plugin for NFA. """ -__version__ = "0.1.0" +__version__ = "0.1.1"