Skip to content

Releases: SagarBiswas-MultiHAT/NmapScanningTool

Nmap Scanning Tool v2.0.0

Choose a tag to compare

@SagarBiswas-MultiHAT SagarBiswas-MultiHAT released this 01 Sep 13:06
f84d437

v2.0.0 is a major release that rebuilds the entire codebase from the ground up.
The tool has been fully restructured into a production-grade Python package with proper
testing, linting, CI/CD, and developer tooling.

Note: This is a breaking change from v1.7.0. The standalone main_v1.7.py script has been removed and replaced with a proper package. See the Quick Start section below.


What's New

Added

  • Modular src/nmap_scanning_tool package with dedicated modules:
    • cli.py - Interactive CLI entrypoint and user prompts
    • scanner.py - Core scanning logic and subprocess handling
    • models.py - Typed data models for targets, ports, and profiles
    • profiles.py - 12 predefined scan profiles as typed objects
    • validation.py - Input validation with descriptive error messages
    • config.py - Centralized runtime configuration
    • errors.py - Custom exception hierarchy
  • New unified entrypoint main.py (replaces main_v1.7.py)
  • pyproject.toml with Hatchling build, Ruff linter, mypy type checking, and pytest configuration
  • Full test suite under tests/ with unit and integration tests (80% coverage threshold enforced)
  • GitHub Actions CI pipeline with lint, type check, test, build, and dependency audit stages
  • Pre-commit hooks via .pre-commit-config.yaml
  • Dockerfile for containerized usage
  • Makefile for common developer commands
  • Dependabot configuration for automated dependency updates
  • Issue templates (bug report, feature request) and PR template
  • Community files: LICENSE (MIT), CHANGELOG.md, CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md
  • .editorconfig and .env.example

Changed

  • Replaced monolithic script with a fully modular CLI and scanner service architecture
  • Updated README.md with full setup, usage, testing, and project structure documentation
  • Updated requirements.txt with pinned version ranges

Fixed

  • Improved open-port output filtering to prevent false positives
  • Eliminated inconsistent file references and outdated command examples in documentation

Requirements

  • Python 3.10+
  • Nmap installed and available on PATH
  • Python packages: pyfiglet>=1.0.2, termcolor>=2.4.0

Quick Start

# Install dependencies
pip install -r requirements.txt

# Run the scanner
python main.py

Or install as a package:

pip install .
nmap-scanner

Scan Profiles

# Profile Nmap Flags
1 SYN Scan -sS -O
2 Aggressive Scan -A
3 Service Version Detection -sV
4 Vulnerability Scan --script=vuln
5 Heartbleed Check --script=ssl-heartbleed
6 HTTP Security Headers --script=http-security-headers
7 SQL Injection Check --script=http-sql-injection
8 SMB Vulnerability Scan --script=smb-vuln*
9 SSL/TLS Cipher Enumeration --script=ssl-enum-ciphers
10 Service Discovery --script=default
11 OS Detection -O
12 Custom Scan (enter your own flags)

Full changelog: https://github.com/SagarBiswas-MultiHAT/NmapScanningTool/blob/main/CHANGELOG.md

Nmap Scanning Tool v1.7

Choose a tag to compare

@SagarBiswas-MultiHAT SagarBiswas-MultiHAT released this 01 Sep 12:40

First stable release of the Nmap Scanning Tool (v1.7).

This tool is an interactive Python CLI wrapper around Nmap designed to simplify network scanning and vulnerability checks.

What's New in v1.7

  • 12 Predefined Scan Profiles:
    • SYN scan + OS detection (-sS -O)
    • Aggressive scan (-A)
    • Service and version detection (-sV)
    • NSE vulnerability scan (--script=vuln)
    • Heartbleed test (--script=ssl-heartbleed)
    • HTTP security headers check (--script=http-security-headers)
    • HTTP SQL injection test (--script=http-sql-injection)
    • SMB vulnerability scan (--script=smb-vuln*)
    • SSL/TLS cipher enumeration (--script=ssl-enum-ciphers)
    • Default NSE service discovery (--script=default)
    • OS detection only (-O)
    • Custom scan profile (enter custom flags manually)
  • Target & Port Selection: Accepts single targets, hostnames, specific ports, port ranges, or all ports (1-65535).
  • Output Filtering: Option to filter scan output to display only lines with open ports.
  • Environment Checks:
    • Verifies if nmap is installed and available in system PATH.
    • Checks for elevated / Administrator privileges and alerts the user if needed.
  • Formatted Terminal Interface: Clean colored banner and interactive prompts using termcolor and pyfiglet.

Requirements

  • Python 3.8+
  • Nmap installed and added to PATH
  • Python packages: pyfiglet, termcolor

Quick Start

# Install dependencies
pip install -r requirements.txt

# Run the scanner
python main_v1.7.py