yzaakk/vulnerability-scanner

GitHub: yzaakk/vulnerability-scanner

一个纯 Python 实现的轻量级命令行漏洞扫描器,用于检测开放端口、弱配置和过时软件版本并生成分级风险报告。

Stars: 0 | Forks: 0

# 🔍 漏洞扫描器(微型项目) 一个使用 Python 构建的命令行漏洞扫描器,可检测 Web 应用程序和网络中常见的安全弱点。这是 **Thiranex 技能开发计划 — 项目 2** 的一部分。 ## 📸 功能 - ✅ **端口扫描器** — 扫描开放端口并带有实时进度条 - ✅ **风险分级** — 将每个开放端口标记为 CRITICAL / HIGH / MEDIUM / LOW - ✅ **弱配置检测** — 识别危险的配置错误: - 匿名 FTP 登录 - Telnet 服务正在运行 - SMB 暴露(EternalBlue / WannaCry 风险) - RDP 公开暴露 - 可从互联网访问的数据库(MySQL, MongoDB, Redis, PostgreSQL, MSSQL) - HTTP 而非 HTTPS - ✅ **Banner 抓取** — 检测过时/有漏洞的软件版本 - ✅ **漏洞报告** — 自动保存详细的 `.txt` 报告 - ✅ **3 种扫描模式** — 快速、完全或自定义端口范围 - ✅ **无需外部库** — 纯 Python 3 编写,可在任何地方运行 ## 🚀 如何运行 ``` # Clone the repo git clone https://github.com/yzaakk/vulnerability-scanner.git cd vulnerability-scanner # Run the scanner (Python 3 required) python3 vulnerability_scanner.py ``` ``` Enter target (IP or hostname): 192.168.1.1 Select scan mode: [1] Quick Scan - Top 20 common ports [2] Full Scan - All risky ports (recommended) [3] Custom Scan - Enter port range manually ``` ## 📊 示例输出 ``` ══════════════════════════════════════════════════════════ VULNERABILITY SCAN REPORT ══════════════════════════════════════════════════════════ Target : 192.168.1.1 Open Ports Found: 4 ── OPEN PORTS ────────────────────────────────────────── [CRITICAL] Port 23 Telnet [HIGH] Port 21 FTP [MEDIUM] Port 80 HTTP [LOW] Port 443 HTTPS ── CONFIGURATION VULNERABILITIES ─────────────────────── [CRITICAL] Telnet Service Active → Telnet transmits all data in plaintext. Disable and replace with SSH. ── SUMMARY ───────────────────────────────────────────── CRITICAL : 1 HIGH : 1 MEDIUM : 1 LOW : 0 Overall Risk: CRITICAL ``` ## 🧠 学习到的概念 ### 渗透测试基础 - **侦察** — 识别开放端口和服务(渗透测试的第一阶段) - **端口扫描** — 通过 Python sockets 使用 TCP connect 扫描 - **Banner 抓取** — 从服务响应中提取软件版本信息 ### 漏洞评估 - **CVE 意识** — EternalBlue (MS17-010)、vsftpd 后门 (CVE-2011-2523)、PHP EOL 风险 - **配置错误风险** — 为什么数据库、RDP 和 Telnet 永远不应该直接面向互联网 - **风险评分** — CRITICAL / HIGH / MEDIUM / LOW 严重程度分类(类似于 CVSS) ### 网络概念 - TCP 3 次握手和用于非阻塞端口检查的 `connect_ex()` - Python 中的 Socket 编程 - 用于主机发现的 ICMP ping ## 📁 项目结构 ``` vulnerability-scanner/ │ ├── vulnerability_scanner.py # Main scanner script └── README.md # Documentation ``` ## 🛡️ 覆盖的端口 | 端口 | 服务 | 风险 | |------|---------|------| | 21 | FTP | HIGH | | 22 | SSH | LOW | | 23 | Telnet | CRITICAL | | 80 | HTTP | MEDIUM | | 443 | HTTPS | LOW | | 445 | SMB | CRITICAL | | 3306 | MySQL | HIGH | | 3389 | RDP | CRITICAL | | 6379 | Redis | CRITICAL | | 27017 | MongoDB | CRITICAL | | ...及其他 | | | ## 👤 作者 **Vaishak VJ** BCA 毕业生 | 网络安全爱好者 | CICSA 候选人 [TryHackMe](https://tryhackme.com/p/vaishakvj1097) • [Blue Team Labs Online](https://blueteamlabs.online) *为 Thiranex 技能开发计划 — 项目 2 而构建*
标签:Python, 实时处理, 插件系统, 数据统计, 无后门, 服务器安全, 端口扫描, 网络安全, 逆向工具, 隐私保护