Arpit299/Network-Vulnerability-Scanner

GitHub: Arpit299/Network-Vulnerability-Scanner

一个基于 Jupyter Notebook 和 nmap 的轻量级网络扫描工具,用于探测目标主机的开放端口与服务版本并提供基础风险评估。

Stars: 0 | Forks: 0

# 网络漏洞扫描器 ## 概述 本 Jupyter Notebook 提供了一个简单而有效的工具,用于执行基本的网络漏洞扫描。它利用 nmap 来识别指定目标(IP 地址或域名)上开放的端口和服务。对于每个识别出的服务,它会尝试提供基本的风险评估和建议。 ## 功能 - **端口扫描**:识别开放的 TCP 端口。 - **服务版本检测**:确定在开放端口上运行的服务及其版本。 - **基本风险评估**:为某些常见的服务/端口分配“高”、“中”或“低”风险等级,并提供相关建议。 - **输出**:以结构化表格的形式显示扫描结果,并将其导出为 CSV 文件。 ## 使用方法 1. **安装依赖项**:当您运行第一个代码单元格时,Notebook 会自动安装 nmap 和 python-nmap。 2. **运行所有单元格**:按顺序执行 Notebook 中的所有单元格。 3. **输入目标**:出现提示时,输入您想要扫描的 IP 地址或域名(例如,google.com 或 192.168.1.1)。 4. **查看结果**:扫描结果将显示在 pandas DataFrame 中。同时还会在与该 Notebook 相同的目录下生成一份 CSV 报告。 ## 类和函数 ### VulnerabilityScanner 类 - `__init__(self)`:初始化 `nmap.PortScanner` 对象。 - `get_risk_level(self, port, service)`:一个辅助函数,根据端口号和服务名称分配风险等级和建议。这是一个简化的评估,不能替代专业的安全分析。 - `high_risk_ports`:(例如 FTP、Telnet、SMB、RDP) - `medium_risk_ports`:(例如 HTTP、SSH) - `scan(self, target)`:执行实际的网络扫描。 - 将目标域名解析为 IP 地址。 - 使用 `nmap -sV` 进行服务版本检测。 - 解析 nmap 输出并应用风险评估。 - 处理无效的主机名/IP 地址及其他异常。 ## 输出示例 | 主机 | 端口 | 协议 | 服务 | 版本 | 风险等级 | 建议 | | --- | --- | --- | --- | --- | --- | --- | | 192.168.1.1 | 22 | tcp | ssh | OpenSSH 8.9 | 中 | 确保服务已更新并使用强身份验证。 | | 192.168.1.1 | 80 | tcp | http | Apache httpd | 中 | 确保服务已更新并使用强身份验证。 | ## 免责声明 本工具仅供教育和个人使用。未经明确许可擅自扫描网络是非法且不道德的。请负责任地使用此工具,并且仅对您拥有或获得授权进行测试的系统使用。
标签:Nmap, NoSQL, Python, Ubuntu, 主机安全, 云存储安全, 反取证, 安全评估, 插件系统, 无后门, 网络扫描, 虚拟驱动器, 逆向工具