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




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)。
WireRifter




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, 可视化界面, 网络流量分析, 网络流量审计, 防御绕过