mgokulsaran67-boop/Thiranex-Task-2-Vulnerability-Scanner-

GitHub: mgokulsaran67-boop/Thiranex-Task-2-Vulnerability-Scanner-

一个基于 Python 标准库的轻量级漏洞扫描器,面向渗透测试初学者,提供端口扫描、服务识别、弱配置检测与报告生成功能。

Stars: 0 | Forks: 0

# Mini 漏洞扫描器 一个简单的 Python 工具,它可以: 1. 扫描目标主机的开放 TCP 端口 2. 获取服务 banner 并标记过时的软件版本 3. 标记已知的脆弱配置(例如 Telnet、匿名 FTP、暴露的 RDP) 4. 生成报告(控制台输出 + `.txt` + `.html`) ## ⚠️ 仅供合乎道德的使用 仅扫描你**拥有**或被**明确授权**测试的主机——例如 `127.0.0.1`(你自己的机器)或你控制的实验 VM。扫描你 未经许可测试的系统在大多数地方都是非法的。 ## 项目结构 ``` vuln_scanner/ ├── main.py # entry point - run this ├── port_scanner.py # TCP port scanning ├── banner_grab.py # banner grabbing + outdated-version detection ├── report_gen.py # report generation (console/txt/html) └── README.md ``` ## 在 Visual Studio Code 中设置 1. 如果你还没有安装 **Python** (3.8+):https://www.python.org/downloads/ 在 Windows 上安装期间,请勾选“Add Python to PATH”。 2. **安装 VS Code**:https://code.visualstudio.com/ 3. 在 VS Code 中**安装 Python 扩展**: - 打开 VS Code → 扩展图标(左侧边栏,或按 `Ctrl+Shift+X`) - 搜索“Python”(由 Microsoft 提供)→ 安装 4. **打开项目文件夹**: - 文件 → 打开文件夹 → 选择 `vuln_scanner` 文件夹 5. **选择 Python 解释器**: - `Ctrl+Shift+P` → 输入“Python: Select Interpreter” → 选择你安装的 Python 6. **在 VS Code 中打开终端**:`` Ctrl+` ``(反引号),或 终端 → 新建终端 无需外部库——一切均使用 Python 的标准库 (`socket`、`argparse`、`concurrent.futures`、`datetime`)。 ## 运行扫描器 在 VS Code 终端中,进入 `vuln_scanner` 文件夹: ``` python main.py 127.0.0.1 ``` 扫描特定的端口范围: ``` python main.py 127.0.0.1 --start-port 1 --end-port 1024 ``` 自定义输出文件名前缀: ``` python main.py 127.0.0.1 --out-prefix my_scan ``` 这将在同一文件夹中生成 `report.txt` 和 `report.html`(或 `.txt/.html`)。 在浏览器中打开 `.html` 文件即可查看格式化的表格视图。 ### 使用安全的本地测试目标自己尝试 打开第二个终端并启动一个虚拟 Web 服务器: ``` python -m http.server 8080 ``` 然后在你的第一个终端中: ``` python main.py 127.0.0.1 --start-port 8000 --end-port 8090 ``` 你应该会看到检测到了 8080 端口及其 banner。 ## 工作原理(用于你的总结/报告) - **`port_scanner.py`** — 向范围内的每个端口打开原始 TCP 连接(`socket.connect_ex`)。 如果连接成功,则该端口处于“open”状态。 使用线程池,因此扫描 1000 多个端口不会花费很长时间。 - **`banner_grab.py`** — 对于每个开放端口,再次连接并读取 服务发送的第一个字节(或者,对于 Web 端口,发送最小的 HTTP `HEAD` 请求以获取 `Server:` 标头)。此 banner 通常会显示 软件名称 + 版本。一个小型查找表(`OUTDATED_SIGNATURES`) 会标记几个众所周知的过时/易受攻击版本作为示例——在 真实的工具中,这将查询国家漏洞数据库 (NVD) 或 CVE 数据源。 - **`report_gen.py`** — 根据是否标记了过时版本或脆弱配置,为 每个发现结果分配一个粗略的严重性(HIGH/MEDIUM/LOW), 然后将其写入控制台、纯文本和带有样式的 HTML 表格。 ## 扩展此项目(想法) - 添加 UDP 端口扫描 - 查询真实的 NVD API (https://nvd.nist.gov/developers) 以进行 CVE 匹配, 而不是使用硬编码的签名表 - 添加基本的 HTTP 标头检查(缺少 `X-Frame-Options`、 `Content-Security-Policy` 等),用于简单的 Web 应用错误配置检测 - 添加 SSL/TLS 证书过期和弱密码检查 - 将报告导出为 PDF - 添加 `--threads` 标志来调整扫描速度
标签:Python, 加密, 插件系统, 数据统计, 无后门, 服务器安全, 漏洞扫描器, 端口扫描, 逆向工具