CVE-2024-23700 的 C2 服务器演示执行脚本的说明源代码
[cite_start]本项目演示了命令与控制(C2)服务器的设计与构建,用于CVE-2024-23700权限提升漏洞的实战利用场景[cite: 2]。[cite_start]该服务器负责接收、处理、分类并展示从目标Android设备窃取的敏感数据[cite: 3]。
本仓库中的文档和源代码仅用于学习、安全分析和授权环境下的测试目的。请勿将其用于非合法测试范围内的设备、账户或数据。
所属课程:移动设备安全
小组成员:本项目由4名成员组成的小组完成。
在研究并完善此C2服务器设计项目的过程中,小组承担了以下工作:
data.json的存储系统,以优化快速轻量的PoC目的。C2服务器系统采用客户端-服务器模型,其中恶意Android应用(PoC)作为客户端持续向服务器发送数据。C2架构分为两个独立处理组件,以确保高速度和灵活性。
C2服务器的主要工作流程:
/设计了双重处理机制。如果通过GET方法访问(浏览器扫描),服务器将返回伪造的404错误以规避检测。如果收到来自恶意代码的POST方法且包含JSON格式,服务器将接收并提取设备标识符。s_cache、gps_cache)。data.json存储列表的顶部。/api/data发送GET请求以读取数据库。device_id)的数据包,深入扫描结构以提取硬件参数(RAM、电池、操作系统),并在雷达界面上直观显示。漏洞编号:CVE-2024-23700
Android严重级别:Critical
相关组件:Android Companion Device Manager
参考补丁:Android Wear安全公告 2024-05-01
此C2服务器被设计为实验网络的一部分,接收来自通过上述漏洞成功利用的Android设备的情报数据流。
CVE-2024-23700-C2-Server/
├── backend/
│ ├── app.py - 初始化API端点,处理伪装和JSON分类
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Dashboard.jsx - 设备总览雷达屏幕
│ │ │ └── DeviceDetails.jsx - 深度payload分析对话框
│ │ ├── App.jsx
│ │ └── App.css
│ ├── package.json
│ └── nginx.conf - 前端反向代理自定义配置
├── data.json - 存储记录的扁平文件数据库(挂载卷)
├── docker-compose.yml - 管理容器和内部网络
├── .gitignore
└── README.md
服务器不使用繁琐的逻辑,而是基于返回的数据块(缓存)自动识别并标记,同时前端界面集成了智能字典(MODULE_MAP和COLUMN_TRANSLATIONS)以标准化和"本地化"结果:
s_cache)。c_cache)。cal_cache)。n_cache)。gps_cache)。此外,系统自动将原始时间戳转换为易于阅读的本地时间标准,并将数字代码解释为实际状态(例如:通话类型1 = "↙️ 来电")。
整个C2基础设施通过docker compose运行,以确保一致性并消除环境差异。架构运行两个主要服务:
data.json文件挂载到容器内的/app/data.json路径。这确保即使容器被删除或重启,情报数据也能永久保存。该服务应用了restart: always策略。/api/前缀的API请求都会自动转发(proxy_pass)到后端以增强安全性。该容器必须在后端之后启动(depends_on),以避免初始连接丢失错误。data.json文件在物理服务器上设置了适当的读写权限。| 组件 | 描述 | 路径 |
|---|
Flask后端(app.py) | 控制中心(C2),监听、分类并将数据存储到data.json。 | backend/app.py |
| 雷达仪表盘 | 中央控制面板,对目标进行分组并显示硬件/操作系统参数及payload数量。 | frontend/src/pages/Dashboard.jsx |
| 设备详情弹窗 | 受害者数据深度分析界面(超大弹窗),提供手风琴系统和动态数据表。 | frontend/src/pages/DeviceDetails.jsx |
| Docker配置文件 | 协调后端(端口5000)和Nginx前端(端口80)的部署,通过反向代理实现。 | docker-compose.yml |