Muhammad-Ayyan-Hussain/Network-Scanner

GitHub: Muhammad-Ayyan-Hussain/Network-Scanner

NetShield 是一款基于 Nmap 的开源 Python 网络扫描与漏洞报告工具,旨在为网络安全学习和授权评估提供从扫描到报告的一站式流程。

Stars: 0 | Forks: 0

# NetShield NetShield 是一款开源的网络扫描与漏洞报告工具,专为网络安全学习、信息安全项目以及授权网络评估而设计。 ## 功能 - 活动主机发现 - 端口扫描 - 全端口扫描支持 - 服务检测 - 版本检测 - OS 检测 - 漏洞规则匹配 - 风险严重性分类 - HTML 报告生成 - JSON 报告生成 - CSV 报告生成 - SQLite 扫描历史 - 时间模板 - 自定义端口扫描 - 无 Ping 扫描模式 - 键盘中断处理 - 错误处理 ## 项目结构 ``` NetShield/ │ ├── netshield/ │ ├── __init__.py │ ├── scanner.py │ ├── vulnerability.py │ ├── database.py │ └── report.py │ ├── main.py ├── history.py ├── requirements.txt ├── README.md ├── Screenshots/ ├── reports/ (created automatically) └── netshield.db (created automatically after first scan) ``` ## 环境要求 - Python 3.8+ - Nmap - SQLite3 - python-nmap - rich - jinja2 ## 下载项目 克隆仓库: ``` git clone https://github.com/Muhammad-Ayyan-Hussain/Network-Scanner.git cd Network-Scanner ``` ## 环境配置与依赖安装 ### 步骤 1:更新包列表 ``` sudo apt update ``` ### 步骤 2:安装必需的包 ``` sudo apt install python3 python3-pip python3-venv nmap -y sudo apt install sqlite3 libsqlite3-dev sqlitebrowser -y ``` ### 步骤 3:创建虚拟环境 ``` python3 -m venv venv ``` ### 步骤 4:激活虚拟环境 ``` source venv/bin/activate ``` ### 步骤 5:安装 Python 依赖 ``` pip install -r requirements.txt ``` `requirements.txt` 文件包含: ``` python-nmap rich jinja2 ``` 现在您已准备好使用 NetShield。 ## 首次运行 运行一次基础扫描以验证安装: ``` python3 main.py --target 127.0.0.1 ``` 这将自动: - 创建 netshield.db - 创建所需的数据库表 - 验证 Nmap 是否正常工作 ## 使用说明 ### 基础扫描 对目标执行常规扫描: ``` python3 main.py --target 192.168.1.1 ``` ### 快速扫描 扫描常用端口并执行服务/版本检测。 ``` python3 main.py --target 192.168.1.1 --scan-type quick ``` ### 全端口扫描 扫描从 1 到 65535 的所有端口。 ``` python3 main.py --target 192.168.1.1 --scan-type full ``` ### 活动主机发现 发现活动主机而不执行端口扫描。 ``` python3 main.py --target 192.168.1.0/24 --discover ``` ### 自定义端口扫描 仅扫描指定端口。 ``` python3 main.py --target 192.168.1.1 --ports 22,80,443 ``` ### 无 Ping 扫描 在 ICMP ping 被阻止时非常有用。 ``` python3 main.py --target 192.168.1.1 --no-ping ``` ### 生成报告 仅生成 HTML 报告: ``` python3 main.py --target 192.168.1.1 --output html ``` 仅生成 JSON 报告: ``` python3 main.py --target 192.168.1.1 --output json ``` 仅生成 CSV 报告: ``` python3 main.py --target 192.168.1.1 --output csv ``` 生成所有报告格式: ``` python3 main.py --target 192.168.1.1 --output all ``` ## 高级扫描模式 以下扫描模式需要 root 权限。 ### OS 检测 ``` sudo $(which python) main.py --target 192.168.1.1 --scan-type os ``` ### 隐蔽扫描 ``` sudo $(which python) main.py --target 192.168.1.1 --scan-type stealth ``` ### UDP 扫描 ``` sudo $(which python) main.py --target 192.168.1.1 --scan-type udp ``` ### 激进扫描 ``` sudo $(which python) main.py --target 192.168.1.1 --scan-type aggressive ``` ## 数据库使用 NetShield 会自动创建一个名为以下名称的 SQLite 数据库: ``` netshield.db ``` 该数据库会在首次执行扫描时自动创建。 示例: ``` python3 main.py --target 127.0.0.1 ``` 首次成功扫描后,`netshield.db` 文件将出现在项目目录中。 ### 查看扫描历史 ``` python3 history.py ``` 这将显示之前保存的扫描结果。 ### 使用 SQLite Browser 打开数据库 安装 SQLite Browser: ``` sudo apt install sqlitebrowser -y ``` 启动它: ``` sqlitebrowser netshield.db ``` 或者: ``` sqlitebrowser ``` 然后打开: ``` netshield.db ``` ### 使用终端查看数据库 ``` sqlite3 netshield.db ``` 显示表: ``` .tables ``` 查看已保存的扫描: ``` SELECT * FROM scans; ``` 退出 SQLite: ``` .quit ``` ## 报告 生成的报告会自动存储在以下位置: ``` reports/ ``` 支持的报告格式: * HTML * JSON * CSV ## 示例 生成所有报告: ``` python3 main.py --target 192.168.1.1 --scan-type quick --output all ``` 生成的文件: ``` reports/ ├── scan_report_xxx.html ├── scan_report_xxx.json └── scan_report_xxx.csv ``` ## 截图 展示该工具的截图可以在 `Screenshots/` 目录中找到。 ## 安全提示 NetShield 仅用于教育目的、网络安全学习以及授权的安全评估。 在扫描任何网络、主机或系统之前,用户有责任获得适当的授权。未经授权的扫描可能会违反法律、法规或组织政策。
标签:CTI, 后端开发, 逆向工具