sarjanpatel22/vulnerability-scanner
GitHub: sarjanpatel22/vulnerability-scanner
基于 Python 和 Nmap 的命令行漏洞扫描器,自动按端口风险评级并生成带颜色标记的 PDF 报告。
Stars: 0 | Forks: 0
# 🔍 项目 2 — 漏洞扫描器 + 自动报告




一个基于 Python 的漏洞扫描器,使用 Nmap 扫描目标,自动为开放端口分配严重级别,并生成专业的 PDF 报告 —— 所有操作都在一个脚本中完成。
## 📋 目录
- [概述](#overview)
- [功能](#features)
- [环境要求](#requirements)
- [安装说明](#installation)
- [用法](#usage)
- [严重级别逻辑](#severity-logic)
- [示例输出](#sample-output)
- [截图](#screenshots)
- [经验总结](#lessons-learned)
## 🔍 概述
| 项目 | 详情 |
|---|---|
| **编程语言** | Python 3.13 |
| **扫描器** | 通过 python-nmap 调用 Nmap 7.99 |
| **报告格式** | PDF (reportlab) |
| **操作系统平台** | Kali Linux 2026.2 |
| **目标** | Ubuntu 26.04 LTS (Wazuh SIEM 服务器) |
| **发现端口** | 5 个开放端口 |
| **严重级别** | 2 个高危 · 1 个中危 · 2 个低危 |
## ✨ 功能
- 使用 Nmap (-sS -sV) 扫描任何目标 IP
- 自动分配严重级别:严重 / 高危 / 中危 / 低危
- 检测服务名称和版本
- 自动生成带有颜色标记的 PDF 报告
- 包含汇总表格 + 建议部分
- 简洁易读的代码 —— 没有过度设计
## 📦 环境要求
```
python3
nmap
python-nmap
reportlab
```
## ⚙️ 安装说明
```
# Clone 仓库
git clone https://github.com/sarjanpatel22/vuln-scanner.git
cd vuln-scanner
# 安装 Python 依赖
pip install python-nmap reportlab --break-system-packages
```
## 🚀 用法
```
python3 scanner.py
```
出现提示时,输入目标 IP 地址:
```
=== Vulnerability Scanner ===
by sarjan
enter the IP address to scan:
starting scan on
this might take a minute...
found port 22 - ssh - HIGH
found port 80 - http - HIGH
found port 443 - https - MEDIUM
found port 3000 - http - LOW
found port 9090 - http - LOW
scan complete! found 5 open ports
making pdf report...
report saved as: scan_report_.pdf
done!
```
## 🎯 严重级别逻辑
端口根据已知的风险等级进行评级:
| 严重级别 | 端口 | 原因 |
|---|---|---|
| 🔴 严重 | 21, 23, 445, 3389, 5900 | FTP, Telnet, SMB, RDP, VNC —— 极易被利用 |
| 🟠 高危 | 22, 80, 8080, 1433, 3306 | SSH, HTTP, 数据库 —— 经常受到攻击 |
| 🟡 中危 | 443, 8443, 25, 110, 143 | HTTPS, 邮件服务 —— 风险较低但值得检查 |
| 🟢 低危 | 其他所有端口 | 非常规端口 —— 值得关注 |
## 📊 示例输出 — Ubuntu 扫描
```
Target:
Scan Date: 2026-05-21
Summary:
Total: 5 | Critical: 0 | High: 2 | Medium: 1 | Low: 2
Open Ports:
22 | tcp | ssh | OpenSSH 10.2p1 Ubuntu | HIGH
80 | tcp | http | Apache httpd | HIGH
443 | tcp | https | unknown | MEDIUM
3000| tcp | http | Node.js Express | LOW
9090| tcp | http | Golang net/http server | LOW
Recommendations:
HIGH: Review SSH and web server configurations.
MEDIUM: Ensure SSL/TLS is properly configured.
```
## 📸 截图
| 序号 | 描述 |
|---|---|
| 1 | 在 Kali 上确认 Python, Nmap, pip 版本 |
| 2 | 已安装 python-nmap + reportlab |
| 3 | 创建项目文件夹 |
| 4 | 扫描器运行中 —— 检测到端口 |
| 5 | PDF 报告已验证 (localhost 扫描) |
| 6 | Ubuntu 虚拟机扫描 —— 发现 5 个端口 |
| 7 | 最终 PDF 报告输出 |
包含所有截图的完整报告在下方直接展示 —— 或者
[下载 PDF](./Project2_Vulnerability_Scanner_Report_1.pdf)。
标签:CTI, Nmap, Python, 插件系统, 数据统计, 无后门, 端口扫描, 虚拟驱动器, 逆向工具