PradaFit/NetRecon
GitHub: PradaFit/NetRecon
NetRecon 是一个集异步端口扫描、DNS 查询和 IP 地理定位于一体的多功能网络侦察工具,用于快速网络诊断和安全评估。
Stars: 0 | Forks: 0
# NetRecon
NetRecon 是一个用 Python 编写的网络侦察工具集,专为快速 DNS 查询、异步 TCP 端口扫描、可选的 Nmap 驱动枚举、IP 地理定位以及可导出的扫描历史而构建。它附带一个桌面 GUI 和一个 CLI,可在 Windows、Linux 和 macOS 上运行,并且核心扫描功能无需依赖 Nmap。
本工具旨在用于您拥有或明确授权评估的系统上的授权网络诊断、DNS 验证、内部网络检查和安全测试。
由 PradaFit 开发。
## 可在 Microsoft Store 获取
**NetRecon 网络工具集** 是 NetRecon 的官方 Microsoft Store 版本,由 PradaFitDev 发布。
- 商店页面:https://apps.microsoft.com/store/detail/9N0FM1DQSB34?cid=DevShareMCLPCS
- 在 Windows 10 (1809+) 和 Windows 11 (x64 和 ARM64) 上一键安装
- 通过 Microsoft Store 自动更新
- 经 Microsoft 签名和认证,在标准 MSIX 应用容器内运行
GitHub 发布页面继续为偏好手动安装、便携使用或从源代码构建的用户托管独立的 Inno Setup 安装程序 (`NetRecon-Setup-*.exe`) 和源代码分发包。两个版本共享相同的引擎、功能集和本地优先设计。
| 版本 | 分发方式 | 更新方式 | 最适用于 |
| --- | --- | --- | --- |
| Microsoft Store | MSIX 包 | 通过商店自动更新 | 大多数 Windows 用户 |
| GitHub 发布 | Inno Setup `.exe` | 手动下载 | 离线 / 便携 / 自定义安装 |
| 源代码 | `git clone` + `pip` | `git pull` | Linux, macOS, 开发工作 |
## 为什么选择 NetRecon
大多数小型侦察工具只擅长做一件事,其他功能则像是临时凑合。NetRecon 旨在成为日常主力工具:启动快速,使用实用,并且足够灵活,可以在 GUI 工作流和基于终端的检查之间无缝切换,无需更换工具。
最大的区别在于其内置的原生扫描器。如果安装了 Nmap,NetRecon 可以使用它。如果没有安装,应用程序仍然可以使用其自身的异步 TCP 引擎正常工作。
## 核心功能
- 内置异步 TCP 扫描器,高并发、非阻塞 DNS 解析,无需外部扫描器
- 为需要经典服务和操作系统检测工作流的用户提供可选的 Nmap 集成
- DNS 工具包,支持 `A`、`AAAA`、`MX`、`NS`、`TXT`、`SOA`、`CNAME`、`PTR`、`SRV` 和 `CAA` 记录
- 跨公共 DNS 服务器的 DNS 传播检查
- 反向 DNS 和 WHOIS 查询
- 具有提供商故障转移功能的 IP 地理定位
- 使用 `customtkinter` 构建的桌面 GUI
- 用于快速终端驱动侦察的 CLI 模式
- 扫描历史存储在 SQLite 中,具有安全的连接生命周期和 `VACUUM` 清理
- 将输出导出为 JSON、CSV、带样式的 HTML,以及适用情况下的交互式地图/报告格式
- 强化的输入验证、沙盒化的导出路径和参数化的数据库查询
- 跨 Windows、Linux 和 macOS 平台运行
- Windows 安装程序 (Inno Setup),适用于 Windows 10 / 11
## 界面概览
NetRecon 包含了大多数人实际使用的两种工作流:
- GUI 用于点击扫描、DNS 查询、地理定位、导出和历史回顾
- CLI 用于快速检查、脚本编写和低摩擦的终端工作
GUI 包含以下专用选项卡:
- DNS 查询
- 端口扫描器
- 地理定位
- 历史记录
一个内置的 **关于** 窗口(主窗口右上角)展示了项目链接、负责任使用提示、许可证信息,以及一个一键 **导出诊断日志** 操作,该操作会生成一个经过清理的文本文件用于错误报告。
首次启动时,GUI 会显示一段简短的 **负责任使用** 提示,必须接受后应用才能继续。接受状态会存储在本地,后续启动时该提示将不再出现。
### 原生扫描器
内置扫描器是默认路径,专为速度而设计。它使用异步 TCP 连接,支持自定义端口选择,并避免了在缺少 Nmap 的机器上 GUI 工具变得不可用的问题。
默认配置:
- 默认使用 `native_quick` 配置文件
- GUI 速度下拉菜单有四个级别:**安全 (500)**、**平衡 (1500)**(默认)、**快速 (4000)**、**极限 (8000)**。极限级别需要明确确认。
- `1.5 秒` 连接超时
- 可配置的内存上限保护措施
### Nmap 集成
如果 Nmap 已安装并且在 `PATH` 中可用,NetRecon 可以为希望进行更深层服务检测或传统 Nmap 输出行为的用户切换到基于 Nmap 的配置文件。
如果未安装 Nmap,NetRecon 在其核心扫描工作流中仍然完全可用。
## DNS 工具包
NetRecon 不仅限于基本记录查询。DNS 引擎包括:
- 单条记录查询
- 跨所有支持的记录类型进行全记录扫描
- 反向查询
- 跨公共 DNS 服务器的传播检查
- WHOIS 查询
- 用于授权测试场景的区域传送尝试
这使其在例行 DNS 故障排除、域名侦察以及记录更改后的快速验证工作中非常有用。
## 地理定位
地理引擎可以解析公共 IP 元数据,包括位置、ISP、ASN 以及可用时的反向 DNS 详细信息。它使用多个提供商并具有故障转移行为,而不是依赖单一端点。
## 导出与历史记录
结果可以保留、审查并移入报告中,无需额外的清理工作。
- SQLite 支持的历史存储
- JSON 导出
- CSV 导出
- 带样式的 HTML 导出
- 结果类型支持时可输出交互式报告或地图
如果您希望一个工具同时用于数据收集和交接,这将非常有用。
## 快速开始
### 选项 A:Windows 安装程序
从 Releases 页面下载最新的 `NetRecon-Setup-*.exe`(或从 Microsoft Store 安装)并运行。安装程序支持 Windows 10 (1809+) 和 Windows 11(x64 和 ARM64),创建开始菜单和可选的桌面快捷方式,并在升级和卸载过程中保留 `%USERPROFILE%\.netrecon` 下的用户数据。
### 选项 B:从源代码安装
#### 1. 克隆仓库
```
git clone https://github.com/PradaFit/NetRecon.git
cd NetRecon
```
#### 2. 安装依赖项
```
pip install -r requirements.txt
```
#### 3. 启动 GUI
```
python main.py
```
#### 4. 启动 CLI
```
python main.py --cli
```
## CLI 示例
### DNS 查询
```
python main.py dns example.com
python main.py dns example.com --type MX
```
### 原生端口扫描
```
python main.py scan 192.168.1.1
python main.py scan 192.168.1.0/24 -p quick
```
### 基于 Nmap 的扫描
```
python main.py scan 192.168.1.1 --nmap
```
### IP 地理定位
```
python main.py geo 8.8.8.8
python main.py geo --myip
```
## 安装说明
- Python 依赖项列在 `requirements.txt` 中
- Nmap 是可选的,不是必需的
- 该项目基于 Python `3.12` 开发和测试
- GUI 支持依赖于 `customtkinter` 和 `Pillow`
## 安全说明
NetRecon 在核心引擎中包含输入验证和防御性处理。
- 目标和端口输入清理,具有严格的 IPv4、IPv6、CIDR 和主机名规则
- Nmap 参数允许列表,阻止文件包含、输出重定向、自定义数据目录和恢复标志 (`-iL`, `-iR`, `--datadir`, `--servicedb`, `--versiondb`, `-oN/-oX/-oG/-oA`, `--resume`, `--script-args`)
- 使用真实路径包含检查将导出路径沙盒化到主目录、临时目录和工作目录根
- SQLite 连接使用 `contextlib.closing` 包装,并全程使用参数化查询
- 报告生成中的 HTML 转义
- 地理地图输出中的坐标强制转换,以防止注入到渲染的 Folium 弹出窗口中
这并不能使鲁莽的扫描变得安全。它意味着应用程序不会轻率地信任用户输入。
## 项目布局
```
.
|-- main.py
|-- config.json
|-- requirements.txt
|-- gui/
|-- netrecon/
|-- DISCLAIMER.md
|-- LICENSE
```
## 实际应用场景
- DNS 故障排除和传播验证
- 您管理的网络上的内部主机清单
- 发布主机前的服务暴露检查
- 公共 IP 和 ASN 查询
- 用于后续工作的轻量级报告和导出
- 授权的安全测试项目
## 隐私
NetRecon 不包含遥测、分析或第三方跟踪器。扫描结果、历史记录、首选项和诊断日志在 Windows 上存储在本地 `%USERPROFILE%\.netrecon` 下,其他平台存储在 `~/.netrecon` 下。仅当您运行地理定位查询时才会向公共 IP 查询 API 发送请求,并且仅包含您提供的 IP 地址。
## 法律与负责任使用
仅在您拥有或明确授权评估的系统、网络和域名上使用 NetRecon。
使用前请查阅 `DISCLAIMER.md` 中的项目免责声明。该仓库采用 GPLv3 许可证。
## 关键词
Python 端口扫描器,Nmap GUI,DNS 查询工具,网络侦察工具集,异步 TCP 扫描器,WHOIS 查询,IP 地理定位,跨平台网络扫描器,Python 网络工具。
## 可在 Microsoft Store 获取
**NetRecon 网络工具集** 是 NetRecon 的官方 Microsoft Store 版本,由 PradaFitDev 发布。
- 商店页面:https://apps.microsoft.com/store/detail/9N0FM1DQSB34?cid=DevShareMCLPCS
- 在 Windows 10 (1809+) 和 Windows 11 (x64 和 ARM64) 上一键安装
- 通过 Microsoft Store 自动更新
- 经 Microsoft 签名和认证,在标准 MSIX 应用容器内运行
GitHub 发布页面继续为偏好手动安装、便携使用或从源代码构建的用户托管独立的 Inno Setup 安装程序 (`NetRecon-Setup-*.exe`) 和源代码分发包。两个版本共享相同的引擎、功能集和本地优先设计。
| 版本 | 分发方式 | 更新方式 | 最适用于 |
| --- | --- | --- | --- |
| Microsoft Store | MSIX 包 | 通过商店自动更新 | 大多数 Windows 用户 |
| GitHub 发布 | Inno Setup `.exe` | 手动下载 | 离线 / 便携 / 自定义安装 |
| 源代码 | `git clone` + `pip` | `git pull` | Linux, macOS, 开发工作 |
## 为什么选择 NetRecon
大多数小型侦察工具只擅长做一件事,其他功能则像是临时凑合。NetRecon 旨在成为日常主力工具:启动快速,使用实用,并且足够灵活,可以在 GUI 工作流和基于终端的检查之间无缝切换,无需更换工具。
最大的区别在于其内置的原生扫描器。如果安装了 Nmap,NetRecon 可以使用它。如果没有安装,应用程序仍然可以使用其自身的异步 TCP 引擎正常工作。
## 核心功能
- 内置异步 TCP 扫描器,高并发、非阻塞 DNS 解析,无需外部扫描器
- 为需要经典服务和操作系统检测工作流的用户提供可选的 Nmap 集成
- DNS 工具包,支持 `A`、`AAAA`、`MX`、`NS`、`TXT`、`SOA`、`CNAME`、`PTR`、`SRV` 和 `CAA` 记录
- 跨公共 DNS 服务器的 DNS 传播检查
- 反向 DNS 和 WHOIS 查询
- 具有提供商故障转移功能的 IP 地理定位
- 使用 `customtkinter` 构建的桌面 GUI
- 用于快速终端驱动侦察的 CLI 模式
- 扫描历史存储在 SQLite 中,具有安全的连接生命周期和 `VACUUM` 清理
- 将输出导出为 JSON、CSV、带样式的 HTML,以及适用情况下的交互式地图/报告格式
- 强化的输入验证、沙盒化的导出路径和参数化的数据库查询
- 跨 Windows、Linux 和 macOS 平台运行
- Windows 安装程序 (Inno Setup),适用于 Windows 10 / 11
## 界面概览
NetRecon 包含了大多数人实际使用的两种工作流:
- GUI 用于点击扫描、DNS 查询、地理定位、导出和历史回顾
- CLI 用于快速检查、脚本编写和低摩擦的终端工作
GUI 包含以下专用选项卡:
- DNS 查询
- 端口扫描器
- 地理定位
- 历史记录
一个内置的 **关于** 窗口(主窗口右上角)展示了项目链接、负责任使用提示、许可证信息,以及一个一键 **导出诊断日志** 操作,该操作会生成一个经过清理的文本文件用于错误报告。
首次启动时,GUI 会显示一段简短的 **负责任使用** 提示,必须接受后应用才能继续。接受状态会存储在本地,后续启动时该提示将不再出现。
### 原生扫描器
内置扫描器是默认路径,专为速度而设计。它使用异步 TCP 连接,支持自定义端口选择,并避免了在缺少 Nmap 的机器上 GUI 工具变得不可用的问题。
默认配置:
- 默认使用 `native_quick` 配置文件
- GUI 速度下拉菜单有四个级别:**安全 (500)**、**平衡 (1500)**(默认)、**快速 (4000)**、**极限 (8000)**。极限级别需要明确确认。
- `1.5 秒` 连接超时
- 可配置的内存上限保护措施
### Nmap 集成
如果 Nmap 已安装并且在 `PATH` 中可用,NetRecon 可以为希望进行更深层服务检测或传统 Nmap 输出行为的用户切换到基于 Nmap 的配置文件。
如果未安装 Nmap,NetRecon 在其核心扫描工作流中仍然完全可用。
## DNS 工具包
NetRecon 不仅限于基本记录查询。DNS 引擎包括:
- 单条记录查询
- 跨所有支持的记录类型进行全记录扫描
- 反向查询
- 跨公共 DNS 服务器的传播检查
- WHOIS 查询
- 用于授权测试场景的区域传送尝试
这使其在例行 DNS 故障排除、域名侦察以及记录更改后的快速验证工作中非常有用。
## 地理定位
地理引擎可以解析公共 IP 元数据,包括位置、ISP、ASN 以及可用时的反向 DNS 详细信息。它使用多个提供商并具有故障转移行为,而不是依赖单一端点。
## 导出与历史记录
结果可以保留、审查并移入报告中,无需额外的清理工作。
- SQLite 支持的历史存储
- JSON 导出
- CSV 导出
- 带样式的 HTML 导出
- 结果类型支持时可输出交互式报告或地图
如果您希望一个工具同时用于数据收集和交接,这将非常有用。
## 快速开始
### 选项 A:Windows 安装程序
从 Releases 页面下载最新的 `NetRecon-Setup-*.exe`(或从 Microsoft Store 安装)并运行。安装程序支持 Windows 10 (1809+) 和 Windows 11(x64 和 ARM64),创建开始菜单和可选的桌面快捷方式,并在升级和卸载过程中保留 `%USERPROFILE%\.netrecon` 下的用户数据。
### 选项 B:从源代码安装
#### 1. 克隆仓库
```
git clone https://github.com/PradaFit/NetRecon.git
cd NetRecon
```
#### 2. 安装依赖项
```
pip install -r requirements.txt
```
#### 3. 启动 GUI
```
python main.py
```
#### 4. 启动 CLI
```
python main.py --cli
```
## CLI 示例
### DNS 查询
```
python main.py dns example.com
python main.py dns example.com --type MX
```
### 原生端口扫描
```
python main.py scan 192.168.1.1
python main.py scan 192.168.1.0/24 -p quick
```
### 基于 Nmap 的扫描
```
python main.py scan 192.168.1.1 --nmap
```
### IP 地理定位
```
python main.py geo 8.8.8.8
python main.py geo --myip
```
## 安装说明
- Python 依赖项列在 `requirements.txt` 中
- Nmap 是可选的,不是必需的
- 该项目基于 Python `3.12` 开发和测试
- GUI 支持依赖于 `customtkinter` 和 `Pillow`
## 安全说明
NetRecon 在核心引擎中包含输入验证和防御性处理。
- 目标和端口输入清理,具有严格的 IPv4、IPv6、CIDR 和主机名规则
- Nmap 参数允许列表,阻止文件包含、输出重定向、自定义数据目录和恢复标志 (`-iL`, `-iR`, `--datadir`, `--servicedb`, `--versiondb`, `-oN/-oX/-oG/-oA`, `--resume`, `--script-args`)
- 使用真实路径包含检查将导出路径沙盒化到主目录、临时目录和工作目录根
- SQLite 连接使用 `contextlib.closing` 包装,并全程使用参数化查询
- 报告生成中的 HTML 转义
- 地理地图输出中的坐标强制转换,以防止注入到渲染的 Folium 弹出窗口中
这并不能使鲁莽的扫描变得安全。它意味着应用程序不会轻率地信任用户输入。
## 项目布局
```
.
|-- main.py
|-- config.json
|-- requirements.txt
|-- gui/
|-- netrecon/
|-- DISCLAIMER.md
|-- LICENSE
```
## 实际应用场景
- DNS 故障排除和传播验证
- 您管理的网络上的内部主机清单
- 发布主机前的服务暴露检查
- 公共 IP 和 ASN 查询
- 用于后续工作的轻量级报告和导出
- 授权的安全测试项目
## 隐私
NetRecon 不包含遥测、分析或第三方跟踪器。扫描结果、历史记录、首选项和诊断日志在 Windows 上存储在本地 `%USERPROFILE%\.netrecon` 下,其他平台存储在 `~/.netrecon` 下。仅当您运行地理定位查询时才会向公共 IP 查询 API 发送请求,并且仅包含您提供的 IP 地址。
## 法律与负责任使用
仅在您拥有或明确授权评估的系统、网络和域名上使用 NetRecon。
使用前请查阅 `DISCLAIMER.md` 中的项目免责声明。该仓库采用 GPLv3 许可证。
## 关键词
Python 端口扫描器,Nmap GUI,DNS 查询工具,网络侦察工具集,异步 TCP 扫描器,WHOIS 查询,IP 地理定位,跨平台网络扫描器,Python 网络工具。标签:CDN识别, CTI, DNS查询, GUI应用, IP地理位置, Linux工具, macOS支持, Python项目, UDP扫描, WHOIS查询, Windows应用, 交互式地图, 协议探测, 地理位置映射, 安全测试, 密码管理, 并发连接, 开源社区, 异步引擎, 异步编程, 情报分析, 扫描历史, 插件系统, 攻击性安全, 数据统计, 桌面应用, 端口扫描, 端口探测, 系统分析, 系统独立性, 网络分析, 网络诊断, 计算机取证, 逆向工具