
PoC for CVE-2024-23700, Android slient privilege escalation allow to read/write contacts, SMS, calendar, call log and voicemail, make outgoing calls or answer incoming calls, manipulate call settings, access & control notifications sent by other apps, control nearby devices, record audio, access device identifiers, and bypass background restriction
यह परियोजना CVE-2024-23700 का एक प्रदर्शन है, जो Android पर Companion Device तंत्र से संबंधित एक विशेषाधिकार वृद्धि भेद्यता है। PoC दर्शाता है कि एक ऐप, असुरक्षित वातावरण में, सामान्य अनुमति संवाद को दरकिनार करते हुए, साथी उपकरण बंधन प्रवाह का लाभ उठाकर कुछ संवेदनशील अनुमतियाँ प्राप्त कर सकता है।
इस रिपॉजिटरी में दस्तावेज़ और स्रोत कोड केवल शैक्षिक उद्देश्यों, सुरक्षा विश्लेषण और अधिकृत वातावरण में परीक्षण के लिए हैं। इसे परीक्षण के कानूनी दायरे से बाहर के उपकरणों, खातों या डेटा पर उपयोग न करें।
विषय: मोबाइल उपकरणों पर सुरक्षा
कार्यान्वित करने वाला समूह: यह परियोजना 4 सदस्यों के एक समूह द्वारा की गई।
| क्र.सं. | पूरा नाम | छात्र कोड |
|---|---|---|
| 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 |
इस परियोजना पर शोध और इसे पूरा करने के दौरान, समूह ने निम्नलिखित कार्य किए:
यह परियोजना एक Android ऐप को लागू करती है जो एक साधारण नोट्स ऐप (My Notes) का रूप धारण करता है। लॉन्च होने पर, ऐप CVE-2024-23700 के माध्यम से अनुमति प्राप्त करने की प्रक्रिया का अनुकरण करने के लिए एक साथी उपकरण प्रोफाइल के साथ CompanionDeviceManager.associate() को कॉल करता है। यदि डिवाइस या ROM शोषण योग्य स्थितियों को पूरा करता है, तो ऐप अतिरिक्त संवेदनशील अनुमतियाँ प्राप्त कर सकता है और संपर्क, SMS, कॉल लॉग, कैलेंडर, सूचनाएँ और कुछ डिवाइस जानकारी जैसे डेटा तक पहुँच सकता है।
PoC का मुख्य कार्यप्रवाह:
CompanionAssociationActivity घटक डिवाइस बंधन स्वीकृति प्रतिक्रिया का अनुकरण करता है।भेद्यता कोड: CVE-2024-23700
Android गंभीरता स्तर: Critical
संबंधित घटक: Android Companion Device Manager
पैच संदर्भ: Android Wear Security Bulletin 2024-05-01
पैच कमिट संदर्भ: AOSP frameworks/base patch
PoC के मूल README के अनुसार, अधिकांश सामान्य Android डिवाइस प्रभावित नहीं होते हैं, कुछ मामलों को छोड़कर जैसे:
com.android.companiondevicemanager घटक को हटा दिया है या दूषित कर दिया है।यदि PoC APK डिवाइस पर स्थापित नहीं किया जा सकता है, तो यह संकेत हो सकता है कि डिवाइस इस भेद्यता के लिए शोषण योग्य स्थितियों को पूरा नहीं करता है।
CVE-2024-23700/
├── app/
│ ├── build.gradle - Android एप्लिकेशन मॉड्यूल कॉन्फ़िगरेशन
│ ├── proguard-rules.pro - ऐप मॉड्यूल के लिए ProGuard नियम
│ └── src/main/
│ ├── AndroidManifest.xml - अनुमतियाँ, गतिविधियाँ और सूचना श्रोता घोषणा
│ ├── java/
│ │ ├── com/android/companiondevicemanager/
│ │ │ └── CompanionAssociationActivity.java - एसोसिएशन प्रवाह को संभालने वाली गतिविधि
│ │ └── com/vsoft/mynotes/
│ │ ├── MainActivity.java - PoC ऐप का मुख्य तर्क
│ │ └── NotificationListener.java - सूचनाएँ सुनने की सेवा
│ └── res/
│ ├── drawable/ - ऐप के ड्रॉएबल संसाधन
│ ├── drawable-v24/ - API 24+ के लिए ड्रॉएबल संसाधन
│ ├── layout/main.xml - नोट्स ऐप इंटरफ़ेस
│ ├── mipmap-*/ - विभिन्न स्क्रीन घनत्वों के लिए ऐप आइकन
│ └── values/ - ऐप स्ट्रिंग्स और थीम
├── gradle/wrapper/ - Gradle wrapper जार और कॉन्फ़िगरेशन
├── .gitignore - स्थानीय फ़ाइलों, बिल्ड आउटपुट, लॉग और सहायक स्क्रिप्ट को बाहर करने के नियम
├── build.gradle - प्रोजेक्ट-स्तरीय Gradle कॉन्फ़िगरेशन
├── gradle.properties - प्रोजेक्ट के Gradle सेटिंग्स
├── gradlew - Linux/macOS पर Gradle चलाने की स्क्रिप्ट
├── gradlew.bat - Windows पर Gradle चलाने की स्क्रिप्ट
├── settings.gradle - प्रोजेक्ट और मॉड्यूल घोषणा
└── README.md
ऐप का मेनिफेस्ट असुरक्षित वातावरण में भेद्यता के प्रभाव को सत्यापित करने के लिए कई अनुमति समूहों की घोषणा करता है:
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, , , , प्रयोगशाला सर्वर पर भेजा गया डेटा JSON प्रारूप में पैक किया जाता है। मुख्य डेटा समूहों में शामिल हैं:
NotificationListener द्वारा रिकॉर्ड की गई नई सूचनाएँ।MainActivity.java में डेटा प्राप्त करने वाले एंडपॉइंट को परीक्षक द्वारा नियंत्रित आंतरिक एंडपॉइंट से बदला जाना चाहिए।| घटक | विवरण | पथ |
|---|
| MainActivity | मुख्य गतिविधि, नोट्स इंटरफ़ेस प्रदर्शित करता है, एसोसिएशन प्रवाह शुरू करता है और अनुमति मिलने पर डेटा एकत्र करता है | app/src/main/java/com/vsoft/mynotes/MainActivity.java |
| CompanionAssociationActivity | Companion Device Manager की एसोसिएशन प्रतिक्रिया का अनुकरण करने वाली गतिविधि | app/src/main/java/com/android/companiondevicemanager/CompanionAssociationActivity.java |
| NotificationListener | वर्तमान और नई सूचनाओं को रिकॉर्ड करने वाली सेवा | app/src/main/java/com/vsoft/mynotes/NotificationListener.java |
| AndroidManifest | अनुमतियाँ, सुविधाएँ, गतिविधि उपनाम और सूचना श्रोता सेवा की घोषणा | app/src/main/AndroidManifest.xml |
READ_CALL_LOGWRITE_CALL_LOGCALL_PHONEANSWER_PHONE_CALLSREAD_CALENDAR, WRITE_CALENDARPOST_NOTIFICATIONS, RECEIVE_SENSITIVE_NOTIFICATIONS, NotificationListenerServiceBLUETOOTH_SCAN, BLUETOOTH_CONNECT, BLUETOOTH_ADVERTISE, NEARBY_WIFI_DEVICES