Skip to content

VulnScan is a professional, open-source network vulnerability scanner designed for defensive security, security auditing, and educational purposes. It provides both GUI and CLI interfaces for comprehensive network security assessments.

License

Notifications You must be signed in to change notification settings

paolosereno/VulnScan

Repository files navigation

VulnScan - Network Vulnerability Scanner

License: MIT C++17 Qt Build System

VulnScan is a professional, open-source network vulnerability scanner designed for defensive security, security auditing, and educational purposes. It provides both GUI and CLI interfaces for comprehensive network security assessments.

πŸ›‘οΈ Defensive Security Tool

VulnScan is a DEFENSIVE SECURITY tool for IT professionals, security researchers, and system administrators.

βœ… Legitimate Use Cases:

  • Vulnerability Assessment of owned or authorized systems
  • Security Auditing for compliance and hardening
  • Network Discovery for inventory and documentation
  • Configuration Analysis to identify misconfigurations
  • Educational purposes for cybersecurity learning
  • Authorized Penetration Testing from clients/employers
  • Cybersecurity Outreach and scientific dissemination
  • Academic Research on AI applications in security

❌ What VulnScan Does NOT Do:

  • No exploit execution or active vulnerability exploitation
  • No payload delivery or code injection
  • No credential harvesting or password cracking
  • No DoS attacks or service disruption
  • No unauthorized access or privilege escalation
  • No data exfiltration or lateral movement

βš–οΈ User Responsibility:

Users are FULLY responsible for legal and authorized use of this tool.

  • Obtain written authorization before any scan
  • Comply with local laws and terms of service
  • Use only on owned networks or explicitly authorized systems
  • DO NOT use for illegal or unauthorized activities

✨ Features

Current (Phase 1-2 - Completed βœ…)

  • βœ… Modular architecture with clean interfaces
  • βœ… SQLite database for scan results persistence
  • βœ… Configuration system with JSON support
  • βœ… Multi-level logging system
  • βœ… Comprehensive unit testing framework (147+ tests)
  • βœ… Cross-platform support (Windows, Linux, macOS)
  • βœ… Both GUI (Qt) and CLI interfaces
  • βœ… Multi-threaded port scanner with configurable concurrency
  • βœ… Service detection and banner grabbing
  • βœ… DNS resolution (forward and reverse lookup)
  • βœ… Network interface discovery with CIDR support
  • βœ… Scan engine orchestrator with preset scan modes
  • βœ… Scan repository with full CRUD operations
  • βœ… Functional CLI application (scan, list, show, delete, clean commands)
  • βœ… Integration testing suite (24 tests)

Planned (Phase 3-9)

  • 🚧 Vulnerability database integration
  • 🚧 AI-powered analysis and recommendations
  • 🚧 Comprehensive reporting (PDF, HTML, JSON)
  • 🚧 Real-time scan monitoring dashboard
  • 🚧 Educational mode with learning resources

πŸš€ Quick Start

Prerequisites

  • Qt 6.9+ (with Qt Widgets)
  • CMake 3.16+ or qmake
  • C++17 compatible compiler
    • GCC 7+ / Clang 5+ / MSVC 2017+
  • SQLite 3

Building with CMake (Recommended)

# Clone the repository
git clone https://github.com/paolosereno/VulnScan.git
cd VulnScan

# Create build directory
mkdir build && cd build

# Configure
cmake -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH="C:/Qt/6.9.1/mingw_64" ..

# Build
cmake --build . -j4

# Run tests
ctest --output-on-failure

Building with qmake

# Clone the repository
git clone https://github.com/paolosereno/VulnScan.git
cd VulnScan

# Generate Makefile
qmake vulnscan.pro

# Build
make

Running the Application

# GUI Application
./build/src/gui/vulnscan_gui

# CLI Application - Full Network Scanner
./build/src/cli/vulnscan_cli --help

# Available CLI commands:
./build/src/cli/vulnscan_cli scan 192.168.1.0/24     # Scan network
./build/src/cli/vulnscan_cli list                   # List all scans
./build/src/cli/vulnscan_cli show <scan_id>         # Show scan details
./build/src/cli/vulnscan_cli delete <scan_id>       # Delete scan
./build/src/cli/vulnscan_cli clean                  # Clean old scans

# Run Unit Tests
./build/tests/vulnscan_tests

# Run Integration Tests (optional)
./build/tests/vulnscan_tests --integration

πŸ“‚ Project Structure

VulnScan/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ core/          # Core library (scanner, AI, database, config)
β”‚   β”œβ”€β”€ gui/           # Qt GUI application
β”‚   └── cli/           # Command-line interface
β”œβ”€β”€ tests/             # Unit tests
β”œβ”€β”€ docs/              # Documentation
β”‚   β”œβ”€β”€ fasi/          # Development phases documentation
β”‚   └── requirements.md
β”œβ”€β”€ resources/         # Resources (icons, database schema, etc.)
β”œβ”€β”€ CMakeLists.txt     # CMake build configuration
└── vulnscan.pro       # qmake build configuration

πŸ§ͺ Testing

The project includes comprehensive unit tests:

# Using CMake
cd build
ctest --output-on-failure

# Or run directly
./build/tests/vulnscan_tests

Current Test Coverage:

  • βœ… DatabaseManager tests (100% passing)
  • βœ… Configuration system tests (100% passing)
  • βœ… PortScanner tests (24 tests, 100% passing)
  • βœ… ServiceDetector tests (18 tests, 100% passing)
  • βœ… DnsResolver tests (20 tests, 100% passing)
  • βœ… NetworkInterface tests (19 tests, 100% passing)
  • βœ… ScanEngine tests (22 tests, 100% passing)
  • βœ… ScanRepository tests (20 tests, 100% passing)
  • βœ… Integration tests (24 tests, optional execution)
  • Total: 147+ tests (123+ unit + 24 integration)

πŸ“– Documentation

πŸ—ΊοΈ Development Roadmap

The project is divided into 9 incremental phases:

  1. βœ… Phase 1: Foundation & Core Architecture (COMPLETED)
  2. βœ… Phase 2: Network Scanner Core (COMPLETED)
    • Multi-threaded port scanner
    • Service detection and banner grabbing
    • DNS resolution and network discovery
    • Scan engine orchestrator
    • Repository persistence and CLI application
  3. 🚧 Phase 3: Vulnerability Assessment (IN PROGRESS)
  4. πŸ”œ Phase 4: AI Integration
  5. πŸ”œ Phase 5: GUI Application
  6. πŸ”œ Phase 6: Advanced Features
  7. πŸ”œ Phase 7: DevOps & Distribution
  8. πŸ”œ Phase 8: Documentation & Community
  9. πŸ”œ Phase 9: Educational Enhancement

See docs/fasi/README.md for detailed phase descriptions.

🀝 Contributing

Contributions are welcome! Please read our Contributing Guide for details on:

  • Code of conduct
  • Development workflow
  • Coding standards
  • How to submit pull requests

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

⚠️ Legal Disclaimer

IMPORTANT: This tool is provided for legal and authorized security testing only. Users must:

  • Have explicit written authorization before scanning any network or system
  • Comply with all applicable local, state, and federal laws
  • Not use this tool for unauthorized access or malicious activities
  • Accept full responsibility for their actions

The developers assume NO liability for misuse of this tool. Unauthorized network scanning may be illegal in your jurisdiction.

πŸ‘¨β€πŸ’» Authors

πŸ™ Acknowledgments

  • Built with Qt Framework
  • Developed with Claude Code
  • Inspired by professional security tools like Nmap, OpenVAS, and Nessus

πŸ“§ Contact

For questions, suggestions, or security concerns, please open an issue on GitHub.


Made with ❀️ for the cybersecurity community

About

VulnScan is a professional, open-source network vulnerability scanner designed for defensive security, security auditing, and educational purposes. It provides both GUI and CLI interfaces for comprehensive network security assessments.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages