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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pack2theroot-lab — # مختبر Docker بأسلوب CTF لـ CVE-2026-41651 (Pack2TheRoot): تصعيد صلاحيات محلي عبر PackageKit مع سياسة polkit متساهلة | Kitploit
أدوات/GitHubGitHub/dinosn/pack2theroot-lab
أدوات دفاعيةتصعيد الامتيازاتأمن الحاوياتتحليل الثغرات الأمنيةالاستغلالCTFاختبار الاختراقالتعلم والتعليمالفريق الأحمرمختبرات وتدريب عملي
GitHubdinosn/pack2theroot-lab

pack2theroot-lab

81منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

# مختبر Docker بأسلوب CTF لـ CVE-2026-41651 (Pack2TheRoot): تصعيد صلاحيات محلي عبر PackageKit مع سياسة polkit متساهلة

عرض المستودع

مختبر Pack2TheRoot — CVE-2026-41651

مختبر محلي لتصعيد الصلاحيات بأسلوب CTF، مبني على Docker، ويستند إلى استشارة Pack2TheRoot (CVE-2026-41651)، وهي ثغرة عمرها 12 عامًا في خادم PackageKit تم الكشف عنها من قبل الفريق الأحمر لشركة Deutsche Telekom في 22 أبريل 2026.

يتضمن المختبر ثلاث حاويات: تحدي CTF بسياسات polkit متساهلة، هدف مقارنة مُحصّن، وإعادة إنتاج كاملة لثغرة TOCTOU تبني PackageKit الضعيف من المصدر وتشغّل استغلال السبب الجذري الفعلي لـ CVE-2026-41651.


1. ما الذي ستحصل عليه

الحاويةالمنفذالدورنتيجة الاستغلال
pack2theroot-vulntcp/2222 (ssh)PackageKit ≤ 1.3.4 + قاعدة polkit متساهلةجذر (Root) عبر حزمة RPM مصمّمة
pack2theroot-patchedtcp/2223 (ssh)نفس الشيء، لكن مع polkit مُحصّنفشل الاستغلال
pack2theroot-exploit—PackageKit 1.3.4 ضعيف مبني من المصدرجذر (Root) عبر سباق D-Bus من نوع TOCTOU

بالإضافة إلى:

  • موجز تحدي موجّه للاعب (docs/CHALLENGE.md)
  • تلميحات تدريجية (docs/HINTS.md)
  • شرح كامل خطوة بخطوة والعلم (docs/SOLUTION.md)
  • رسوم بيانية مرئية لمسار الاستغلال (docs/diagrams/)
  • أدوات للمدافع: فحص الإصدار، مراقبة مؤشرات الاختراق (IOC)، مقارنة جنبًا إلى جنب، وسكربت تخفيف مؤقت لـ polkit.

2. ملخص الثغرة

السبب الجذري — ثلاثة أخطاء متسلسلة في pk-transaction.c

يرسل الاستغلال استدعاءين غير متزامنين لـ InstallFiles() عبر D-Bus على نفس المعاملة: الأول مع SIMULATE (يتجاوز polkit، ويُدرج استدعاء GLib خامل في قائمة الانتظار)، ثم فورًا مع NONE + الحزمة الخبيثة (يستبدل العلامات/المسارات المخزنة قبل تنفيذ الاستدعاء الخامل). يضمن ترتيب الأولوية في GLib إرسال رسالتي D-Bus قبل الاستدعاء الخامل — مما يجعل هذا حتميًا وليس سباق توقيت.

مؤشر اختراق معروف (من الاستشارة):

root@kitploit:~
journalctl --no-pager -u packagekit | grep -iE 'emitted_finished|pk_transaction_finished_emit|pk-transaction\.c:514'

3. بدء سريع

root@kitploit:~
git clone https://github.com/dinosn/pack2theroot-lab.git
cd pack2theroot-lab
docker compose build
docker compose up -d

تحدي CTF (مسار polkit المتساهل)

root@kitploit:~
ssh labuser@localhost -p 2222     # كلمة المرور: labuser
# ثم اعمل على docs/CHALLENGE.md

العلم موجود في /root/flag.txt (الوضع 0400 root:root). الصيغة: PACK2THEROOT{...}

إعادة إنتاج استغلال TOCTOU (السبب الجذري الفعلي لـ CVE)

root@kitploit:~
# البناء والتشغيل — الوضع التلقائي ينفّذ الاستغلال فورًا:
docker compose run --rm exploit

# أو الوضع اليدوي:
docker compose run --rm --entrypoint /entrypoint.sh exploit
# ثم داخل الحاوية:
su - victim -c /exploit/cve-2026-41651

يبني الاستغلال حزمتي .deb بلغة C (بدون أدوات خارجية)، ويرسل سباق D-Bus المزدوج، وينشئ bash بصلاحيات SUID في /tmp/.suid_bash. راجع docs/SOLUTION.md للحصول على الشرح الفني الكامل.

الإيقاف:

root@kitploit:~
docker compose down -v

4. هيكل المستودع

root@kitploit:~
pack2theroot-lab/
├── README.md
├── docker-compose.yml
├── docs/
│   ├── CHALLENGE.md         # موجز اللاعب
│   ├── HINTS.md             # تلميحات تدريجية (كلا المسارين)
│   ├── SOLUTION.md          # شرح كامل + العلم
│   ├── references.md        # المصادر الأولية والثانوية
│   ├── threat-model.md      # افتراضات المهاجم/المدافع
│   └── diagrams/            # رسوم بيانية SVG لمسار الاستغلال
│       ├── 01-docker-build.svg
│       ├── 02-container-startup.svg
│       ├── 03-exploit-execution.svg
│       ├── 04-dbus-race-sequence.svg
│       ├── 05-attack-overview.svg
│       └── 06-auto-mode-full-run.svg
├── exploit/
│   ├── Dockerfile           # يبني PackageKit 1.3.4 الضعيف من المصدر
│   ├── entrypoint.sh        # يبدأ dbus + polkitd + packagekitd
│   ├── Makefile
│   └── src/
│       └── cve-2026-41651.c # استغلال TOCTOU (PoC عام)
├── vulnerable/
│   ├── Dockerfile
│   ├── entrypoint.sh
│   └── policy/
│       └── 10-pack2theroot-lab-misconfig.rules   # تحدي CTF
├── patched/
│   ├── Dockerfile
│   ├── entrypoint.sh
│   ├── local/                # ضع حزمة RPM لإصدار 1.3.5 هنا (اختياري)
│   └── policy/
│       └── 10-pack2theroot-lab-hardened.rules    # الإصلاح
└── scripts/
    ├── exploit-check.sh         # يفحص الإصدار و polkit و D-Bus ومؤشرات IOC
    ├── check-version.sh         # حكم VULNERABLE مقابل PATCHED
    ├── check-preconditions.sh   # فحص سلامة pkcon / polkit / D-Bus
    ├── monitor-ioc.sh           # يتتبع journal بحثًا عن IOC من الاستشارة
    ├── compare-env.sh           # يقارن بين الحاويتين
    └── apply-polkit-mitigation.sh  # تخفيف مؤقت للمضيفات غير المُصحّحة

5. الرسوم البيانية المرئية

يحتوي دليل docs/diagrams/ على رسوم بيانية SVG توضح مسار الاستغلال. افتحها في أي متصفح:

6. لعب تحدي CTF

راجع docs/CHALLENGE.md. باختصار:

  1. ادخل عبر SSH كمستخدم labuser (كلمة المرور labuser).
  2. استكشف قواعد polkit. إحداها متساهلة جدًا.
  3. ابنِ حزمة RPM خبيثة (rpm-build و rpmdevtools مثبتتان).
  4. ثبّتها باستخدام pkcon install-local --allow-untrusted.
  5. يعمل سكربت %post بصلاحيات الجذر. اقرأ /root/flag.txt.

عالق؟ docs/HINTS.md يحتوي تلميحات أكثر وضوحًا بشكل تدريجي. افتح docs/SOLUTION.md فقط بعد أن تحل التحدي أو تحتاج فعلًا إلى الشرح المكتوب.

7. تشغيل أدوات المدافع

داخل أي من الحاويتين، وبأي مستخدم:

root@kitploit:~
/opt/lab/check-version.sh         # حكم VULNERABLE أو PATCHED
/opt/lab/check-preconditions.sh   # فحص ذاتي للتعرض
/opt/lab/exploit-check.sh         # فحص الإصدار + polkit + D-Bus + IOC
/opt/lab/monitor-ioc.sh           # يتتبع journal بحثًا عن IOC

من المضيف، جنبًا إلى جنب:

root@kitploit:~
./scripts/compare-env.sh

طبّق تخفيف polkit المؤقت على حاوية ضعيفة:

root@kitploit:~
docker exec pack2theroot-vuln /opt/lab/apply-polkit-mitigation.sh
# ثم أعد محاولة الاستغلال — يجب أن يفشل الآن.

8. الصورة المُصحّحة — حالة النقل الخلفي

تتعامل صورة patched مع حالة إصدار PackageKit بشفافية:

  • تثبّت أي PackageKit يشحنه التوزيعة حاليًا.
  • تعرض لافتة واضحة (/etc/pack2theroot-banner) توضح ما إذا كان الإصدار المثبت هو التصحيح الفعلي أم مجرد بديل من التوزيعة.
  • بغض النظر عن الإصدار، تشحن قاعدة polkit مُحصّنة تمنع مسار التثبيت بدون مصادقة.

لبناء صورة مُصحّحة كاملة الإصدار بمجرد نشر توزيعتك للنقل الخلفي، ضع حزم RPM في patched/local/ وأعد البناء:

root@kitploit:~
docker compose build --build-arg USE_LOCAL_RPM=1 patched

9. السلامة والاستخدام المسؤول

  • لا تشحن أيًا من صور الحاويات على مضيف Docker مشترك مع مستخدمين غير موثوقين.
  • تتطلب حاوية الاستغلال --privileged لتشغيل حزمة dbus/polkitd/packagekitd الكاملة. شغّلها فقط في بيئات معزولة.
  • كلمة مرور SSH (labuser) ضعيفة عمدًا. لا تعِد استخدامها أبدًا.
  • للبحث الدفاعي المصرّح به والتعليم واختبار الاختراق فقط.

10. المراجع

المصادر الأولية:

  • استشارة Telekom Security — https://github.security.telekom.com/2026/04/pack2theroot-linux-local-privilege-escalation.html
  • NVD — CVE-2026-41651: https://nvd.nist.gov/vuln/detail/CVE-2026-41651
  • الإصلاح الرسمي — PackageKit 1.3.5: https://github.com/PackageKit/PackageKit/releases/tag/v1.3.5
  • التزام الإصلاح — 76cfb675: https://github.com/PackageKit/PackageKit/commit/76cfb675fb31acc3ad5595d4380bfff56d2a8697
  • PoC عام — Vozec: https://github.com/Vozec/CVE-2026-41651

راجع docs/references.md للتغطية الثانوية ومتتبعات التوزيعات.

11. الترخيص

MIT — راجع LICENSE.

تنزيل الأداة
الحقلالقيمة
CVECVE-2026-41651
الاسمPack2TheRoot
التصنيفتصعيد صلاحيات محلي (TOCTOU / CWE-367)
المكوّنخادم PackageKit (pk-transaction.c)
النطاق المتأثر>= 1.0.2 و <= 1.3.4 (12 عامًا من الإصدارات)
تم الإصلاح فيPackageKit 1.3.5 (الالتزام 76cfb675، صدر في 2026-04-22)
CVSS 3.18.8 (HIGH) — AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
الشروط المسبقةشل محلي غير مميز على مضيف يعمل بنظام PackageKit
المكتشفDeutsche Telekom Security GmbH — الفريق الأحمر
الخطأالموقعالتأثير
الخطأ 1InstallFiles() (سطر ~4036)يستبدل cached_transaction_flags و cached_full_paths دون قيد — لا يوجد حارس حالة
الخطأ 2pk_transaction_set_state() (الأسطر ~876–881)يتجاهل بصمت انتقالات الحالة للخلف بدلاً من إرجاع خطأ — العلامات مسمومة بالفعل
الخطأ 3pk_transaction_run() (الأسطر ~2273–2277)يقرأ cached_transaction_flags وقت التنفيذ، وليس وقت التفويض
الالتفافعلامة SIMULATE (الأسطر ~2893–2900)PK_TRANSACTION_FLAG_SIMULATE (0x4) يتجاوز polkit بالكامل
الرسم البيانيالوصف
01-docker-build.svgبناء Docker على مرحلتين — تجميع PackageKit الضعيف
02-container-startup.svgإطلاق الحاوية — بدء تشغيل dbus و polkitd و packagekitd
03-exploit-execution.svgمخرجات الاستغلال خطوة بخطوة مع مراحل مشروحة
04-dbus-race-sequence.svgمخطط تسلسل D-Bus — كيف تترابط الأخطاء 1/2/3 مع أولوية GLib
05-attack-overview.svgمسار الهجوم عالي المستوى: المهاجم مقابل النظام مع خط زمني
06-auto-mode-full-run.svgمحطة طرفية كاملة لوضع --auto — من بدء الحاوية إلى شل الجذر