Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/vinh0212/cve-2024-23700
Android安全权限提升漏洞分析漏洞利用移动安全学习与教育实验室与实践
GitHubvinh0212/cve-2024-23700

CVE-2024-23700

CVE-2024-23700 的 PoC,Android 静默提权,允许读取/写入联系人、短信、日历、通话记录和语音信箱,拨打外呼电话或接听来电,操控通话设置,访问和控制其他应用发送的通知,控制附近的设备,录制音频,访问设备标识符,并绕过后台限制

查看仓库
164个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2024-23700 - Android Companion Device 权限提升 PoC

本项目演示 CVE-2024-23700,这是一个与 Android 上 Companion Device 机制相关的权限提升漏洞。该 PoC 展示了应用如何利用配套设备关联流程,在易受影响的环境中无需经过常规的授权交互即可获得部分敏感权限。

本仓库中的文档和源代码仅用于学习目的、安全分析和授权环境下的测试。请勿将其用于合法测试范围之外的设备、账户或数据。

项目信息

所属课程: 移动设备安全

执行小组: 本项目由 4 名成员组成的小组完成。

序号姓名学员编号
1Đặng Quang VinhD54.B10.AT.024
2Nguyễn Khắc Hoàng AnhD54.B10.AT.05
3Trần Văn TiếnD54.B10.AT.020
4Nguyễn Xuân TùngD54.B10.AT.023

在项目研究与完善过程中,小组承担了以下工作:

  • 研究 Companion Device Manager 机制以及通过 device profile 授予的权限组。
  • 分析 CVE-2024-23700 的 PoC 以及导致设备可能受影响的条件。
  • 重建示例 Android 应用,以模拟权限授予行为、读取敏感数据并在实验室环境中记录结果。
  • 补充笔记应用界面、Notification Listener,并将收集到的数据发送到内部测试服务器以观察所得数据。

概述

本项目实现了一个伪装成简单笔记应用(My Notes)的 Android 应用。启动时,应用调用 CompanionDeviceManager.associate() 并携带配套设备 profile,以模拟通过 CVE-2024-23700 进行权限接管的过程。如果设备或 ROM 满足易受利用的条件,应用可能获得额外的敏感权限,并访问通讯录、短信、通话记录、日历、通知以及部分设备信息等数据。

PoC 的主要运行流程:

  1. 初始化笔记应用:显示笔记输入与保存界面,以掩盖测试行为。
  2. 调用 Companion Device Manager:使用手表 profile 创建配套设备关联请求。
  3. 处理关联 Activity:CompanionAssociationActivity 组件模拟设备关联的批准响应。
  4. 检查权限并收集数据:如果权限已授予,应用从相应的 content provider 读取测试数据。
  5. 记录结果:数据以 JSON 封装并发送到实验室 endpoint 以供分析。

CVE 信息

漏洞编号: CVE-2024-23700
Android 严重级别: Critical
相关组件: Android Companion Device Manager
参考补丁: Android Wear 安全公告 2024-05-01
参考修复提交: AOSP frameworks/base 补丁

根据 PoC 原始 README,大多数普通 Android 设备不受影响,但以下情况除外:

  • 安全补丁日期早于 2024-05-01 的 WearOS 设备。
  • 已移除或损坏 com.android.companiondevicemanager 组件的 ROM。
  • 签名校验机制被第三方模块禁用或篡改的设备。

如果 PoC APK 无法在设备上安装,这可能是该设备不满足此漏洞受影响条件的迹象。

目录结构

root@kitploit:~
CVE-2024-23700/
├── app/
│   ├── build.gradle - Android 应用模块配置
│   ├── proguard-rules.pro - app 模块的 ProGuard 规则
│   └── src/main/
│       ├── AndroidManifest.xml - 声明权限、activity 和通知监听器
│       ├── java/
│       │   ├── com/android/companiondevicemanager/
│       │   │   └── CompanionAssociationActivity.java - 处理关联流程的 Activity
│       │   └── com/vsoft/mynotes/
│       │       ├── MainActivity.java - PoC 应用的主要逻辑
│       │       └── NotificationListener.java - 通知监听服务
│       └── res/
│           ├── drawable/ - 应用的 drawable 资源
│           ├── drawable-v24/ - 适用于 API 24+ 的 drawable 资源
│           ├── layout/main.xml - 笔记应用界面
│           ├── mipmap-*/ - 各屏幕密度的应用图标
│           └── values/ - 应用字符串和主题
├── gradle/wrapper/ - Gradle wrapper jar 与 wrapper 配置
├── .gitignore - 排除本地文件、构建输出、日志和辅助脚本的规则
├── build.gradle - 项目级 Gradle 配置
├── gradle.properties - 项目 Gradle 设置
├── gradlew - 在 Linux/macOS 上运行 Gradle 的脚本
├── gradlew.bat - 在 Windows 上运行 Gradle 的脚本
├── settings.gradle - 声明项目和模块
└── README.md

主要组件

待测试的权限组

应用的 Manifest 声明了多个权限组,用于在易受影响的环境中验证该漏洞的影响:

  • Companion profile: REQUEST_COMPANION_PROFILE_WATCH, REQUEST_COMPANION_PROFILE_GLASSES
  • Background restriction: REQUEST_COMPANION_RUN_IN_BACKGROUND, REQUEST_COMPANION_USE_DATA_IN_BACKGROUND
  • 通讯录: READ_CONTACTS, WRITE_CONTACTS, GET_ACCOUNTS
  • 短信: READ_SMS, SEND_SMS, RECEIVE_SMS, RECEIVE_MMS, RECEIVE_WAP_PUSH
  • 通话: READ_PHONE_STATE, , , ,

可观察到的数据格式

发送到实验室服务器的数据以 JSON 形式封装。主要数据组包括:

  • device_info: 设备信息、Android 版本、设备名称、Android ID、IP、已安装应用、账户、SIM、Wi-Fi、电量、RAM 和可用存储空间。
  • c_cache: 在测试环境中读取到的通讯录数据。
  • l_cache: 通话记录。
  • s_cache: 短信。
  • cal_cache: 日历事件。
  • gps_cache: 如果用户授予位置权限,则为最近的位置。
  • n_cache: 由 NotificationListener 记录的现有通知或新产生的通知。
  • n_active: 通知监听器的运行状态。

备注

  • 仅在获得测试许可的设备、账户和数据上运行 PoC。
  • 建议使用假数据或独立的实验室设备,以避免泄露个人信息。
  • MainActivity.java 中接收数据的 endpoint 应替换为由测试人员控制的内部 endpoint。
  • 在未移除 endpoint、日志和敏感测试数据之前,不应公开构建好的 APK。
  • 在已修补的设备上,关联流程或 APK 安装可能会失败;这是预期结果。
下载工具
组件描述路径
MainActivity主 Activity,显示笔记界面,调用关联流程并在拥有权限时收集数据app/src/main/java/com/vsoft/mynotes/MainActivity.java
CompanionAssociationActivity模拟 Companion Device Manager 关联响应的 Activityapp/src/main/java/com/android/companiondevicemanager/CompanionAssociationActivity.java
NotificationListener记录现有通知和新产生通知的服务app/src/main/java/com/vsoft/mynotes/NotificationListener.java
AndroidManifest声明权限、feature、activity 别名和通知监听服务app/src/main/AndroidManifest.xml
READ_CALL_LOG
WRITE_CALL_LOG
CALL_PHONE
ANSWER_PHONE_CALLS
  • 日历: READ_CALENDAR, WRITE_CALENDAR
  • 通知: POST_NOTIFICATIONS, RECEIVE_SENSITIVE_NOTIFICATIONS, NotificationListenerService
  • 附近设备: BLUETOOTH_SCAN, BLUETOOTH_CONNECT, BLUETOOTH_ADVERTISE, NEARBY_WIFI_DEVICES
  • 其他: 位置、麦克风、通话管理、设备标识符和媒体路由控制