z00xINe/Network-Reconnaissance-Scanner-Tool
GitHub: z00xINe/Network-Reconnaissance-Scanner-Tool
一个基于 Python 和 Docker Compose 的网络侦察扫描工具,自动化执行主机发现、端口与服务识别并提供持久化结果管理。
Stars: 0 | Forks: 2
# 网络侦察扫描工具
一个基于 Python 的网络侦察和扫描工具,专为安全评估、网络审计和基础设施发现而设计。该容器化工具利用 Docker Compose 实现可重复的部署,并通过挂载卷提供持久化数据管理。
## 概述
本项目提供一个模块化框架,用于自动化网络侦察任务,包括主机发现、端口扫描、服务枚举和基础漏洞评估。采用 Python 构建并通过 Docker Compose 编排,确保在开发、测试和生产环境中具有一致的执行环境。
## 功能
### 核心侦察能力
- 通过 ICMP、ARP 和 TCP SYN 探测进行主动主机发现
- 支持可配置范围和协议(TCP/UDP)的端口扫描
- 使用横幅抓取技术进行服务和版本识别
- 通过 TCP 栈分析进行操作系统指纹识别
- 网络拓扑映射和设备枚举
### 数据管理
- 通过 Docker 卷实现扫描结果和配置文件的持久化存储
- 结构化输出格式:JSON、CSV 和纯文本报告
- 扫描历史跟踪和结果对比工具
- 可配置的日志记录,支持轮转和严重性过滤
### 容器化与部署
- 使用 Docker Compose 进行多服务编排
- 为安全扫描操作提供隔离的网络命名空间
- 基于环境变量的敏感参数配置
- 适用于本地、云或物理隔离环境的即用型部署
### 可扩展性
- 插件架构,支持添加自定义扫描模块
- 配置驱动的扫描配置文件,实现可重复评估
- API 友好设计,便于集成到 SIEM 或编排平台
## 使用技术
- Python 3.8+ 用于核心扫描逻辑和自动化
- Scapy 库用于底层数据包构造与分析
- Docker 和 Docker Compose 用于容器化部署
- 持久化卷用于结果存储和配置管理
- 标准 Python 库:socket、threading、argparse、json、csv
## 先决条件
- Docker Engine 20.10+ 和 Docker Compose v2+
- Python 3.8 或更高版本(用于本地开发)
- 根权限或 CAP_NET_RAW 权限用于原始套接字操作
- 推荐使用 Linux、macOS 或 WSL2 环境
## 项目结构
```
Network-Reconnaissance-Scanner-Tool/
├── volumes/
│ ├── config/ # Scan profiles and configuration files
│ ├── results/ # Persistent storage for scan outputs
│ ├── logs/ # Application and scan execution logs
│ └── plugins/ # Custom scanning module extensions
├── docker-compose.yml # Multi-service orchestration definition
├── .gitignore # Excluded files and patterns
├── .gitattributes # Line ending and diff configuration
└── README.md # Project documentation
```
## 快速开始
### 使用 Docker Compose(推荐)
1. 克隆仓库:
```
git clone https://github.com/z00xINe/Network-Reconnaissance-Scanner-Tool.git
cd Network-Reconnaissance-Scanner-Tool
```
2. 启动扫描堆栈:
```
docker-compose up -d
```
3. 通过容器执行扫描:
```
docker-compose exec scanner python scanner.py --target 192.168.1.0/24 --profile quick
```
4. 在挂载卷中访问结果:
```
ls volumes/results/
```
## 本地开发环境搭建
1. 安装 Python 依赖:
```
pip install -r requirements.txt
```
2. 以提升权限运行以获取原始套接字访问权限:
```
sudo python scanner.py --target example.com --ports 1-1024
```
3. 查看可用选项:
```
python scanner.py --help
```
## 配置
- 扫描行为可通过命令行参数和 `volumes/config/` 中的可选配置文件控制:
```
# volumes/config/profiles/quick.yml
target: 192.168.1.0/24
ports: [22, 80, 443, 8080]
timeout: 2
threads: 50
output_format: json
```
- 使用配置文件运行:
```
python scanner.py --profile quick
```
## 输出示例
- JSON 报告片段
```
{
"scan_id": "scan_20250202_143022",
"target": "192.168.1.10",
"ports": [
{"port": 22, "protocol": "tcp", "state": "open", "service": "ssh", "version": "OpenSSH 8.2"},
{"port": 80, "protocol": "tcp", "state": "open", "service": "http", "version": "nginx 1.18"}
],
"os_guess": "Linux 5.x",
"timestamp": "2025-02-02T14:30:45Z"
}
```
## 安全与道德使用
- 本工具仅限授权安全测试使用。请务必:
- 在扫描非自有网络前获得明确书面许可
- 遵守适用法律和组织策略
- 在隔离实验室环境中进行测试和开发
- 未经授权避免扫描关键基础设施
- 滥用网络扫描工具可能违反计算机犯罪法规和服务条款
## 许可证
- 本项目仅供教育和授权的安全研究使用。请负责任并遵守所有适用法律使用。
## 作者
- Youssef Mohamed (@z00xINe)
标签:AES-256, API就绪, ARP, Banner抓取, CSV, Docker Compose, Docker容器化, Facebook API, ICMP, JSON, OS指纹识别, Python, Scapy, SIEM集成, TCP SYN, 云端部署, 反取证, 可重复评估, 基础设施发现, 多服务编排, 安全评估, 扫描历史追踪, 持久化存储, 插件架构, 数据统计, 无后门, 日志轮转, 服务枚举, 本地模型, 本地部署, 漏洞评估, 版权保护, 环境变量配置, 空气隔离环境, 端口扫描, 结果比较, 网络审计, 网络拓扑映射, 设备枚举, 请求拦截, 调试插件, 配置驱动, 隔离网络命名空间