chaitu262005/Vulnerability-Scanner1

GitHub: chaitu262005/Vulnerability-Scanner1

Stars: 0 | Forks: 0

import socket import requests from datetime import datetime # Common ports to scan COMMON_PORTS = { 21: "FTP", 22: "SSH", 23: "Telnet", 25: "SMTP", 53: "DNS", 80: "HTTP", 110: "POP3", 139: "NetBIOS", 143: "IMAP", 443: "HTTPS", 445: "SMB", 3306: "MySQL", 3389: "RDP" } # Simple outdated software database OUTDATED_SOFTWARE = { "Apache/2.2": "Outdated Apache version detected", "OpenSSH_5": "Old OpenSSH version detected", "nginx/1.10": "Outdated Nginx version detected" } report = [] def scan_ports(target): print(f"\nScanning target: {target}\n") open_ports = [] for port, service in COMMON_PORTS.items(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(1) result = sock.connect_ex((target, port)) if result == 0: print(f"[OPEN] Port {port} ({service})") open_ports.append((port, service)) report.append(f"[OPEN PORT] {port} ({service})") sock.close() return open_ports def check_http_headers(target): try: url = f"http://{target}" response = requests.get(url, timeout=3) server = response.headers.get("Server", "Unknown") print(f"\n[INFO] Server Header: {server}") report.append(f"[SERVER] {server}") # Check outdated software for version in OUTDATED_SOFTWARE: if version in server: warning = OUTDATED_SOFTWARE[version] print(f"[WARNING] {warning}") report.append(f"[WARNING] {warning}") return server except Exception as e: print(f"[ERROR] HTTP check failed: {e}") return None def detect_weak_configs(open_ports): print("\nChecking weak configurations...\n") for port, service in open_ports: if port == 23: warning = "Telnet service enabled (insecure)" print(f"[WARNING] {warning}") report.append(f"[WARNING] {warning}") if port == 21: warning = "FTP service enabled (possible insecure authentication)" print(f"[WARNING] {warning}") report.append(f"[WARNING] {warning}") if port == 80: warning = "HTTP enabled without HTTPS enforcement" print(f"[WARNING] {warning}") report.append(f"[WARNING] {warning}") def generate_report(target): filename = "report.txt" with open(filename, "w") as f: f.write("=== Vulnerability Scan Report ===\n") f.write(f"Target: {target}\n") f.write(f"Scan Time: {datetime.now()}\n\n") for item in report: f.write(item + "\n") print(f"\nReport saved to {filename}") def main(): target = input("Enter target IP or domain: ") open_ports = scan_ports(target) if 80 in [p[0] for p in open_ports]: check_http_headers(target) detect_weak_configs(open_ports) generate_report(target) if __name__ == "__main__": main()