Skip to content

Repository files navigation

VulnGuard — Vulnerability Assessment Analyzer

VulnGuard is a browser-based cybersecurity application that converts authorized Nmap XML scan results into a structured vulnerability assessment dashboard.

It extracts discovered assets, open ports, services, software details, potential security exposures, severity levels, risk scores, and remediation guidance.

Live Demo

Open VulnGuard — Vulnerability Assessment Analyzer

Repository

View the VulnGuard source code on GitHub

Project Overview

Vulnerability-assessment scan results can be difficult to review in raw XML format.

VulnGuard provides a simple interface that allows an authorized Nmap XML file to be uploaded and analyzed directly inside the browser.

The application converts the scan into:

  • Asset inventory
  • Open-port summary
  • Service inventory
  • Potential security findings
  • Severity distribution
  • Risk score
  • Remediation recommendations
  • Printable assessment report

Key Features

  • Upload and analyze Nmap XML files
  • Process scan files locally inside the browser
  • Extract active hosts and hostnames
  • Identify open TCP and UDP ports
  • Extract protocols, services, products, and versions
  • Display operating-system information when available
  • Detect potential service exposures using predefined rules
  • Categorize findings by severity
  • Calculate an overall assessment risk score
  • Search findings by host, port, service, or description
  • Filter findings by severity
  • Generate remediation recommendations
  • Load a built-in sample assessment
  • Clear assessment results
  • Print or save the report as PDF
  • Responsive interface for desktop and mobile
  • Custom GitHub Pages 404 page

Technology Stack

  • HTML5
  • CSS3
  • JavaScript
  • DOMParser API
  • Nmap XML
  • Git
  • GitHub
  • GitHub Pages

Application Workflow

Authorized target
      ↓
Nmap scan
      ↓
XML output generated using -oX
      ↓
Upload XML file to VulnGuard
      ↓
Browser-side XML parsing
      ↓
Asset and service inventory
      ↓
Potential exposure detection
      ↓
Severity classification
      ↓
Risk scoring
      ↓
Remediation guidance
      ↓
Printable assessment report

Screenshots

Security Dashboard

VulnGuard Security Dashboard

Asset and Service Inventory

VulnGuard Assets and Services

Assessment Findings

VulnGuard Assessment Findings

Printable Report

VulnGuard Report Preview

Generate an Nmap XML File

Run Nmap only against systems that you own or have explicit authorization to assess.

General command:

nmap -sV -oX scan-results.xml <AUTHORIZED-IP>

Example:

nmap -sV -oX scan-results.xml 192.168.1.10

To include operating-system detection:

sudo nmap -sV -O -oX scan-results.xml <AUTHORIZED-IP>

Local Test Using Port 8000

Start a temporary Python web server:

python3 -m http.server 8000 --bind 127.0.0.1

Keep that Terminal window open.

In another Terminal window, run:

nmap -Pn -sV -p 8000 \
  -oX assets/samples/localhost-scan.xml \
  127.0.0.1

Upload localhost-scan.xml into VulnGuard and click Analyze Scan.

Stop the temporary server afterward using:

Control + C

Run the Project Locally

Clone the repository:

git clone https://github.com/taadithiya/Vulnerability-Assessment.git

Enter the project directory:

cd Vulnerability-Assessment

Open the project in Visual Studio Code:

code .

Install the Live Server extension in Visual Studio Code.

Open index.html, then click Go Live.

The application should open at an address similar to:

http://127.0.0.1:5500/index.html

How to Use VulnGuard

  1. Open the VulnGuard application.
  2. Click Choose XML File.
  3. Select an authorized Nmap XML scan.
  4. Click Analyze Scan.
  5. Review the dashboard summary.
  6. Review discovered assets and services.
  7. Review generated potential findings.
  8. Use the search and severity filters when required.
  9. Review remediation recommendations.
  10. Click Print Report to print or save the assessment as a PDF.

You can also click Load Sample Scan to test the application without uploading a file.

Risk Scoring

VulnGuard uses the following severity weights:

Severity Score
Critical 10
High 7
Medium 4
Low 1
Informational 0

Overall risk classification:

Total Score Risk Rating
0 with analyzed assets Informational
1–5 Low
6–15 Medium
16–30 High
31 or above Critical

The score is intended to support prioritization. It is not a replacement for CVSS or professional risk analysis.

Supported Exposure Rules

VulnGuard currently includes rules for potential exposure associated with:

Port Service Default Severity
21 FTP Medium
23 Telnet High
25 SMTP Low
53 DNS Low
80 HTTP Medium
110 POP3 Medium
139 NetBIOS Medium
143 IMAP Medium
445 SMB Medium
1433 Microsoft SQL Server High
3306 MySQL Medium
3389 RDP High
5432 PostgreSQL Medium
5985 WinRM Low
6379 Redis High
8000 Alternate HTTP development service Low
27017 MongoDB High

These rules identify potential exposures only. They do not confirm that a vulnerability exists.

Privacy

Uploaded scan files are processed locally inside the browser.

VulnGuard does not:

  • Upload scan files to an external server
  • Store scan results in a database
  • Send scan data to a third-party service
  • Require an account or login

Refreshing or closing the page clears the analyzed data.

Assessment Limitations

An open port or detected service does not automatically represent a confirmed vulnerability.

VulnGuard is a lightweight assessment-support tool and currently does not:

  • Exploit vulnerabilities
  • Confirm CVEs
  • Perform authenticated scanning
  • Validate patch status
  • Confirm configuration weaknesses
  • Calculate official CVSS scores
  • Replace manual security testing
  • Replace professional vulnerability-management platforms

All generated findings require manual validation.

Ethical Use

This project is intended only for:

  • Authorized vulnerability assessments
  • Personal systems
  • Controlled lab environments
  • Education
  • Cybersecurity research
  • Portfolio demonstration

Do not scan systems, networks, applications, or devices without explicit authorization.

Project Structure

Vulnerability-Assessment/
├── index.html
├── style.css
├── script.js
├── 404.html
├── README.md
├── .gitignore
├── .nojekyll
├── assets/
│   ├── icons/
│   ├── images/
│   └── samples/
├── Documentation/
├── Evidence/
├── Reports/
├── Sample-Data/
├── Scan-Results/
├── Screenshots/
│   ├── dashboard.png
│   ├── assets-services.png
│   ├── findings.png
│   └── report-preview.png
└── Scripts/

Future Enhancements

Planned improvements include:

  • CVSS scoring
  • CVE enrichment
  • Service-version analysis
  • Duplicate-finding prevention
  • Assessment metadata
  • Analyst-name and scope fields
  • JSON export
  • CSV export
  • Improved PDF-report templates
  • Nessus CSV support
  • OpenVAS CSV support
  • Additional exposure rules
  • Unit and integration testing
  • Drag-and-drop XML upload
  • Dark and light themes

Security Notice

The sample files and screenshots included in this repository should contain only localhost or controlled-lab information.

Do not commit:

  • Client scan results
  • Private IP inventories from real organizations
  • Passwords
  • Authentication tokens
  • API keys
  • Sensitive reports
  • Confidential screenshots

Author

Aadithiya T

Cybersecurity | Threat Intelligence | Security Operations | Vulnerability Management | Cyber Defense

License

This project is provided for education, research, authorized assessments, and portfolio demonstration.

Use this application responsibly and only within systems and environments for which you have explicit permission.

About

A practical vulnerability assessment project using Nmap for host discovery, service enumeration, risk analysis, and remediation reporting.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages