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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pfsense-api-fleet-jwt — pfSense Plus MIM API toolkit b4acd7ca - عالي - عن بُعد - IDOR - وحدة تحكم واحدة JWT هي رمز أسطول | Kitploit
أدوات/GitHubGitHub/abraxas/pfsense-api-fleet-jwt
المصادقة والترخيصتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتاختبار الاختراقأمن واجهات برمجة التطبيقاتمختبرات وتدريب عملي
GitHubabraxas/pfsense-api-fleet-jwt

pfsense-api-fleet-jwt

pfSense Plus MIM API toolkit b4acd7ca - عالي - عن بُعد - IDOR - وحدة تحكم واحدة JWT هي رمز أسطول

منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - pfsense-api-fleet-jwt

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-api-fleet-jwt

pfsense-api-fleet-jwt

الفئة: IDOR الوصول: عن بُعد

pfSense Plus MIM API (Netgate) عند الالتزام b4acd7ca - github.com/Netgate/pfsense-api

يُعاد استخدام Bearer واحد من POST /login لكل device_id مُسجَّل. تنسخ الأمثلة الرسمية ذلك الرمز إلى /api/device/pfsense/{device_id}/api لكل معرّف من GET /mim/devices. حقول LoginResponse هي فقط token وuser وversion وalerts. أدوار LDAP MIM عالمية. وهي غير مرتبطة بجهاز. تسجيل دخول وحدة تحكم يمكنه سرد الأجهزة يتحدث إلى الجدار الناري B برمز صادر لمستخدم كان المقصود منه الجدار الناري A.

هذا مستأجر عميل واحد، وليس بقايا عبور مستأجرين في SaaS. تبقى الاستدعاءات غير الموثّقة 401. ولم يُنفَّذ Plus RBAC. مركز السلسلة: pfsense-api-nexus-mim (هذه هي البقايا 6). الـ JWT المسروق من البقايا 9 (عينات verify_ssl=False) هو رمز الأسطول هذا.

المعرّفلا يوجد CVE بعد
الفئةIDOR
الوصولعن بُعد (JWT وحدة تحكم موثّق)
CWECWE-639
CVSSمرتفع: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
المنتجNetgate/pfsense-api (pfSense Plus Nexus Multi-instance Management controller OpenAPI + العميل المُولَّد)
المتأثرالالتزام b4acd7ca21dbca739a530403a1f62a7440f7726f (2026-05-25). لا توجد وسوم. الخادم خاص بـ Plus فقط (مدفوع). وليس حزمة CE REST.
المصادقةJWT وحدة التحكم من POST /login. تخمين device_id غير مطلوب إذا كان GET /mim/devices مسموحًا.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:19161 فقط. محاكاة Python لعقد العميل المنشور. لا توجد صورة Plus.

ثبّتُّ github.com/Netgate/pfsense-api على main عند b4acd7ca21dbca739a530403a1f62a7440f7726f (2026-05-25، Add Snort-3 API definitions). هذا ليس jaredhendrickson/pfsense-api / pfrest.org.

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

تسجيل دخول وحدة تحكم يمكنه سرد الأجهزة يتحدث إلى كل نسخة مُسجَّلة بنفس الـ JWT. CSRF ليس في اللعبة (Bearer API). PHP / shell / export-key على كل صندوق هو صلاحية مسؤول مقصودة بمجرد أن يقبل الوسيط رمز الأسطول. البقايا هي الربط المفقود لكل جهاز، وليس Diagnostics: Command.

الصلاحيةالطريقة / المسارمُثبت مختبريًا أو مُستنتج
سرد كل device_id مُسجَّل (الاسم، العنوان، الحالة)GET /mim/devices مع Bearer الخاص بتسجيل الدخولاستطلاع (مُثبت مختبريًا). أعاد الـ Mock كلاً من site-a و site-b. بدون مصادقة يُرجع 401.
قراءة حالة النظام لكل من firewall A و firewall B برمز واحدGET /api/device/pfsense/{device_id}/api/systemاستطلاع (مُثبت مختبريًا). device-a=200، device-b=200. الشاهد على B فقط.
إرسال POST إلى غلاف PHP التشخيصي على كلا المعرّفينPOST /api/device/pfsense/{device_id}/api/diag/cmd/phpسلامة (مختبريًا على الـ mock فقط). كلاهما 200. كما لم يُنفَّذ RBAC، لذا فإن بوابة الدور الحية غير مُثبتة.
تشغيل PHP / shell / تحرير الملفات على كل جهاز مُسجَّل إذا تضمّن تسجيل الدخول console أو systemPOST /diag/cmd/php، POST /diag/cmd/shell، GET/POST /diag/editfile، تنزيل/رفعسلامة (مُستنتج من OAS + الأمثلة). صلاحية المسؤول المقصودة بمجرد أن يقبل الوكيل رمز الأسطول. عادةً ما يعمل pfSense PHP-FPM بصلاحية root.
تصدير مفاتيح CA / leaf الخاصة و PKCS12 على كل نسخة مُدرجةGET /system/certificates/{refid}/export-key، GET /system/certauth/{refid}/export-key، GET /system/certificates/{refid}/export-p12استطلاع (مُستنتج). نفس JWT، نفس المخطط كما في leftover 4. إضافةً إلى أن RBAC لم يُنفَّذ.
استخراج حساب ACME والمفاتيح الصادرة على كل نسخة مُدرجةGET /services/acme وعمليات GET ذات الصلة بالحساب/الشهادةاستطلاع (مُستنتج). نفس JWT، مخطط leftover 5.
تغيير aliases، firewall، interfaces، VPN، services على كل نسخة مُدرجةنفس البادئة لكل جهاز، أكثر من 700 عملية متبقيةسلامة (مُستنتج). نفس JWT، نفس المخطط كما في النسخة المحلية.
إعادة التشغيل / الإيقاف / استعادة الإعدادات على كل نسخة مُدرجةPOST /diag/control، POST /diag/backup/restoreتوافر + سلامة (مُستنتج). نفس الوكيل. لم يُجرَّب.
IDOR عبر عملاء SaaSلا ينطبقمُغلق. مستأجر عميل واحد. Netgate تشغّل المتحكم في ذلك المستأجر.
من الإنترنت إلى :8443 بدون مصادقةGET /mim/devices بدون Bearerمُغلق في هذا المختبر. 401. Bearer خاطئ يُرجع أيضًا 401.
الأجهزة غير المتصلةتتخطى العينات state != onlineمُغلق بواسطة العينات. ليس حدًا للمصادقة.
المسح الرقمي الأعمى لـ device_idGET /api/device/pfsense/1/api/systemمُغلق كشرط تخمين. المعرّفات سلاسل طويلة (على شكل ED25519). السرد يزيل الحاجة للتخمين.

يتطلب: تسجيل دخول للمتحكم مسموح له بالوصول إلى وكيل الجهاز. مسار شبكي إلى متحكم MIM (:8443 في المنتج، loopback :19161 في هذا المختبر). ليس بدون مصادقة. ليس CSRF.

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

السطحالسبب
السرد / php / shell بدون مصادقةالـ Mock يُرجع 401 بدون Bearer ومع Bearer خاطئ. صمت المواصفة حول securitySchemes ليس استجابة 200 من الخادم.
SaaS عبر المستأجرينمستأجر عميل واحد. كانت مجموعات المستأجرين لا تزال مخططة على صفحة التسويق.
mim_user / بدون مجموعة Nexusموثّق كمُغلق إذا صمدت بوابة تسجيل الدخول.
أسماء أدوار mim_* الوظيفيةإنها موجودة (view، logs، usermgmt، services، firewall، interfaces، devices، system، superuser). إنها عامة، وليست لكل device_id. لم تُنفَّذ فحوصات Plus الحية (plus-rbac=not-executed).
استيفاء JSON عبر SSH للتسجيلleftover 1. حزمة مختلفة.
AutoAddPolicy للتسجيلleftover 2. حزمة مختلفة.
مقبس unix للجهاز بدون JWTleftover 3. محلي، حزمة مختلفة.
حزمة CE RESTjaredhendrickson/pfsense-api خادم مختلف.
CE WebGUI QinQ / معالج OpenVPN / CARP / limiter / لافتة IPsecأُرسلت بالفعل كبقايا CE. أسماء الحقول في هذا OAS هي نفس المصارف، وليست ثغرات CVE جديدة.
وحدة تحكم الأسطول المقصودة admins / mim_superuserنموذج المنتج لمالك المتحكم. الـ leftover هو ACL الكائن المفقود لكل الآخرين.

كيف وجدته

ثبّتُّ b4acd7ca وقرأت الأمثلة الرسمية مقابل OpenAPI. كل عيّنة تتحدث إلى جدران حماية مُدارة تفعل هذا:

devApi = AuthenticatedClient(
    base_url=CONTROLLER_URL+"/api/device/pfsense/{}/api".format(device.device_id),
    verify_ssl=False,
    headers={"Content-Type": "application/json"},
    cookies=cookies,
    token=token,
)

helper_funcs.py createDeviceApiChild يأخذ سلسلة device_id عشوائية وينسخ self.token. example.js يقوم بـ newClient("device/pfsense/" + device.device_id + "/api") ثم setBearer(client.getBearer()). example-upgrade-devices.py newDevApiClient هو نفس النسخ. GET /mim/devices هو أوراكل السرد (مرشح الوسوم فقط).

تنزيل الأداة