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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pfsense-api-enroll-json-ssh — pfSense Plus MIM API toolkit b4acd7ca - عالي - عن بُعد - صلاحيات متبقية - example-add-devices.py JSON إلى SSH | Kitploit
أدوات/GitHubGitHub/abraxas/pfsense-api-enroll-json-ssh
تحليل الثغرات الأمنيةتحليل الكودالاستغلالأمن الشبكاتاختبار الاختراقالقيادة والسيطرةالأوراق والأبحاثالفريق الأحمرمختبرات وتدريب عملي
GitHubabraxas/pfsense-api-enroll-json-ssh

pfsense-api-enroll-json-ssh

pfSense Plus MIM API toolkit b4acd7ca - عالي - عن بُعد - صلاحيات متبقية - example-add-devices.py JSON إلى SSH

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - pfsense-api-enroll-json-ssh

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

pfsense-api-enroll-json-ssh

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

مجموعة أدوات pfSense Plus MIM API (b4acd7ca) - Netgate

example-add-devices.py هي الطريقة الموثّقة لتسجيل وحدة تحكم Nexus على كل جهاز pfSense Plus عبر SSH. تقوم بـ json.dumps لـ GET /mim/controller/identity، وتستبدل " فقط، ثم تستخدم .format على تلك الكتلة مرتين داخل سكربت POSIX بصيغة curl -d محاط بعلامات اقتباس مزدوجة. يشغّل Paramiko exec_command السكربت باسم SSHUSER (النموذج الافتراضي admin) على كل عنوان في pfsense_addresses.

json.dumps مع replace('"', '\\"') يُبقي علامات الاقتباس مغلقة. $()، والعلامات الخلفية، و${...} ليست محارف JSON خاصة. تبقى فعّالة داخل سلسلة -d المزدوجة الاقتباس التي لا تزال مفتوحة. exec في OpenSSH هو صدفة. تلك هي الصلاحية المتبقية.

هذه ليست حزمة REST CE الخاصة بطرف ثالث. إنها عميل OpenAPI الرسمي والنماذج الخاصة بوحدة تحكم pfSense Plus Nexus Multi-instance Management. لم أقم بتأليف Plus. المختبر هو الاستيفاء المثبّت بالإضافة إلى /var/run/pfnet-controller.sock وهمي.

المعرّفلا يوجد CVE بعد
الفئةصلاحية متبقية (JSON وحدة التحكم داخل SSH التسجيل)
الوصولعن بُعد (على المسار إلى CONTROLLER_URL بينما يضبط النموذج verify_ssl=False، أو كاتب لحقول سلسلة ControllerSummary)
CWECWE-78
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 MIM)
المتأثرmain العام b4acd7ca21dbca739a530403a1f62a7440f7726f example-add-devices.py
المصادقةيشغّل المشغّل النموذج الموثّق. المهاجم على المسار، أو يمكنه كتابة سلاسل الملخص. تسجيل الدخول إلى وحدة التحكم لا يزال يحدث أولاً.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:19101 فقط. لا توجد صورة Plus.

الجزء 1 من سلسلة الصلاحيات المتبقية في Nexus MIM. الشقيقات: enroll-autoadd، unix-sock-noauth، example-ssl-verify (G9 هي كيفية تشكيل نظير على المسار لهذا JSON)، fleet-jwt، export-key-get.

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

الصلاحية المتبقية هي استبدال أوامر داخل سلسلة -d المزدوجة الاقتباس التي لا تزال مفتوحة. json.dumps مع تمرير علامات الاقتباس يُبقيان السلسلة مغلقة. $()، والعلامات الخلفية، و${...} تنجو وتُشغَّل باسم SSHUSER عندما ينفّذ OpenSSH السكربت عبر exec.

السلامة

الطريقةنقطة الوصولالصلاحيةمُثبت مختبريًا أو مُستنتج
ضع $() (أو backticks / ${...}) في حقل نصي ControllerSummary، ثم دع المشغّل يشغّل example-add-devices.pycontroller_info.replace('"', '\\"') ثم device_script.format(...) ثم sshclient.exec_command(device_script) (example-add-devices.py ~104-161)Shell كـ SSHUSER (افتراضي العينة admin؛ عادةً ما يكون SSH الخاص بمسؤول pfSense مكافئًا لـ root) على كل عنوان في pfsense_addressesمُثبت مختبريًا على الاستيفاء: INJECT vpn_listenaddr=$(printf %s PFSENSE-API-ENROLL-JSON-SSH-WITNESS >/oracle/witness) نجا من الهروب الخاص بالاقتباسات فقط (dollar-paren-survived=yes) وكتب الشاهد (inject-oracle=yes). Paramiko/SSH نفسه ليس في هذا الـ compose.
TLS MITM لـ GET /api/mim/controller/identity بينما تستخدم العينة verify_ssl=Falseنفس تحليل ControllerSummary ثم نفس السكربتنفس الـ shell. جميع حقول ControllerSummary هي str أو Unset، لذا يكفي جسم JSON من MITM يُحلَّل نوعيًا.مُستنتج من العينة (example-add-devices.py تسجيل الدخول Client و AuthenticatedClient كلاهما يضبط verify_ssl=False). المختبر ينشر كائن الملخص مباشرةً. شقيق: example-ssl-verify.
اكتب أحرف استبدال في name أو vpn_listenaddr على المتحكم، وانتظر التسجيل التالينفس نقطة الوصولنفس الـ shell عندما يشغّل المشغّل العينة لاحقًامُستنتج. يحتاج إلى كتابة مسبقة لتلك الحقول (بالفعل مسؤول متحكم، أو الشقيق unix-sock-noauth).
نفس الـ shell، مفاتيح إضافية عبر ControllerSummary.additional_propertiesنفس التفريغ يتضمن مفاتيح MITM إضافية (to_dict ينسخ المتبقي بعد from_dict)حقول إضافية تنتقل إلى -d وإلى الـ shellمُستنتج من to_dict. المختبر يحقن عبر vpn_listenaddr فقط.

الاستطلاع

الطريقةنقطة الوصولالصلاحيةمُثبت مختبريًا أو مُستنتج
اقرأ stdout لمحطة عمل التسجيلprint("CONTROLLER_SUMMARY:", controller_info)هوية المتحكم key، Netgard vpn_pubkey / vpn_netkey / عناوين الاستماعمُستنتج من طباعة العينة. المختبر لا يطبع كتلة متحكم حية.
تنصّت أو MITM على قناة تنفيذ SSHحمولة exec_command(device_script) هي curl -d JSONنفس هوية المتحكم على السلك إلى كل جهازمُستنتج. AutoAddPolicy على تلك القناة هو تقرير شقيق.
حالة CONTROL على الأداةPOST /case name=controlvpn_listenaddr الصادق يصل إلى unix socket دون تغييرمُثبت مختبريًا. 192.0.2.10:51820 نُشر كما هو، بدون oracle (control-clean=yes).

التوافر

الطريقةنقطة الوصولالصلاحيةمُثبت مختبريًا أو مُستنتج
أمر محقون كـ SSHUSERنفس exec_commandإيقاف pfnet-controller، محو التسجيل، إعادة التشغيل، أو إسقاط الجهاز من MIM بأي طريقة أخرىمُستنتج كأثر جانبي للـ shell. المختبر يكتب ملف الشاهد فقط.

يتطلب: مسار العينة الرسمي (تسجيل المشغّل). UI:N للنظير على المسار بمجرد تشغيل تلك العينة. تسجيل الدخول إلى المتحكم لا يزال يحدث أولاً.

Shell كـ admin على جهاز pfSense ليس "the JWT can php." إنها محطة عمل التسجيل تسلّم الجدار الناري كتلة متحكم عبر sh -c. من هناك، JSON المُشكَّل هو ما ينشره الجهاز إلى /var/run/pfnet-controller.sock بدون JWT (unix-sock-noauth). AutoAddPolicy يعني أن نظير SSH الذي يستقبل هذا السكربت غير مثبّت (enroll-autoadd). G9 verify_ssl=False هو كيف يكتب النظير على المسار JSON في المقام الأول.

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

تنزيل الأداة