Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ Port Vulnerability Scanner

A fast, multi-threaded port scanner with vulnerability hints — wrapped in a sleek Graphite Mist GUI.

Scan thousands of ports in seconds · Grab service banners · Get instant security hints · Export results to CSV


✨ Features

Feature Description
🔍 DNS Resolution Resolve any domain to its IP before scanning
Multi-Threaded Scanning Up to 1000 concurrent threads for blazing-fast scans
🏷️ Banner Grabbing Identifies running services with HTTP-aware probing
🛡️ Vulnerability Hints Instant security recommendations per open port
📊 Live Progress Real-time progress bar and scrolling log output
📁 CSV Export One-click export of all scan results
🎨 Graphite Mist Theme Dark, hacker-aesthetic GUI built with Tkinter

🚀 Quick Start

# Clone the repository
git clone https://github.com/your-username/Port-Vulnerability-Checker.git
cd Port-Vulnerability-Checker

# Launch the scanner
python main.py

Note: No external dependencies required — runs on Python's standard library only.


🎯 Usage

  1. Enter a domain (e.g. example.com) and click Resolve Domain
  2. Configure scan options — port range, thread count, timeout
  3. Click ▶ Start Scan and watch results stream in live
  4. Review results — open ports, service hints, and banners in the table
  5. Click ⬇ Export CSV to save your findings

🏗️ Architecture

The codebase follows a clean modular architecture with separation of concerns:

Port-Vulnerability-Checker/
│
├── main.py                         # Entry point
│
└── port_vuln/                      # Core package
    ├── __init__.py                  # Package metadata
    ├── config.py                   # Constants, colours, defaults
    ├── network.py                  # DNS resolution, TCP probing, banners
    ├── vuln_hints.py               # Security hint engine
    ├── scanner.py                  # Multi-threaded scan engine
    │
    └── gui/                        # GUI sub-package
        ├── __init__.py
        ├── styles.py               # Graphite Mist ttk theme
        ├── controls.py             # Input panel widget
        ├── results.py              # Results table + log widget
        └── app.py                  # Main window orchestrator

Module Overview

┌─────────────────────────────────────────────────────┐
│                     main.py                         │
│                   (entry point)                     │
└──────────────────────┬──────────────────────────────┘
                       │
              ┌────────▼────────┐
              │    gui/app.py   │  ◄── Orchestrator
              │   (App class)   │
              └──┬──────────┬───┘
                 │          │
    ┌────────────▼──┐  ┌────▼───────────┐
    │ gui/controls  │  │  gui/results   │
    │  (user input) │  │ (table + log)  │
    └───────────────┘  └────────────────┘
                 │
        ┌────────▼────────┐
        │   scanner.py    │  ◄── Thread pool engine
        └──┬──────────┬───┘
           │          │
  ┌────────▼───┐ ┌────▼──────────┐
  │ network.py │ │ vuln_hints.py │
  │ (sockets)  │ │  (security)   │
  └────────────┘ └───────────────┘
           │
    ┌──────▼──────┐
    │  config.py  │  ◄── Shared constants
    └─────────────┘

⚙️ Configuration

All defaults live in port_vuln/config.py:

Constant Default Description
DEFAULT_TIMEOUT 1.0s Socket connection timeout
MAX_THREAD_CAP 1000 Maximum concurrent threads
QUEUE_POLL_MS 120ms GUI queue polling interval

🛡️ Vulnerability Hints

The scanner provides instant security hints for common services:

Port Service Hint
21 FTP Check for anonymous login
22 SSH Use key-based authentication
23 Telnet Replace with SSH
80 / 8080 HTTP Prefer HTTPS
443 HTTPS Check TLS configuration

Banner analysis also detects Apache and nginx with tailored recommendations.

💡 The hint engine in vuln_hints.py is designed to be easily extensible — add your own rules or plug in a CVE database.


🤝 Contributing

Contributions are welcome! The modular architecture makes it easy to:

  • Add new vulnerability rules → edit vuln_hints.py
  • Support new protocols → extend network.py
  • Customize the theme → tweak gui/styles.py and config.py
  • Add new UI panels → create a widget in gui/ and wire it in gui/app.py

About

A port vulnerability scanner project. Cybersecurity GFG KIIT

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages