voltsparx/wirerifter

GitHub: voltsparx/wirerifter

WireRifter 是一款用 Rust 和 Kotlin 构建的 Android 网络抓包与安全分析应用,提供本地数据包检查、设备资产清单、OS 指纹识别和扫描行为检测等功能。

Stars: 0 | Forks: 0

# WireRifter   WireRifter ![Platform](https://img.shields.io/badge/platform-Android-617fd0) ![Core](https://img.shields.io/badge/core-Kotlin%20%2B%20Rust-617fd0) ![Storage](https://img.shields.io/badge/storage-Room%20%2B%20PCAP-617fd0) ![License](https://img.shields.io/badge/license-Proprietary%20Source--Available-617fd0) WireRifter 是一款 Android 安全研究应用,专为需要从移动设备上了解本地网络状态的人员而构建。它结合了 Kotlin/Jetpack Compose 界面与基于 Rust 的分析层,提供本地持久化、数据包检查、PCAP 导出、主机资产清单、OS 指纹识别以及扫描感知告警等功能。 它的设计初衷是为了实现授权的网络可见性、防御性调查、实验室工作、以移动端为先的网络安全研究,以及满足那些要求设备如实展示其所见,而不是隐藏原始细节的分析师工作流程需求。 ## 核心功能 - 通过 Android 安全的本地捕获工作流来捕获和建模数据包活动。 - 使用 Room 持久化在本地存储数据包/会话/设备数据。 - 让分析师能够检查单个数据包、解码的 payload 预览、headers、标志、熵、启发式分类以及扫描信号。 - 将保存的数据包存档导出为 `.pcap` 文件,以便用于外部的数据包分析工作流。 - 构建包含供应商提示、信任状态、关怀状态和 OS 指纹置信度的本地设备资产清单。 - 检测类似扫描的行为,例如 SYN 爆发、无效的 TCP 标志组合、Null 探测和隐蔽的服务发现模式。 - 提供可配置的捕获设置,包括功耗、数据包保留、告警冷却时间、深度检查和扫描灵敏度。 - 包含一个本地终端标签页,用于执行安全的网络辅助命令,而无需运行任意的 shell 命令。 - 采用简洁的移动端 UI,包含 Monitor、Devices、Analysis、Stats、Terminal 和 Vault 标签页。 ## 设计目标 WireRifter 的构建围绕四个核心理念: 1. **在本地还原真相。** 数据包、设备和会话数据将保留在手机上,除非用户主动导出。 2. **展示原始证据。** 分析师可以直接检查数据包,而不是仅仅看到过滤后的摘要。 3. **尊重网络生态。** 设备关怀模式可减少嘈杂的重复操作,并将每个节点视为鲜活的本地环境的一部分。 4. **偏好可解释的信号。** 告警会包含可疑行为的原因,而不仅仅是提示存在可疑行为。 ## Pipeline ``` Android capture surface | v Kotlin capture controller | +--> live packet feed +--> power/care throttling +--> scan-sense event stream | v Rust analysis core | +--> byte/frame parsing +--> entropy and density checks +--> protocol and header summaries +--> fault isolation boundaries | v Local intelligence layer | +--> IDS-style rule matching +--> OS fingerprint enrichment +--> device trust and care state +--> session scoring | v Room database + PCAP writer | +--> packet archive +--> capture sessions +--> device inventory +--> exportable .pcap files | v Compose analyst UI ``` ## 应用标签页 | 标签页 | 用途 | | --- | --- | | Monitor | 实时捕获控制、数据包流、查询栏、选定数据包检查、payload 和 header 详情。 | | Devices | 本地节点资产清单、拓扑/列表视图、信任控制、OS 指纹、关怀状态和置信度得分。 | | Analysis | 基于规则的本地取证、审计摘要、自定义签名以及数据包风险解释。 | | Stats | 协议构成、数据包体积、字节体积、Top talkers 以及扫描感知摘要。 | | Terminal | 安全的应用内命令,如 `ipconfig`、`ping`、`dns`、`arp`、`scan.net`、`subnet` 和 `whois`。 | | Vault | 保存的会话、PCAP 导出、数据重置、捕获设置、外观模式和参考笔记。 | ## Rust 端 Rust 模块负责处理对速度和故障隔离有较高要求的、稳健且面向数据包的分析工作。该项目包括: - 数据包解析辅助工具 - sniffer 模块边界 - 线程池基础设施 - 故障隔离逻辑 - 用于 Kotlin/JNI 集成的结构化输出 - Android 层使用的本地分析原语 从以下位置运行 Rust 检查: ``` cd app/src/main/rust cargo check ``` ## 持久化 WireRifter 使用本地 Room 实体来存储: - 数据包日志 - 网络设备 - IDS 规则 - 已保存的捕获会话 已保存的数据包数据可以导出为 `.pcap`,这使得存档可以很方便地用于桌面取证审查和长期证据处理。 ## OS 指纹识别 指纹识别层结合了诸如 TTL 模式、供应商提示、主机名/服务线索、设备角色和观察到的协议信号等被动特征。它会输出: - OS 家族 - 可能的 OS/版本标签 - 置信度得分 - 协议栈特征 - 关怀状态 - 信任得分贡献 其目标不是达到神奇的绝对确定性,而是提供带有可见置信度的、对分析师有用的专业级概率推断。 ## 扫描感知 在捕获处于活动状态时,WireRifter 会持续监控扫描指标: - 重复的连接探测 - 异常的 TCP 标志组合 - Null 类型的探测 - 隐蔽的服务发现模式 - 可疑的源集中现象 - 对常用管理/服务端口的重复访问 当检测到信号时,应用会将证据保留在数据包流和 Statistics 标签页中,并可以触发本地通知。 ## 外观 UI 使用 `#617fd0` 作为 WireRifter 的主色调蓝色。设置区域包括: - 系统默认模式 - 深色模式 - 浅色模式 ## 构建 前置条件: - Android Studio - 本地已配置 Android SDK - 兼容 Android Gradle 插件的 JDK - 用于 Rust 模块的 Rust 工具链 在 Android Studio 中打开项目,让 Gradle 同步,然后在模拟器或物理 Android 设备上运行 `app` 配置。 如果从终端构建,请确保 `local.properties` 指向真实的 SDK 路径: ``` sdk.dir=C\:\\Users\\YOUR_NAME\\AppData\\Local\\Android\\Sdk ``` 然后运行: ``` gradle :app:assembleDebug ``` ## 负责任地使用 WireRifter 仅供您已获得流量检查授权的网络、设备和实验室环境使用。数据包捕获和网络分析可能会暴露敏感数据。请谨慎使用,安全地存储导出文件,并遵守适用于您所在环境的法律法规和政策。 ## 项目状态 WireRifter 是一个积极开发中的安全研究项目。某些捕获路径取决于 Android 平台限制、设备功能、权限,以及该应用是运行在实验室、模拟器还是真实网络环境中。 ## 许可证 WireRifter 是专有的、源代码可见的软件。允许出于个人、教育和内部授权的安全目的进行使用,但对其进行修改、重新分发、商业使用、重新品牌包装、再授权或发布衍生作品,必须事先获得 voltsparx 的书面许可。 在任何允许的使用中,必须保留归属和版权声明。 有关完整条款,请参阅 [LICENSE](LICENSE)。
标签:Android应用, Kotlin, PCAP, Rust, 可视化界面, 网络流量分析, 网络流量审计, 防御绕过