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, 后端开发, 逆向工具