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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pfsense-api-enroll-autoadd — pfSense Plus MIM API toolkit b4acd7ca - عالي - عن بُعد - صلاحيات متبقية - Paramiko AutoAddPolicy enroll | Kitploit
أدوات/GitHubGitHub/abraxas/pfsense-api-enroll-autoadd
تحليل الثغرات الأمنيةالاستغلالأمن الشبكاتالتشفيراختبار الاختراقالمصادقةالأوراق والأبحاثالفريق الأحمرمختبرات وتدريب عملي
GitHubabraxas/pfsense-api-enroll-autoadd

pfsense-api-enroll-autoadd

pfSense Plus MIM API toolkit b4acd7ca - عالي - عن بُعد - صلاحيات متبقية - Paramiko AutoAddPolicy enroll

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - pfsense-api-enroll-autoadd

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

pfsense-api-enroll-autoadd

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

pfSense Plus MIM API (Netgate/pfsense-api) b4acd7ca - Netgate

example-add-devices.py هو الطريقة الموثّقة لتسجيل وحدة تحكم Nexus لدى كل جهاز pfSense. وهو لا يستدعي load_system_host_keys() أبدًا. بل يضبط paramiko.AutoAddPolicy() ثم connect ثم exec_command(device_script). ويشير التعليق إلى إزالة AutoAdd عندما تكون الأجهزة موجودة بالفعل في known_hosts. أما الإعداد الافتراضي عند الشحن فهو AutoAdd.

أول اتصال SSH بجهاز جديد يقبل أي مفتاح مضيف يجيب. تُقدَّم مصادقة كلمة المرور أو المفتاح لذلك الطرف المقابل. ويُمرَّر stdout عبر json.loads ثم يُرسَل بـ POST /mim/devices إلى وحدة التحكم الحقيقية.

هذه ليست حزمة REST الخاصة بـ CE من طرف ثالث. هذه هي OpenAPI الرسمية بالإضافة إلى عميل Python المولَّد لـ pfSense Plus Nexus Multi-instance Management. الخادم مخصص لـ Plus فقط. المختبر عبارة عن أداة Paramiko SSH. لم أتحدث إلى وحدة تحكم Plus حقيقية.

المعرّفلا يوجد CVE بعد
الفئةصلاحية متبقية (Paramiko AutoAddPolicy عند تسجيل SSH)
الوصولعن بُعد (على المسار إلى SSH الخاص بالجهاز عند أول اتصال)
CWECWE-322
CVSSمرتفع: 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
المنتجNetgate/pfsense-api (مجموعة أدوات عميل Plus Nexus MIM)
المتأثرmain b4acd7ca21dbca739a530403a1f62a7440f7726f example-add-devices.py
المصادقةيشغّل المشغّل النموذج الرسمي؛ والمهاجم على المسار إلى SSH الخاص بالجهاز
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:19111 فقط. لا توجد صورة Plus.

AC:H يعني أول اتصال / على المسار. محطة عمل تحتوي بالفعل على مفاتيح الجهاز الحقيقية في known_hosts و أُزيل منها سطر AutoAdd ليست هذا الخلل المتبقي.

نفس بقايا التثبيت: JSON interpolation of ControllerSummary into the enrollment shell (G1) والعينات تفرض verify_ssl=False (G9). مركز السلسلة: pfsense-api-nexus-mim.

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

الجلوس على المسار إلى عنوان SSH لأول اتصال في pfsense_addresses أثناء تشغيل المشغّل للعينة. لا يزال AutoAdd مفعّلًا.

الطريقةالحوضالصلاحية
الجلوس على المسار إلى عنوان SSH للاتصال الأول في pfsense_addressesset_missing_host_key_policy(paramiko.AutoAddPolicy()) ثم connect (example-add-devices.py:151-160)السلامة (مُثبتة مختبرياً): يتم قبول مفتاح المضيف المجهول. المختبر: AutoAddPolicy اتصل (autoadd=yes). فشل RejectPolicy (reject-control=yes).
نفس الجلسة، الرد على exec_command(device_script)يتم تحليل stdout كـ DeviceIdentity (example-add-devices.py:161-187)السلامة (مُثبتة مختبرياً): أعاد exec هوية JSON تحتوي على PFSENSE-API-ENROLL-AUTOADD-WITNESS (identity-json=yes).
نفس MITM، قراءة حمولة execdevice_script هو بقايا curl -d من G1 الخاص بـ ControllerSummaryاستطلاع (مُستنتج من المصدر): مفتاح هوية المتحكم، Netgard vpn_pubkey / vpn_netkey / عناوين الاستماع. لم يتم تفريغها بواسطة هذا المختبر.
نفس MITM، مصادقة كلمة المرور أو المفتاحSSHUSER / SSHPASS أو agent/keys (example-add-devices.py:156-160)استطلاع (مُستنتج): بيانات الاعتماد أو المفاتيح المقدمة إلى المضيف المزيف. استخدم المختبر مصادقة كلمة المرور فقط كمسار SSHPASS النموذجي.
نفس stdout JSON، add_controlled_device.syncPOST /mim/devices على المتحكم الحقيقيالسلامة (مُستنتج): يسجل مفاتيح Noise/VPN الخاصة بالمهاجم و address. بالإضافة إلى المصافحة لم تُنفذ في هذا المختبر.
MITM هو خادم SSHأي exec أرسله العميل، كـ SSHUSERالسلامة / التوفر (مُستنتج): تشغيل أو إسقاط أو تخطي سكربت التسجيل. تحدث استدعاءات Unix-socket على الجهاز الحقيقي فقط إذا قام MITM بإعادة توجيهها.

مُثبت مختبرياً مقابل مُستنتج: اتصال AutoAdd، فشل RejectPolicy، وهوية JSON مع الشاهد هي مخبرية. تفريغ مفتاح المتحكم، سرقة بيانات الاعتماد، POST /mim/devices لجهاز مزيف، وتشغيل curls الحقيقية لـ unix-socket كلها مُستنتجة من نفس مسار العينة.

يتطلب: تشغيل المشغل للعينة الرسمية ضد عنوان SSH لم يتم تثبيت مفتاح المضيف الخاص به مسبقاً، مع ترك AutoAdd مفعلاً. مسار الشبكة إلى ذلك SSH. AC:H هو الاتصال الأول / على المسار.

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

السطحالسبب
RejectPolicy على نفس المضيف المجهولالمختبر: reject-control=yes. يرفض Paramiko المفتاح.
محطة عمل بمفاتيح جهاز حقيقية في known_hosts و سطر AutoAdd مُزالالوضع المقصود في التعليق. لا تحمّل العينة تلك المفاتيح إلا إذا أضفت الاستدعاء.
تسجيل دخول متحكم HTTPSverify_ssl=False هو بقايا عينة شقيقة (G9)، وليس هذا الحوض.
Unix-socket MIM على الجدار الناري الحقيقيفقط إذا قام MITM بإعادة توجيه exec. لا يتحدث هذا المختبر أبداً إلى /var/run/pfnet-controller.sock.
Client المُنشأ الافتراضي verify_ssl=Trueالافتراضي في المكتبة ليس البقايا. العينات تفرض False.
بالإضافة إلى RBAC / :8443 المباشرهذا المختبر هو أداة Paramiko. لم أتحدث إلى متحكم Plus.
الإنترنت غير المصادق إلى 8443تسجيل الدخول لا يزال يصدر JWT. ليس هذا الاكتشاف.
Diagnostics PHP/shellصلاحية المسؤول المقصودة لـ fleet JWT. ليس هذا الاكتشاف.

كيف وجدته

ثبّتت github.com/Netgate/pfsense-api main b4acd7ca21dbca739a530403a1f62a7440f7726f بعد بقايا CE WebGUI. هذه الشجرة هي OpenAPI بالإضافة إلى Python المُنشأ لـ Plus Nexus MIM. قرأت حلقة التسجيل في example-add-devices.py. سياسة مفتاح المضيف هي AutoAdd. الأسرار تجلس على نفس قناة exec. لا تستدعي العينة أبداً load_system_host_keys().

المنعطفات الخاطئة المسجلة بالفعل: التعامل مع AutoAdd كأنه للمختبر فقط (التعليق هو إلغاء اشتراك، وليس اشتراكاً)؛ افتراض تحميل known_hosts؛ دمج هذا في بقايا استيفاء shell الخاص بـ ControllerSummary؛ اختبار Plus مباشرة؛ الادعاء بأن هذا HTTPS غير مصادق إلى :8443.

المسرح: صدفة عكسية. الوحي هو RejectPolicy fail بالإضافة إلى AutoAdd connect بالإضافة إلى هوية JSON مع الشاهد.

المختبر

python3 pfsense-api-enroll-autoadd-Abraxas-Labs.py

أو

cd lab
./run.sh

Loopback SSH 127.0.0.1:19111. مشروع Compose pfsense-api-enroll-autoadd. CONTROL: RejectPolicy يفشل عند المضيف غير المعروف. INJECT: AutoAddPolicy من العينة الرسمية، connect، exec_command لسكربت التسجيل؛ stdout هو JSON الهوية مع الشاهد. لا يوجد متحكم Plus مباشر. الشاهد PFSENSE-API-ENROLL-AUTOADD-WITNESS. يتم تفكيك الحزمة بعد التشغيل.

SUCCESS PFSENSE-API-ENROLL-AUTOADD autoadd=yes reject-control=yes identity-json=yes PFSENSE-API-ENROLL-AUTOADD-WITNESS

الإصلاح

تنزيل الأداة