
CVE-2026-0073-Android-ADBD-bypass-POC汉化版
Android के ADB डेमॉन (adbd) में एक महत्वपूर्ण प्रमाणीकरण बाईपास भेद्यता मौजूद है, जो स्थानीय नेटवर्क पर किसी भी हमलावर को उपयोगकर्ता प्राधिकरण के बिना लक्ष्य उपकरण पर पूर्ण शेल अनुमति प्राप्त करने की अनुमति देती है।
यह भेद्यता daemon/auth.cpp फ़ाइल में adbd_tls_verify_cert() फ़ंक्शन में मौजूद है, जहाँ EVP_PKEY_cmp() को बूलियन के रूप में उपयोग किया जाता है। जब संग्रहीत कुंजी RSA कुंजी होती है, और प्रदान किया गया TLS क्लाइंट प्रमाणपत्र गैर-RSA कुंजी (EC P-256 या Ed25519) ले जाता है, तो EVP_PKEY_cmp() -1 (प्रकार बेमेल) लौटाता है, जो C/C++ में सत्य है, इसलिए authorized = true।
// daemon/auth.cpp में भेद्य कोड पैटर्न
if (EVP_PKEY_cmp(peer_key, stored_key)) { // ← बग: -1 सत्य है!
authorized = true;
}
pip install cryptography
# इंटरैक्टिव शेल
python adb_tls_auth_bypass.py <TARGET_IP> <PORT>
# एकल कमांड निष्पादन
python adb_tls_auth_bypass.py 192.168.1.42 37521 --cmd "id"
# वर्बोज़ मोड (पूर्ण प्रोटोकॉल ट्रेस देखें)
python adb_tls_auth_bypass.py 192.168.1.42 37521 -v --cmd "id"
python adb_tls_auth_bypass.py 192.168.1.42 5555 --key-type ec
python adb_tls_auth_bypass.py 192.168.1.42 5555 --key-type ed25519
डिफ़ॉल्ट रूप से, स्क्रिप्ट स्वचालित रूप से EC P-256 → Ed25519 → EC/TLS 1.2 का प्रयास करेगी जब तक सफल न हो जाए।
हमलावरलक्ष्य (adbd)
│ │
│──── TCP कनेक्शन ──────────────────►│
│──── CNXN (सादा पाठ) ────────────►│
│◄─── STLS (TLS अपग्रेड अनुरोध) ──│
│──── STLS उत्तर ──────────────────►│
│ │
│════ TLS 1.3 हैंडशेक ════════════│
│ (EC P-256 क्लाइंट प्रमाणपत्र प्रस्तुत)│
│ EVP_PKEY_cmp(EC, RSA) → -1 │
│ -1 सत्य → authorized=true │
│════════════════════════════════════│
│ │
│◄─── CNXN (उपकरण जानकारी) ──────│
│──── शेल खोलें "shell:" ───────────────►│
│◄─── ठीक है ──────────────────────────│
│◄──► WRTE/OKAY (शेल I/O) ──────►│
│ │
【पूर्ण शेल पहुंच】
| आवश्यकता |
|---|
⚠️ महत्वपूर्ण नोट: RSA कुंजी /data/misc/adb/adb_keys फ़ाइल में होनी चाहिए, जो USB डिबगिंग युग्मन ("USB डिबगिंग की अनुमति दें?" संवाद स्वीकार करके) द्वारा भरी जाती है। वायरलेस डिबगिंग युग्मन (adb pair) कुंजी को एक अलग स्थान (adb_known_hosts.pb) में संग्रहीत करता है, इसलिए यह इस आवश्यकता को पूरा नहीं करता है।
adb shell getprop ro.build.version.security_patch
निम्नलिखित उपकरणों पर सफलतापूर्वक परीक्षण किया गया:
कर्नेल: 6.1.23-android14-4-00257-g7e35917775b8-ab9964412
प्लेटफ़ॉर्म: Android 14 (Android Studio एमुलेटर)
इस फोर्क में निम्नलिखित सुधार शामिल हैं:
select() के बजाय थ्रेड I/O का उपयोग करता है-v फ़्लैग के साथ विस्तृत प्रोटोकॉल ट्रेसCVE-2026-0073-Android-ADBD-bypass-POC/
├── adb_tls_auth_bypass.py # मुख्य शोषण स्क्रिप्ट
└── README.md # यह फ़ाइल
यह उपकरण केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए है। अनधिकृत कंप्यूटर सिस्टम तक पहुंच अवैध है। परीक्षण से पहले उचित प्राधिकरण प्राप्त करें। लेखक इस सॉफ़्टवेयर के दुरुपयोग के लिए कोई जिम्मेदारी नहीं लेता है।
यदि यह आपके शोध में सहायक है, तो कृपया ⭐ दें
EVP_PKEY_cmp() वापसी मान | अर्थ | C में सत्य? | परिणाम |
|---|
1 | कुंजी मिलान | ✅ | अधिकृत (सही) |
0 | कुंजी भिन्न | ❌ | अस्वीकृत (सही) |
-1 | प्रकार बेमेल | ✅ | अधिकृत (बग) |
| विवरण |
|---|
| डेवलपर विकल्प | लक्ष्य उपकरण पर सक्षम |
| वायरलेस डिबगिंग | सक्षम (या TCP पोर्ट 5555 पर ADB के माध्यम से) |
| संग्रहीत RSA कुंजी | उपकरण को कम से कम एक बार USB के माध्यम से युग्मित किया गया हो (/data/misc/adb/adb_keys) |
| नेटवर्क पहुंच | हमलावर के पास adbd TCP पोर्ट तक पहुंच होनी चाहिए |