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短链接分析, 加密, 威胁检测, 安全合规, 密码管理, 指纹识别, 插件系统, 数据统计, 服务器安全, 服务探测, 标准库, 漏洞扫描器, 漏洞评估, 漏洞赏金平台, 端口扫描, 系统分析, 网络代理, 网络分析, 网络安全, 网络安全审计, 逆向工具, 隐私保护