paolo-lamoratta/wa-reaction-sidechannel-poc
GitHub: paolo-lamoratta/wa-reaction-sidechannel-poc
通过测量WhatsApp表情回应的送达时间差,推断目标设备状态和后台活动模式的侧信道攻击概念验证工具。
Stars: 0 | Forks: 0
# WhatsApp Reaction Side-Channel PoC (wa-reaction-sidechannel-poc)
## 概述
本仓库包含一个针对 WhatsApp 表情回应机制的侧信道攻击概念验证。通过测量消息的服务器确认(单灰勾)与目标设备送达(双灰勾)之间的精确时间差,可以推断出有关目标设备状态的信息。
### 理论基础
此侧信道的核心在于**送达时间差**($\Delta T$):
$$\Delta T = T_{delivered} - T_{sent\_to\_server}$$
1. **单灰勾($T_{sent\_to\_server}$):** WhatsApp 服务器确认收到你回应表情的那一刻。
2. **双灰勾($T_{delivered}$):** 目标设备接收到回应表情并发送送达回执的那一刻。
#### 为什么这是一个漏洞?
移动操作系统会根据设备状态以不同的方式处理后台进程:
- **活跃/前台:** 应用处于打开状态;$\Delta T$ 最小(主要是网络延迟)。
- **后台(近期):** 应用处于后台但尚未被挂起;$\Delta T$ 稍高。
- **挂起/Doze 模式:** 操作系统为了省电限制了后台活动。回应表情的送达可能会被推迟,直到出现“维护窗口”或高优先级的推送通知唤醒应用。
通过发送一系列表情回应并分析 $\Delta T$ 的分布,观察者可能区分出活跃用户、闲置设备,甚至识别出操作系统类型和电池优化模式。
## 功能特性
- **多目标分析:** 通过轮询发送表情回应,并发跟踪多个目标。
- **精确计时:** 高分辨率测量送达时间差。
- **自动绘图:** 用于分析分布和时序模式的可视化工具。
- **双重实现:** 包含 Go 引擎(使用 `whatsmeow`)和 Python 版本(使用 `neonize`)。
## 项目结构
- `main.go`:用于数据收集的主要 Go 引擎。支持多目标和高并发。
- `main.py`:用于快速测试和集成绘图的 Python 实现。
- `plot_results.py`:用于处理 Go 引擎生成的 CSV 数据的高级绘图脚本。
- `requirements.txt`:Python 依赖项。
- `go.mod`:Go 模块定义。
## 入门指南
### 前置条件
- **Go**(推荐 1.25+)
- **Python 3.10+**
- 一个用于“发送方”设备的 WhatsApp 账户(需要二维码配对)。
### 安装
1. 克隆仓库:
git clone https://github.com/yourusername/wa-reaction-sidechannel-poc.git
cd wa-reaction-sidechannel-poc
2. 安装 Go 依赖项:
go mod tidy
3. 安装 Python 依赖项:
pip install -r requirements.txt
### 用法
#### 1. 数据收集
运行 Go 引擎以启动测量过程:
```
go run main.go
```
按照交互式提示进行操作:
- 通过二维码配对你的设备。
- 输入目标手机号码(包含国家代码)。
- 配置表情回应的数量和延迟。
结果将保存为 `.csv` 文件。
#### 2. 分析与可视化
使用 Python 脚本根据收集到的数据生成图表:
```
python plot_results.py results_*.csv
```
这将生成一个 `results_multi_target_plot.png`,其中显示:
- **分布直方图:** 帮助识别响应时间的“聚集簇”。
- **时序图:** 显示响应能力随时间的变化(例如,随着设备进入睡眠模式)。
标签:EVTX分析, Go语言, neonize, PoC, Python, WhatsApp, whatsmeow, 主机安全, 侧信道攻击, 后台活动分析, 操作系统识别, 无后门, 日志审计, 时序攻击, 暴力破解, 活动监控, 目录枚举, 移动安全, 程序破解, 网络安全, 设备指纹, 逆向工具, 隐私保护, 隐私泄露