Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
opnsense-uidfield-system-uid0 — OPNsense 26.7.6 - عالي - عن بُعد - صلاحية متبقية - UidField uid 0 | Kitploit
أدوات/GitHubGitHub/abraxas/opnsense-uidfield-system-uid0
المصادقة والترخيصتصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالمحاكاة الافتراضية للأمانأمن الويباختبار الاختراقمختبرات وتدريب عملي

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHub
abraxas/opnsense-uidfield-system-uid0

opnsense-uidfield-system-uid0

OPNsense 26.7.6 - عالي - عن بُعد - صلاحية متبقية - UidField uid 0

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

Abraxas Labs - opnsense-uidfield-system-uid0

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-uidfield-system-uid0

opnsense-uidfield-system-uid0

التصنيف: صلاحية متبقية الوصول: عن بُعد

نواة OPNsense 26.7.6 (a842fe48) - opnsense.org

تفويض page-system-usermanager بخطوتين scope=system ثم uid=0. تقوم UidField::setValue بالتخصيص التلقائي 2000+ فقط عندما لا يكون النطاق system. تُطبّق setNodes قيمة uid قبل scope، لذا لا يمكن لعملية إضافة واحدة أن تضع 0. لكن POST الثاني يستطيع ذلك. ثم auth sync user مع pw useradd -o -u 0 مع المجلد الرئيسي /root والمجموعة wheel. تصل المفاتيح المصرّح بها إلى /root/.ssh/authorized_keys. الصلاحية هي System: Access: Management، وليست page-all.

المعرّفلا يوجد CVE بعد
التصنيفصلاحية متبقية
الوصولعن بُعد (WebGUI مُصادَق عليه / مفتاح Local API)
CWECWE-269 / CWE-284
CVSSمرتفع: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
المنتجOPNsense core (Deciso B.V.)
المتأثرOPNsense core 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) UidField / user-manager
المصادقةجلسة WebGUI أو مفتاح Local API مع page-system-usermanager
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

ثبّتُّ الوسم 26.7.6 "Xenial Xenops". المختبر عبارة عن أداة PHP للنسخة المثبّتة من UidField::setValue بالإضافة إلى local_user_set، بهوية loopback 127.0.0.1:18810. أرجعت stable/26.7 كتابة UID-0 عبر ea4f01fe في 2026-10-09. هذا الإرجاع ليس هذه النسخة المثبّتة. لا يوجد GHSA.

ما يمكن للمهاجم فعله

الطريقةالمخرجالصلاحية
إضافة بخطوتين scope=system ثم تعيين uid=0 ثم auth sync userتثبيت UidField::setValue ثم استدعاء pw useradd -o -u 0 (auth.inc:345-397)السلامة (مُثبتة مختبريًا): UID 0 يونيكس ثانٍ، المجلد الرئيسي /root، المجموعة wheel. المختبر: after-add=2000 after-set=0 pw-o-u0=yes.
نفس التعيين + authorizedkeysfile_put_contents /root/.ssh/authorized_keys (auth.inc:407-416)السلامة (مُثبتة مختبريًا): شاهد في /root/.ssh/authorized_keys.
SSH بهذا الاسم إذا كان sshd مُفعّلًا (AllowGroups wheel؛ PermitRootLogin لا ينطبق على اسم مستخدم غير root)sshdاستطلاع + سلامة (مُستنتج): تسجيل الدخول بالاسم الجديد في wheel، قراءة /root. لم تُشغّل الأداة sshd.
نفس طلبات POST مع scope=user uid=0تخصيص UidField التلقائي 2000+سلبي (مُثبت مختبريًا): يبقى uid عند 2000. scope-user-uid0-ignored=yes.
set على uuid الافتراضي root uid=80pw usermod -u 80السلامة + التوافر (مُستنتج): نقل root الافتراضي بعيدًا عن UID 0. لم تُنفّذ الأداة usermod على root.
set على uuid الخاص بـ root name=hax + scope=userتخطّي فحص إعادة التسمية؛ auth sync user على الاسم الجديدالسلامة (مُستنتج): إعادة تسمية مستخدم نظام كان فحص 26.7.6 يهدف إلى منعها.

مُثبت مختبريًا مقابل مُستنتج: UID 0 بخطوتين، pw useradd -o -u 0، مسار المفاتيح، وتجاهل scope=user كلها نجاح مختبري. قبول sshd الحيّ و usermod/إعادة تسمية root الافتراضي مُستنتجة. الأداة، وليست جهاز OPNsense افتراضي كامل.

يتطلب: جلسة WebGUI أو مفتاح Local API مع page-system-usermanager. CSRF على مسار الجلسة. ليس page-all. config.xml.sample الافتراضي يمنح page-all فقط للمجموعة admins.

السطح المجاور الذي يبقى مغلقًا

السطحالمختبر
POST /api/auth/user/* بدون page-system-usermanagerACL مغلق
user-config-readonlysave() لا يزال throwReadOnly()
رفع CSVيزيل uid/scope
CVE-2026-44194 email-as-shellmwexecf %s + email regex
صفحة كلمة المرورمرتبطة بالجلسة
page-all ينفّذ نفس POSTميزة changelog على هذه النسخة المثبّتة
بدون مصادقةمغلق
su يونيكس مع * في master.passwdتجزئة GUI تبقى في config.xml إلا إذا فرضها المُثبّت

لا يوجد بدون مصادقة. لا حاجة إلى page-all. قدّمت 26.7.6 تعيين UID المختار لمستخدمي نطاق system كميزة إدارية. المسار غير المتطابق هو user-manager مفوّض بدون page-all.

المختبر

cd lab
./run.sh

Loopback 127.0.0.1:18810. مشروع Compose opnsense-uidfield-system-uid0. الصورة من النسخة المثبّتة 26.7.6. الشاهد OPNSENSE-UIDFIELD-SYSTEM-UID0-WITNESS. السطر الأخير:

SUCCESS opnsense-uidfield-system-uid0 two-step-uid=0 scope-user-uid0-ignored=yes pw-o-u0=yes keys=/root/.ssh/authorized_keys OPNSENSE-UIDFIELD-SYSTEM-UID0-WITNESS

الإصلاح

ارفض UID 0 (و UIDs الخدمات المتعارضة) إلا إذا كان المستدعي مسؤولًا كاملًا. طبّق scope قبل uid في setNodes، أو ارفض POST الذي يقلب كليهما. أبقِ فحص إعادة التسمية الخاص بـ 26.7.6 على النطاق قبل setNodes، وليس النطاق المُرسَل. أرجعت ea4f01fe لاحقًا كتابة UID-0 على stable/26.7؛ ذلك الـ commit ليس هذه النسخة المثبّتة.

المراجع

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • UidField.php
  • auth.inc local_user_set
  • الصفحة المُسمّاة (ليست هذه المتبقية): CVE-2026-44194 / GHSA-f59w email-as-shell
  • الإرجاع اللاحق (ليس هذه النسخة المثبّتة): ea4f01fe على stable/26.7
  • CWE-269 / CWE-284
تنزيل الأداة