Skip to content

SiddharthMathur01/Basic-Vulnerability-Scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Basic Vulnerability Scanner

A comprehensive educational tool for learning about web security and vulnerability scanning. This tool helps you understand what vulnerabilities are, how attackers find weak points, and how security scanning tools work in real-world cyber security.

Features

  • Port Scanning: Detect open ports on target systems
  • Security Headers Check: Identify missing security headers
  • SSL/TLS Analysis: Verify SSL certificates and detect weak configurations
  • Software Version Detection: Identify exposed software versions
  • Comprehensive Reports: Generate detailed HTML reports

Disclaimer

This tool is for educational purposes only. Only scan systems you own or have explicit permission to test. Unauthorized scanning may be illegal in your jurisdiction.

Requirements

  • Python 3.7 or higher
  • pip (Python package installer)

Installation

  1. Clone the repository:
git clone https://github.com/SiddharthMathur01/Basic-Vulnerability-Scanner.git
cd Basic-Vulnerability-Scanner
  1. Install required dependencies:
pip install -r requirements.txt

Usage

Basic Scan (All Tests)

python main.py example.com

Specific Scans

Port Scan Only:

python main.py example.com -p

Security Headers Only:

python main.py example.com -H

SSL/TLS Check Only:

python main.py example.com -s

Software Version Detection:

python main.py example.com -v

All Scans with HTML Report:

python main.py example.com -a -o report.html

Command Line Options

positional arguments:
  target                Target URL or IP address (e.g., example.com or 192.168.1.1)

optional arguments:
  -h, --help            Show help message and exit
  -p, --ports          Scan for open ports
  -H, --headers        Check security headers
  -s, --ssl            Check SSL/TLS configuration
  -v, --version        Detect software versions
  -a, --all            Run all scans (default if no option specified)
  -o, --output FILE    Output report to HTML file

Project Structure

Basic-Vulnerability-Scanner/
│
├── main.py                      # Main application entry point
├── requirements.txt             # Python dependencies
├── README.md                    # This file
├── LICENSE                      # MIT License
│
├── plugins/                     # Scanning modules
│   ├── __init__.py
│   ├── port_scanner.py         # Port scanning functionality
│   ├── header_checker.py       # Security headers verification
│   ├── ssl_checker.py          # SSL/TLS analysis
│   └── software_detector.py    # Software version detection
│
└── utils/                       # Utility modules
    ├── __init__.py
    └── report_generator.py     # Report generation and formatting

What This Tool Checks

1. Open Ports

Scans common ports to identify:

  • Remote access ports (SSH, RDP, VNC)
  • Web services (HTTP, HTTPS)
  • Database ports (MySQL, PostgreSQL, MongoDB)
  • Mail servers (SMTP, POP3, IMAP)
  • Potential backdoors

Risk Levels:

  • High: Telnet (23), FTP (21), RDP (3389), VNC (5900)
  • Medium: SSH (22), Database ports
  • Low: Standard web ports

2. Security Headers

Checks for missing security headers:

  • Strict-Transport-Security - Enforces HTTPS
  • X-Frame-Options - Prevents clickjacking
  • X-Content-Type-Options - Prevents MIME-sniffing
  • Content-Security-Policy - Prevents XSS attacks
  • X-XSS-Protection - XSS filtering
  • Referrer-Policy - Controls referrer information
  • Permissions-Policy - Controls browser features

3. SSL/TLS Configuration

Analyzes:

  • SSL/TLS protocol version
  • Certificate expiration date
  • Cipher suite strength
  • Weak protocol usage (SSLv2, SSLv3, TLS 1.0/1.1)
  • Certificate validity

4. Software Version Detection

Identifies exposed software information:

  • Web server versions (Apache, Nginx, IIS)
  • Backend technologies (PHP, ASP.NET)
  • Content Management Systems (WordPress, Joomla, Drupal)
  • JavaScript libraries (jQuery)

Security Best Practices

After running a scan, consider:

  1. Close unnecessary ports - Only expose required services
  2. Implement security headers - Add all recommended headers
  3. Keep SSL/TLS updated - Use TLS 1.2 or higher
  4. Hide version information - Don't expose software versions
  5. Regular updates - Keep all software patched
  6. Use strong ciphers - Disable weak encryption

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

License

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

Acknowledgments

  • Built for educational purposes to help learn about cybersecurity
  • Inspired by professional security scanning tools
  • Uses open-source Python libraries

Support

If you encounter any issues or have questions:

  • Open an issue on GitHub
  • Check existing issues for solutions
  • Review the documentation

Legal Notice

This tool should only be used on systems you own or have explicit permission to test. Unauthorized port scanning or security testing may violate:

  • Computer Fraud and Abuse Act (CFAA) in the United States
  • Computer Misuse Act in the United Kingdom
  • Similar laws in other jurisdictions

Always obtain written permission before scanning any system you don't own.


Remember: With great power comes great responsibility. Use this tool ethically and legally.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages