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, 加密, 插件系统, 数据统计, 无后门, 服务器安全, 漏洞扫描器, 端口扫描, 逆向工具