This project is a multithreaded Python-based vulnerability scanner designed to perform basic network and web security assessments.
The scanner can:
- Detect open ports
- Identify running services
- Grab service banners
- Detect insecure configurations
- Perform version detection using Nmap
- Match known vulnerabilities and CVEs
- Perform basic web security checks
- Generate logs and scan reports
This project was built to gain practical experience in:
- Network security
- Socket programming
- Vulnerability assessment
- Penetration testing concepts
- Multithreading
- Cybersecurity automation
- Multi-threaded port scanning
- Common service detection
- Banner grabbing
- Vulnerability warning system
- Severity classification
- Nmap version detection
- CVE reference matching
- Web security header analysis
- Logging system
- Automated report generation
- Python
- Socket Programming
- ThreadPoolExecutor
- Nmap
- Requests
- Colorama
Vulnerability_Scanner/
│
├── scanner.py
├── report.txt
├── scan.log
├── requirements.txt
└── README.md
git clone https://github.com/vishalkumar-2006/Vulnerability_Scanner.git
cd Vulnerability_Scannerpip install -r requirements.txtDownload and install Nmap from:
https://nmap.org/download.html
During installation:
- Enable Add Nmap to PATH
Verify installation:
nmap --versionExample requirements.txt:
colorama
requests
python-nmap
Run the scanner:
python scanner.pyEnter target IP/domain:
Enter IP address: scanme.nmap.org
Choose scan mode:
1. Quick Scan
2. Full Scan
3. Vulnerability Scan
4. Web Security Check
Detects open ports and running services.
Example:
[OPEN] 80 - HTTP
[OPEN] 22 - SSH
Detects insecure services and vulnerable versions.
Example:
[WARNING] FTP is insecure
[HIGH RISK]
[VULNERABLE] Weak OpenSSH version detected
[CVE] CVE-2016-10012
Checks for missing security headers such as:
- X-Frame-Options
- Content-Security-Policy
- Strict-Transport-Security
- X-Content-Type-Options
The scanner automatically creates:
report.txtscan.log
These files contain scan results, detected vulnerabilities, and logs.
This project helped in understanding:
- TCP socket communication
- Network ports and protocols
- Service enumeration
- Banner grabbing
- Multi-threading in Python
- Vulnerability assessment concepts
- Basic penetration testing workflow
This project is intended for:
- Educational purposes
- Authorized security testing
- Learning cybersecurity concepts
Do NOT use this tool against systems without permission.
Unauthorized scanning may violate laws and policies.
Possible future enhancements:
- GUI interface
- PDF report generation
- Network range scanning
- Real-time CVE database integration
- OS fingerprinting
- Export results to JSON/CSV
- Advanced web vulnerability testing
Vishal Kumar S
Cybersecurity Enthusiast | Python Developer