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()