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.
- 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
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.
- Python 3.7 or higher
- pip (Python package installer)
- Clone the repository:
git clone https://github.com/SiddharthMathur01/Basic-Vulnerability-Scanner.git
cd Basic-Vulnerability-Scanner- Install required dependencies:
pip install -r requirements.txtpython main.py example.comPort Scan Only:
python main.py example.com -pSecurity Headers Only:
python main.py example.com -HSSL/TLS Check Only:
python main.py example.com -sSoftware Version Detection:
python main.py example.com -vAll Scans with HTML Report:
python main.py example.com -a -o report.htmlpositional 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
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
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
Checks for missing security headers:
Strict-Transport-Security- Enforces HTTPSX-Frame-Options- Prevents clickjackingX-Content-Type-Options- Prevents MIME-sniffingContent-Security-Policy- Prevents XSS attacksX-XSS-Protection- XSS filteringReferrer-Policy- Controls referrer informationPermissions-Policy- Controls browser features
Analyzes:
- SSL/TLS protocol version
- Certificate expiration date
- Cipher suite strength
- Weak protocol usage (SSLv2, SSLv3, TLS 1.0/1.1)
- Certificate validity
Identifies exposed software information:
- Web server versions (Apache, Nginx, IIS)
- Backend technologies (PHP, ASP.NET)
- Content Management Systems (WordPress, Joomla, Drupal)
- JavaScript libraries (jQuery)
After running a scan, consider:
- Close unnecessary ports - Only expose required services
- Implement security headers - Add all recommended headers
- Keep SSL/TLS updated - Use TLS 1.2 or higher
- Hide version information - Don't expose software versions
- Regular updates - Keep all software patched
- Use strong ciphers - Disable weak encryption
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.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built for educational purposes to help learn about cybersecurity
- Inspired by professional security scanning tools
- Uses open-source Python libraries
If you encounter any issues or have questions:
- Open an issue on GitHub
- Check existing issues for solutions
- Review the documentation
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.