Skip to content

DevenDucommun/network-vuln-scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ Network Vulnerability Scanner

Python License Status Security

An enterprise-grade Python vulnerability scanner with automated network discovery, advanced pattern detection, and professional reporting capabilities.

Transform your network security assessment workflow with automated discovery, comprehensive vulnerability detection, and professional multi-format reporting.

πŸŽ† Key Features

🎯 Automated Network Discovery

  • WiFi/Ethernet Interface Detection: Automatically identifies network interfaces
  • Interactive Target Selection: Guided target selection with network topology display
  • Auto-Discovery Mode: Scans local networks for active hosts
  • Gateway Detection: Automatically identifies and prioritizes gateway targets

πŸ” Advanced Vulnerability Detection

  • 150+ Vulnerability Signatures: Comprehensive database with CVE mappings
  • Pattern Matching Engine: Regex-based detection against service banners
  • Risk Prioritization: Intelligent scoring by severity + exploitability
  • Service Version Analysis: Known vulnerable version detection

πŸ“Š Professional Reporting

  • HTML Reports: Interactive reports with charts and executive summaries
  • Multiple Formats: JSON, CSV, Markdown export options
  • Executive Summaries: Risk-level assessments and recommendations
  • Charts & Visualizations: Severity distribution and trend analysis

⚑ Performance Optimized

  • Rate Limiting: Respectful scanning with configurable request rates
  • Circuit Breakers: Graceful handling of failing targets
  • Adaptive Threading: Auto-adjusting worker pools based on responsiveness
  • Memory Management: Resource monitoring and optimization

πŸš€ Quick Start

Prerequisites

  • Python 3.7+ (3.9+ recommended)
  • pip package manager
  • Network access for target scanning

🎩 One-Command Setup

# Clone and setup (recommended)
git clone https://github.com/YOUR_USERNAME/network-vuln-scanner.git
cd network-vuln-scanner
./setup.sh

πŸ”§ Manual Setup

# Clone the repository
git clone https://github.com/YOUR_USERNAME/network-vuln-scanner.git
cd network-vuln-scanner

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Make scripts executable
chmod +x main.py main_enhanced.py setup.sh

πŸ’« Usage Examples

πŸŽ† Enhanced Scanner (Recommended)

🎩 Interactive Mode

# Guided target selection with network discovery
python main_enhanced.py -i

πŸ” Auto-Discovery

# Discover and scan all local networks
python main_enhanced.py --auto-discover

# Scan specific network range
python main_enhanced.py --network 192.168.1.0/24

# WiFi networks only
python main_enhanced.py --auto-discover --wifi-only

πŸ“Š Professional Reports

# Generate comprehensive HTML report
python main_enhanced.py --auto-discover --format html -o reports/security_audit.html

# CSV data for analysis
python main_enhanced.py --network 192.168.1.0/24 --format csv -o data/vulnerabilities.csv

# Markdown documentation
python main_enhanced.py --auto-discover --format markdown -o docs/security_report.md

⚑ Performance Options

# Rate-limited scanning (5 requests/second)
python main_enhanced.py --auto-discover --rate-limit 5.0

# Quick scan (gateway + top 10 hosts)
python main_enhanced.py --auto-discover --summary

πŸ” Traditional Scanner

# Single target scan
python main.py 192.168.1.1

# Specific ports and scan types
python main.py 192.168.1.1 -p 22,80,443 -t active -v

# Save results
python main.py 192.168.1.1 -o results.json

Command Line Options

  • target: Target IP address or hostname (required)
  • -p, --ports: Port range to scan (default: 1-1000)
  • -t, --type: Scan type [passive, active, both] (default: both)
  • -o, --output: Output file for results
  • -v, --verbose: Enable verbose output
  • --timeout: Connection timeout in seconds (default: 5)

Configuration

The scanner uses a configuration file located at config/scanner_config.json. You can customize:

  • Default timeouts and thread limits
  • Vulnerability check preferences
  • Output formatting options
  • Predefined port ranges

Output Format

Results are provided in JSON format:

{
  "passive": {
    "target": "192.168.1.1",
    "open_ports": [22, 80, 443],
    "services": {
      "22": {
        "service": "SSH",
        "banner": "OpenSSH_8.0",
        "version": "8.0"
      }
    },
    "os_fingerprint": {
      "os_guess": "Linux/Unix",
      "ttl": 64,
      "confidence": "low"
    }
  },
  "active": {
    "target": "192.168.1.1",
    "vulnerabilities": [
      {
        "port": 443,
        "service": "HTTPS",
        "vulnerability": "Self-Signed Certificate",
        "severity": "Medium",
        "description": "Server uses a self-signed SSL certificate"
      }
    ]
  }
}

Project Structure

network-vuln-scanner/
β”œβ”€β”€ main.py                     # Main CLI application
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ scanners/
β”‚   β”‚   β”œβ”€β”€ __init__.py         # Base scanner class
β”‚   β”‚   β”œβ”€β”€ passive_scanner.py  # Passive reconnaissance
β”‚   β”‚   └── active_scanner.py   # Active vulnerability detection
β”‚   └── utils/
β”‚       β”œβ”€β”€ logger.py           # Logging utilities
β”‚       └── config.py           # Configuration management
β”œβ”€β”€ tests/                      # Unit tests
β”œβ”€β”€ config/                     # Configuration files
β”œβ”€β”€ docs/                       # Documentation
β”œβ”€β”€ requirements.txt            # Python dependencies
└── README.md                   # This file

Ethical Use

This tool is designed for:

  • Security assessment of your own systems
  • Authorized penetration testing
  • Educational purposes
  • Network administration and monitoring

Important: Only use this tool on networks and systems you own or have explicit permission to test. Unauthorized scanning of networks may be illegal and unethical.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Ensure all tests pass
  5. Submit a pull request

License

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

Disclaimer

This tool is provided for educational and authorized testing purposes only. Users are responsible for complying with applicable laws and regulations. The authors are not responsible for any misuse of this tool.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published