doublegate/ProRT-IP

GitHub: doublegate/ProRT-IP

Rust 编写的高性能网络扫描器,融合 Masscan 级速度与 Nmap 级深度检测,面向安全审计与网络侦察场景。

Stars: 3 | Forks: 0

# ProRT-IP WarScan ## 高性能网络扫描器
ProRT-IP Logo
[![Version](https://img.shields.io/badge/version-1.0.0-brightgreen)](https://github.com/doublegate/ProRT-IP/releases/tag/v1.0.0) [![Build](https://static.pigsec.cn/wp-content/uploads/repos/cas/39/39faa54be350a1dab8afd3b2fb8c1c83e4d9cff84abfef2374d19a18053687c4.svg)](https://github.com/doublegate/ProRT-IP/actions/workflows/ci.yml) [![Tests](https://img.shields.io/badge/tests-2,557%20passing-success)](https://github.com/doublegate/ProRT-IP/actions) ![Coverage](https://img.shields.io/badge/coverage-51.40%25-yellow) [![License](https://img.shields.io/badge/license-GPLv3-blue.svg)](LICENSE) [![Rust](https://img.shields.io/badge/rust-1.85%2B-orange.svg)](https://www.rust-lang.org) [![Docker](https://img.shields.io/badge/docker-doublegate%2Fprtip-blue)](https://hub.docker.com/r/doublegate/prtip) **结合 Masscan/ZMap 的速度与 Nmap 的检测深度的现代网络扫描器。**
ProRT-IP CLI Screenshot
## 概述 **ProRT-IP WarScan** 是一款使用 Rust 编写的专业网络扫描工具,提供: - **速度:** 每秒处理 1000 万以上数据包的无状态扫描(Masscan/ZMap 级别) - **深度:** 全面的服务检测和 OS 指纹识别(Nmap 级别) - **安全性:** 内存安全的 Rust 实现可防止整类漏洞 - **隐蔽性:** 高级规避技术(时间、诱饵、分片、TTL 操纵、空闲扫描) - **现代 TUI:** 具有 60 FPS 渲染和 4 标签页界面的实时仪表板 - **可扩展性:** 带有 Lua 5.4 沙盒执行功能的插件系统 ### 核心功能 | 类别 | 功能 | |----------|----------| | **扫描** | TCP SYN, Connect, FIN, NULL, Xmas, ACK, Idle/Zombie, UDP | | **检测** | 服务检测(85-90% 准确率),OS 指纹识别(2,600+ 签名) | | **协议** | 完整的 IPv4/IPv6 双栈,8 种 UDP 协议 payload | | **性能** | 10M+ pps 无状态,自适应速率限制(-1.8% 开销) | | **规避** | 数据包分片,TTL 控制,诱饵,时间模板(T0-T5) | | **输出** | Text, JSON, XML, Greppable, PCAPNG, SQLite | | **界面** | 生产级 CLI,60 FPS TUI 仪表板 | ### 功能对比 ![网络扫描器功能对比](https://raw.githubusercontent.com/doublegate/ProRT-IP/main/images/scanner_comparison.jpg) *ProRT-IP WarScan 与主流网络扫描工具(Nmap, Masscan, ZMap, RustScan)的对比* ## 快速开始 ### 安装 **预编译二进制文件**(Linux, Windows, macOS): ``` # 下载最新 release wget https://github.com/doublegate/ProRT-IP/releases/latest/download/prtip-linux-x86_64 chmod +x prtip-linux-x86_64 sudo mv prtip-linux-x86_64 /usr/local/bin/prtip ``` **从源码构建:** ``` git clone https://github.com/doublegate/ProRT-IP.git cd ProRT-IP cargo build --release sudo setcap cap_net_raw,cap_net_admin=eip target/release/prtip ``` ### 基本用法 ``` # SYN scan(需要权限) prtip -sS -p 80,443 192.168.1.0/24 # 快速 scan(前 100 个 ports) prtip -F 192.168.1.1 # Service detection prtip -sV -p 1-1000 scanme.nmap.org # 带实时 dashboard 的 TUI mode prtip --tui -sS -p 1-1000 192.168.1.0/24 ``` ## 功能 ### 扫描类型 ProRT-IP 支持用于全面网络侦察的 8 种扫描类型: ``` # TCP Scans prtip -sS -p 1-1000 target # SYN scan (stealth, requires root) prtip -sT -p 1-1000 target # Connect scan (no privileges required) prtip -sF -p 1-1000 target # FIN scan prtip -sN -p 1-1000 target # NULL scan prtip -sX -p 1-1000 target # Xmas scan prtip -sA -p 1-1000 target # ACK scan (firewall detection) # UDP Scan prtip -sU -p 53,161,123 target # Protocol-specific payloads # Idle/Zombie Scan prtip -sI zombie_ip target -p 80 # Maximum anonymity ``` ### 服务检测 187 个内置协议探针,检测准确率高达 85-90%: ``` prtip -sV -p 22,80,443 target # Service detection prtip -sV --version-intensity 9 target # Aggressive probing prtip -sV --tls-cert -p 443 target # TLS certificate analysis ``` **特定协议解析器:** HTTP, SSH, SMB, MySQL, PostgreSQL,支持 OS 版本映射。 ### 规避技术 高级 IDS/防火墙规避能力: ``` prtip -sS -f -p 1-1000 target # Fragment packets (28-byte) prtip -sS --mtu 200 target # Custom MTU fragmentation prtip -sS --ttl 32 target # TTL manipulation prtip -sS -D RND:5 target # Decoy scanning (5 random) prtip -sS -g 53 target # Source port spoofing (DNS) prtip -sS --badsum target # Bad checksum testing prtip -T0 -p 80 target # Paranoid timing (5min delays) ``` ### 终端用户界面 (TUI) 具有 60 FPS 渲染功能的生产级实时仪表板: ``` prtip --tui -sS -p 1-1000 192.168.1.0/24 ``` **仪表板功能:** - **端口表:** 实时端口发现,支持过滤(状态、协议、搜索) - **服务表:** 实时服务检测,带有置信度指示器 - **指标仪表板:** 吞吐量、ETA、进度百分比、统计数据 - **网络图表:** 60 秒滑动窗口活动可视化 **性能:** 每秒处理 10K+ 事件,帧时间 <5ms,11 个生产级组件。 ### 输出格式 ``` prtip -p 80 target -oN scan.txt # Normal text prtip -p 80 target -oX scan.xml # XML (nmap-compatible) prtip -p 80 target -oG scan.gnmap # Greppable prtip -p 80 target --output json -o scan.json # JSON prtip -sS --packet-capture capture.pcapng target # PCAPNG prtip -sT --with-db results.db target # SQLite database ``` ### 插件系统 用于自定义检测和输出的 Lua 5.4 沙盒插件: ``` prtip plugin list # List available plugins prtip plugin load banner-analyzer # Load specific plugin prtip -sS --plugin banner-analyzer,ssl-checker target ``` **插件类型:** 检测(banner 分析),输出(自定义格式化),扫描(生命周期 hook)。 ## 性能 ### 基准测试 | 指标 | 数值 | |--------|-------| | **无状态吞吐量** | 10M+ packets/second(理论值) | | **有状态吞吐量** | 72K+ pps(本地主机验证) | | **全端口扫描 (65535)** | 0.91s(比基准快 198 倍) | | **服务检测开销** | <10% | | **速率限制开销** | -1.8%(比无限制更快) | | **TUI 渲染** | 60 FPS,帧时间 <5ms | ### 优化功能 - **O(N) 连接追踪:** 比简单实现快 50-1000 倍 - **零拷贝数据包构建:** 热路径性能提升 15% - **批量 I/O (sendmmsg/recvmmsg):** 在 Linux 上减少 96.87-99.90% 的 syscall - **NUMA 优化:** 在多插槽系统上提升 20-30% - **内存映射 I/O:** 大规模扫描时可减少 77-86% 的 RAM 占用 - **自适应并行度:** 根据目标数量支持 20-1000 个并发连接 ## Nmap 兼容性 ProRT-IP 支持类 nmap 语法,便于熟悉操作: ``` # Scan 类型 prtip -sS -p 80,443 target # SYN scan prtip -sT -p 1-1000 target # Connect scan prtip -sU -p 53,161 target # UDP scan # Port 规范 prtip -p- target # All 65535 ports prtip -F target # Top 100 ports prtip --top-ports 1000 target # Top 1000 ports # Detection prtip -sV target # Service detection prtip -O target # OS fingerprinting prtip -A target # Aggressive (OS + service) # Output prtip -oN scan.txt target # Normal output prtip -oX scan.xml target # XML output prtip -oG scan.gnmap target # Greppable output # Timing prtip -T0 target # Paranoid prtip -T4 target # Aggressive (recommended) ``` **完整兼容性矩阵:** [docs/14-NMAP-COMPATIBILITY.md](docs/14-NMAP-COMPATIBILITY.md) ## 系统要求 ### 最低要求 - CPU: 2 核 @ 2.0 GHz - 内存: 2 GB - 存储空间: 100 MB - 网络: 100 Mbps ### 推荐配置 - CPU: 8+ 核 @ 3.0 GHz - 内存: 16 GB - 存储空间: 1 GB SSD - 网络: 1 Gbps+ ### 支持的平台 | 平台 | 状态 | 备注 | |----------|--------|-------| | Linux x86_64 (glibc) | 生产就绪 | NUMA 优化,sendmmsg/recvmmsg | | Windows x86_64 | 生产就绪 | 需要 Npcap | | macOS Intel (x86_64) | 生产就绪 | macOS 10.13+ | | macOS Apple Silicon | 生产就绪 | 原生 M1/M2/M3/M4 二进制文件 | | FreeBSD x86_64 | 生产就绪 | FreeBSD 12+ | ### 构建要求 - Rust 1.85+(edition 2024 的 MSRV) - libpcap (Linux/macOS) 或 Npcap (Windows) - OpenSSL 开发库 - (可选) hwloc,用于 NUMA 优化 ## 从源码构建 ### Linux ``` # 安装 dependencies sudo apt install libpcap-dev pkg-config # Debian/Ubuntu sudo dnf install libpcap-devel # Fedora sudo pacman -S libpcap pkgconf # Arch # Clone 并 build git clone https://github.com/doublegate/ProRT-IP.git cd ProRT-IP cargo build --release # 授予 capabilities(代替 root) sudo setcap cap_net_raw,cap_net_admin=eip target/release/prtip ``` ### Windows ``` # 安装 Npcap SDK # 从以下地址下载:https://npcap.com/dist/npcap-sdk-1.13.zip # 设置 environment:$env:LIB = "C:\path\to\npcap-sdk\Lib\x64;$env:LIB" cargo build --release ``` ### macOS ``` brew install libpcap pkgconf git clone https://github.com/doublegate/ProRT-IP.git cd ProRT-IP cargo build --release ``` **详细说明:** [docs/03-DEV-SETUP.md](docs/03-DEV-SETUP.md) ## 文档 ### 用户指南 - [用户指南](docs/32-USER-GUIDE.md) - 全面的使用文档(2,448 行) - [示例库](docs/34-EXAMPLES-GALLERY.md) - 65 个实际扫描场景 - [插件系统指南](docs/30-PLUGIN-SYSTEM-GUIDE.md) - 插件开发(784 行) ### 技术参考 - [架构](docs/00-ARCHITECTURE.md) - 系统设计和模块关系 - [IPv6 指南](docs/23-IPv6-GUIDE.md) - 完整的 IPv6 实现细节 - [服务检测](docs/24-SERVICE-DETECTION-GUIDE.md) - 检测引擎内部原理 - [速率限制](docs/26-RATE-LIMITING-GUIDE.md) - 自适应速率控制 - [TUI 架构](docs/TUI-ARCHITECTURE.md) - 事件驱动的 TUI 设计(891 行) ### 开发 - [路线图](docs/01-ROADMAP.md) - 开发阶段和 sprint 计划 - [项目状态](docs/10-PROJECT-STATUS.md) - 当前进度和指标 - [基准测试指南](docs/31-BENCHMARKING-GUIDE.md) - 性能测试(1,044 行) ### mdBook 文档 ProRT-IP 包含使用 mdBook 构建的可搜索文档: ``` cd docs/ mdbook serve --open # Opens browser at http://localhost:3000 ``` ## 开发路线图 ### 当前状态 **版本:** v1.0.0 | **阶段 7:** 完成 | **状态:** 生产发布 | 阶段 | 状态 | 关键交付物 | |-------|--------|------------------| | 阶段 1-3 | 完成 | 核心基础设施、扫描、检测 | | 阶段 4 | 完成 | 零拷贝、NUMA、性能优化 | | 阶段 5 | 完成 | IPv6、服务检测、空闲扫描、速率限制、插件 | | **阶段 6** | **完成** | **TUI 仪表板、网络优化、缓冲池** | | **阶段 7** | **完成** | **文档、打包、安全审计、v1.0.0 发布** | | 阶段 8 | 未来 | Web UI、桌面 GUI、分布式扫描 | ### 未来增强 - **Web 界面:** 带有 React/Vue 前端的 RESTful API - **桌面 GUI:** 原生应用程序(Tauri/iced/egui) - **分布式扫描:** 用于互联网级操作的协调器/工作者架构 **完整路线图:** [docs/01-ROADMAP.md](docs/01-ROADMAP.md) ## 质量保证 | 指标 | 数值 | |--------|-------| | **测试** | 2,557 个通过(100% 成功率) | | **覆盖率** | 51.40% | | **模糊测试** | 2.3 亿次以上执行,0 崩溃(5 个目标) | | **CI/CD** | 9/9 工作流通过 | | **平台** | Linux, Windows, macOS (Intel + ARM64), FreeBSD | ### 贡献方式 - **报告 Bug:** [Bug 报告](https://github.com/doublegate/ProRT-IP/issues/new?template=bug_report.yml) - **功能建议:** [功能请求](https://github.com/doublegate/ProRT-IP/issues/new?template=feature_request.yml) - **编写代码:** 查看[适合新手的 issue](https://github.com/doublegate/ProRT-IP/labels/good-first-issue) - **改进文档:** 始终欢迎文档贡献 ### 开发标准 - 提交前运行 `cargo fmt` 和 `cargo clippy -- -D warnings` - 所有 PR 必须包含测试(新代码覆盖率 >80%) - 遵循 [约定式提交](https://www.conventionalcommits.org/)格式 ## 安全与法律 ### 安全策略 通过 [GitHub 安全公告](https://github.com/doublegate/ProRT-IP/security/advisories)报告漏洞。 有关完整策略,请参阅 [SECURITY.md](SECURITY.md)。 ### 负责任的使用 **重要提示:** 仅扫描您拥有或获得明确书面测试授权的网络。 - 未经授权的扫描可能违反法律(CFAA, CMA 等) - 测试前务必获得授权 - 仅用于合法的安全研究 ## 许可证 本项目基于 **GNU General Public License v3.0** 授权 - 详情请参阅 [LICENSE](LICENSE)。 GPLv3 允许您使用、学习、修改和分发本软件,前提是衍生作品也必须基于 GPLv3 授权。 ## 致谢 ProRT-IP 建立在以下开创性工作的基础之上: - **[Nmap](https://nmap.org/)** - Gordon "Fyodor" Lyon - **[Masscan](https://github.com/robertdavidgraham/masscan)** - Robert Graham - **[RustScan](https://github.com/RustScan/RustScan)** - RustScan 社区 - **[ZMap](https://zmap.io/)** - 密歇根大学 完整贡献者名单请参阅 [AUTHORS.md](AUTHORS.md)。 ## 链接 - **GitHub:** - **Issues:** - **讨论区:** - **安全:** - **更新日志:** [CHANGELOG.md](CHANGELOG.md) **当前版本:** v1.0.0 | **最后更新:** 2025-01-25
标签:Linux安全, Rust, Scrypt密钥派生, 云存储安全, 可视化界面, 安全测试工具, 密码管理, 插件系统, 数据统计, 服务指纹识别, 端口扫描, 网络安全, 网络扫描, 网络流量审计, 请求拦截, 通知系统, 隐私保护