Chriscoding19/network-vulnerability-scanner

GitHub: Chriscoding19/network-vulnerability-scanner

一个零依赖的Python网络扫描器,通过多线程端口扫描和Banner抓取快速识别开放服务与安全配置缺陷。

Stars: 0 | Forks: 0

# 网络漏洞扫描器 一个基于 Python 的网络安全扫描器,用于检测开放端口并识别网络配置中的潜在安全弱点。 ## 架构 ``` network-scanner/ ├── scanner.py ← Main entry point (CLI) ├── core/ │ ├── port_scanner.py ← Multi-threaded TCP port scanner + banner grabbing │ ├── vulnerability_detector.py ← Security weakness analyser │ └── network_analyser.py ← Host info, OS fingerprinting, ping ├── reports/ │ └── report_generator.py ← Terminal, JSON, and HTML report output ├── utils/ │ └── logger.py ← Centralised logging └── tests/ └── test_scanner.py ← 19 unit tests (all passing) ``` ## 快速开始 ``` # No external dependencies required — uses Python stdlib only! # Scan common ports on a target python scanner.py scanme.nmap.org --common # Scan port range 1–1024 (default) python scanner.py 192.168.1.1 # Scan specific ports python scanner.py 192.168.1.1 --ports 22,80,443,3306,5432 # Full scan (all 65535 ports — use high thread count) python scanner.py 192.168.1.1 --full --threads 500 # Save reports to custom directory python scanner.py scanme.nmap.org --output my_reports/ ``` ## 漏洞检测 该扫描器检查以下安全弱点: | 检查项 | 严重程度 | 描述 | |---|---|---| | Telnet 服务开放 | **CRITICAL** | 明文远程访问,凭据暴露 | | 后门端口 (4444) | **CRITICAL** | 默认 Metasploit/恶意软件监听端口 | | FTP (明文) | **HIGH** | 凭据以明文形式发送 | | RDP 暴露 | **HIGH** | 远程桌面暴力破解目标 (CVE-2019-0708) | | VNC 暴露 | **HIGH** | 认证薄弱,未加密 | | 数据库端口开放 | **HIGH** | MySQL, PostgreSQL, MongoDB, Redis, Elasticsearch 暴露 | | HTTP (无 HTTPS) | **MEDIUM** | 未加密的 Web 流量 | | IMAP/POP3/SMTP 明文 | **MEDIUM** | 未加密的邮件协议 | | LDAP (无 LDAPS) | **MEDIUM** | 未加密的目录查询 | | 版本泄露 | **LOW** | 服务指纹暴露软件版本 | | 过时的 SSH/Apache | **HIGH** | 旧版本的已知 CVE | ## 功能特性 - **多线程扫描** — 默认 150 个线程,最高可配置至 500+ - **Banner 抓取** — 读取服务指纹以识别版本 - **OS 指纹识别** — 基于 TTL 的启发式判断 (Linux=64, Windows=128, Solaris=255) - **3 种报告格式** — 终端 (彩色), JSON (机器可读), HTML (浏览器) - **CVE 参考** — 发现结果关联到真实 CVE 编号 - **19 个单元测试** — 使用 mocked socket 进行全面测试 ## 示例输出 ``` [ 1/4 ] Analysing host... [ 2/4 ] Scanning ports... Found 4 open port(s). [ 3/4 ] Detecting vulnerabilities... Found 5 vulnerability finding(s). [ 4/4 ] Generating reports... ── OPEN PORTS (4) ───────────────────────────── PORT PROTO SERVICE RISK BANNER ──────── ────── ────────────────── ────────── ────────────────────────────── 22 TCP SSH MEDIUM SSH-2.0-OpenSSH_8.9 23 TCP TELNET HIGH ▒▒▒▒ Login: 80 TCP HTTP MEDIUM 3306 TCP MySQL HIGH ── VULNERABILITIES (5) ────────────────────── [01] CRITICAL — Telnet Service Detected Port: 23 | CVE: CVE-1999-0619 Fix: Disable Telnet immediately. Replace with SSH. ... ``` ## 运行测试 ``` # Run all 19 unit tests python tests/test_scanner.py # Or with pytest pip install pytest pytest tests/ -v ``` ## 法律与合规使用 ## 🛠 技术栈 - **语言**: Python 3.10+ - **依赖**: 无 (纯标准库 — `socket`, `threading`, `subprocess`, `re`, `json`) - **并发**: `threading.Thread` + `queue.Queue` 用于线程池 - **输出**: ANSI 终端颜色, JSON, 样式化 HTML
标签:AES-256, AMSI绕过, Banner抓取, C2日志可视化, Claude, CVE检测, Nmap替代, OS指纹识别, Python安全工具, TCP扫描, URL短链接分析, 加密, 威胁检测, 安全合规, 密码管理, 指纹识别, 插件系统, 数据统计, 服务器安全, 服务探测, 标准库, 漏洞扫描器, 漏洞评估, 漏洞赏金平台, 端口扫描, 系统分析, 网络代理, 网络分析, 网络安全, 网络安全审计, 逆向工具, 隐私保护