
PoC für CVE-2024-23700, Android stille Rechteausweitung, die das Lesen/Schreiben von Kontakten, SMS, Kalender, Anrufprotokoll und Voicemail, das Tätigen ausgehender Anrufe oder das Annehmen eingehender Anrufe, das Manipulieren von Anrufeinstellungen, den Zugriff auf und die Kontrolle von Benachrichtigungen anderer Apps, die Steuerung von Geräten in der Nähe, die Audioaufnahme, den Zugriff auf Geräteidentifikatoren und die Umgehung von Hintergrundbeschränkungen ermöglicht.
Dieses Projekt demonstriert CVE-2024-23700, eine Schwachstelle zur Privilegieneskalation im Zusammenhang mit dem Companion-Device-Mechanismus unter Android. Der PoC zeigt, wie eine App den Kopplungsablauf eines Begleitgeräts ausnutzen kann, um sensible Berechtigungen zu erhalten, ohne die übliche Berechtigungsabfrage in anfälligen Umgebungen zu durchlaufen.
Die Dokumentation und der Quellcode in diesem Repository dienen ausschließlich zu Lernzwecken, Sicherheitsanalysen und Tests in autorisierten Umgebungen. Nicht auf Geräten, Konten oder Daten verwenden, die nicht im Rahmen berechtigter Tests liegen.
Projektfach: Mobile Gerätesicherheit
Ausführendes Team: Das Projekt wurde von einem Team aus 4 Mitgliedern durchgeführt.
| Nr. | Name | Teilnehmercode |
|---|---|---|
| 1 | Đặng Quang Vinh | D54.B10.AT.024 |
| 2 | Nguyễn Khắc Hoàng Anh | D54.B10.AT.05 |
| 3 | Trần Văn Tiến | D54.B10.AT.020 |
| 4 | Nguyễn Xuân Tùng | D54.B10.AT.023 |
Im Rahmen der Recherche und Fertigstellung dieses Projekts übernahm das Team folgende Aufgaben:
Das Projekt setzt eine Android-App um, die als einfache Notiz-App (My Notes) getarnt ist. Beim Start ruft die App CompanionDeviceManager.associate() mit einem Begleitgeräteprofil auf, um die Rechteübernahme mittels CVE-2024-23700 zu simulieren. Wenn das Gerät oder ROM die anfälligen Bedingungen erfüllt, kann die App zusätzliche sensible Berechtigungen erhalten und auf Daten wie Kontakte, SMS, Anruflisten, Kalender, Benachrichtigungen und einige Geräteinformationen zugreifen.
Hauptablauf des PoC:
CompanionAssociationActivity simuliert die Genehmigung der Gerätekopplung.Schwachstellen-ID: CVE-2024-23700
Android-Schweregrad: Critical
Betroffene Komponente: Android Companion Device Manager
Referenz-Patch: Android Wear Security Bulletin 2024-05-01
Referenz-Patch-Commit: AOSP frameworks/base patch
Laut der ursprünglichen README des PoC sind die meisten normalen Android-Geräte nicht betroffen, mit Ausnahme einiger Fälle wie:
com.android.companiondevicemanager entfernt oder beschädigt haben.Wenn die PoC-APK nicht auf dem Gerät installiert werden kann, kann dies ein Hinweis darauf sein, dass das Gerät die Anfälligkeitsbedingungen dieser Schwachstelle nicht erfüllt.
CVE-2024-23700/
├── app/
│ ├── build.gradle - Cấu hình module Android application
│ ├── proguard-rules.pro - Quy tắc ProGuard cho module app
│ └── src/main/
│ ├── AndroidManifest.xml - Khai báo quyền, activity và notification listener
│ ├── java/
│ │ ├── com/android/companiondevicemanager/
│ │ │ └── CompanionAssociationActivity.java - Activity xử lý luồng association
│ │ └── com/vsoft/mynotes/
│ │ ├── MainActivity.java - Logic chính của ứng dụng PoC
│ │ └── NotificationListener.java - Dịch vụ lắng nghe thông báo
│ └── res/
│ ├── drawable/ - Tài nguyên drawable của ứng dụng
│ ├── drawable-v24/ - Tài nguyên drawable cho API 24+
│ ├── layout/main.xml - Giao diện ứng dụng ghi chú
│ ├── mipmap-*/ - Icon ứng dụng theo từng mật độ màn hình
│ └── values/ - Chuỗi và theme ứng dụng
├── gradle/wrapper/ - Gradle wrapper jar và cấu hình wrapper
├── .gitignore - Quy tắc loại trừ file local, build output, log và script phụ trợ
├── build.gradle - Cấu hình Gradle cấp project
├── gradle.properties - Thiết lập Gradle của project
├── gradlew - Script chạy Gradle trên Linux/macOS
├── gradlew.bat - Script chạy Gradle trên Windows
├── settings.gradle - Khai báo project và module
└── README.md
| Komponente | Beschreibung | Pfad |
|---|---|---|
| MainActivity | Hauptaktivität, zeigt die Notizoberfläche, ruft den Association-Ablauf auf und sammelt Daten, wenn Berechtigungen vorhanden sind | app/src/main/java/com/vsoft/mynotes/MainActivity.java |
| CompanionAssociationActivity | Aktivität, die die Association-Antwort des Companion Device Managers simuliert | app/src/main/java/com/android/companiondevicemanager/CompanionAssociationActivity.java |
| NotificationListener | Dienst, der aktive und neu eingehende Benachrichtigungen erfasst | app/src/main/java/com/vsoft/mynotes/NotificationListener.java |
| AndroidManifest | Deklaration von Berechtigungen, Features, Activity-Alias und Benachrichtigungs-Listener-Dienst | app/src/main/AndroidManifest.xml |
Das Manifest der App deklariert mehrere Berechtigungsgruppen, um die Auswirkung der Schwachstelle in anfälligen Umgebungen zu überprüfen:
REQUEST_COMPANION_PROFILE_WATCH, REQUEST_COMPANION_PROFILE_GLASSESREQUEST_COMPANION_RUN_IN_BACKGROUND, REQUEST_COMPANION_USE_DATA_IN_BACKGROUNDREAD_CONTACTS, WRITE_CONTACTS, GET_ACCOUNTSREAD_SMS, SEND_SMS, RECEIVE_SMS, RECEIVE_MMS, RECEIVE_WAP_PUSHREAD_PHONE_STATE, READ_CALL_LOG, WRITE_CALL_LOG, CALL_PHONE, ANSWER_PHONE_CALLSREAD_CALENDAR, WRITE_CALENDARPOST_NOTIFICATIONS, RECEIVE_SENSITIVE_NOTIFICATIONS, NotificationListenerServiceBLUETOOTH_SCAN, BLUETOOTH_CONNECT, BLUETOOTH_ADVERTISE, NEARBY_WIFI_DEVICESDie an den Lab-Server gesendeten Daten sind als JSON verpackt. Die wichtigsten Datengruppen sind:
NotificationListener erfasst wurden.