chaitu262005/Vulnerability-Scanner1
GitHub: chaitu262005/Vulnerability-Scanner1
一个使用 Python 实现的轻量级漏洞扫描工具,通过检测开放端口、识别弱配置和过期软件版本来生成基本的安全评估报告。
Stars: 0 | Forks: 0
import socket
import requests
from datetime import datetime
# 待扫描的常用端口
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"
}
# 简单的过期软件数据库
OUTDATED_SOFTWARE = {
"Apache/2.2": "检测到过期的 Apache 版本",
"OpenSSH_5": "检测到旧的 OpenSSH 版本",
"nginx/1.10": "检测到过期的 Nginx 版本"
}
report = []
def scan_ports(target):
print(f"\n正在扫描目标: {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("\n正在检查弱配置...\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("请输入目标 IP 或域名: ")
```
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()
标签:Python, 主机安全, 弱配置检测, 插件系统, 数据统计, 无后门, 端口扫描, 自动化报告, 逆向工具