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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sonic-gnmi-noauth — يوثّق ويعيد إنتاج ثغرة مصادقة من نوع fail-open في SONiC gNMI حيث تسمح خريطة UserAuth الفارغة بعمليات كتابة gNMI Set وgNOI دون مصادقة، مع بيئة مختبر loopback. | Kitploit
أدوات/GitHubGitHub/abraxas/sonic-gnmi-noauth
أمان الأنظمة المدمجةتحليل الثغرات الأمنيةالاستغلالأمن الشبكاتاختبار الاختراقأمان الأجهزة وإنترنت الأشياءالمصادقةسوء التكوينمختبرات وتدريب عملي
GitHubabraxas/sonic-gnmi-noauth

sonic-gnmi-noauth

يوثّق ويعيد إنتاج ثغرة مصادقة من نوع fail-open في SONiC gNMI حيث تسمح خريطة UserAuth الفارغة بعمليات كتابة gNMI Set وgNOI دون مصادقة، مع بيئة مختبر loopback.

7منذ 15 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - sonic-gnmi-noauth

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  sonic-gnmi-noauth

sonic-gnmi-noauth

SONiC gNMI f13a08e0440f - SONiC Foundation / sonic-net

نظام تشغيل SONiC المجتمعي. ليس Dell Enterprise SONiC. وليس SonicWall SonicOS. اللجنة لا تصدر CVEs. يعرف gnmi-native.sh أن حذف --client_auth كان يعطّل المصادقة بالكامل، لذا عندما يكون user_auth مفقودًا فإنه يفرض وضع الشهادة. فشل مغلق. ثم لا يمرر أبدًا --ca_crt عند غياب الشهادات. يقوم setupFlags بإلغاء تعيين الشهادة لعدم وجود CA. ويعتبر authenticate() الخريطة الفارغة نجاحًا. تبقى كتابات native و translib مُجمَّعة (ENABLE_NATIVE_WRITE=y). مجموعتا أعلام في الإنتاج، نفس التخطي: ToR الافتراضي --noTLS --bind_address 127.0.0.1؛ SmartSwitch DPU --insecure --allow_no_client_auth، bind فارغ، جميع الواجهات، المنفذ 8080.

UserAuth الفارغ بعد إلغاء تعيين الشهادة يعني gNMI Set وكتابات gNOI بدون مصادقة. DPU بدون شهادات يكون عن بُعد على :8080.

IDلا يوجد CVE بعد
CWECWE-306، CWE-287
CVSSحرج: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (DPU بدون شهادة). ToR الافتراضي هو نفس التخطي على 127.0.0.1:8080 (عالي، محلي).
المنتجsonic-gnmi / sonic-buildimage
المتأثرsonic-gnmi حتى master f13a08e0440f؛ المشغّل 9495839742e4
المصادقةبدون مصادقة
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

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

على SmartSwitch DPU بدون شهادات gNMI: من الشبكة، TCP :8080، بدون JWT، بدون PAM، بدون شهادة عميل. استدعاء gnmi.gNMI/Set (native CONFIG_DB / translib). استدعاء gnoi.debug.Debug. إعادة التشغيل. إعادة ضبط المصنع. File.Put تحت /tmp، /var/tmp، /host.

على ToR/leaf افتراضي بدون شهادات: أي عملية تستطيع الوصول إلى 127.0.0.1:8080 تفعل الشيء نفسه. حاوية gnmi تستخدم شبكة المضيف، لذا فإن ذلك loopback هو loopback المضيف.

هذا إعادة كتابة إعدادات السويتش، وأوامر المضيف كـ admin، دون مصادقة. القائمة البيضاء لـ Debug تتضمن docker، config، redis-cli، sonic-installer، reboot. المستخدم الافتراضي admin موجود في docker و %sudo. ليس كلمة مرور admin الافتراضية الموثقة. لا يزال KillProcess يُرجع Unauthenticated عند UserAuth الفارغ. لا تستخدم ذلك كأوراكل للنجاح.

كيف وجدته

قرأت SECURITY.md أولًا. sonic-net/SONiC هو الويكي. الكود موجود في أشجار sonic-net/* الشقيقة. ثم عشر عمليات بحث على تلك الإصدارات المثبتة: حقن CLI، مصادقة REST، gNMI Set، hostcfgd PAM، RESTCONF، ZTP، صورة Redis/sshd/sudo، إعدادات FEATURE الافتراضية، GCU/SSTI، DHCP/LLDP/SNMP. بدون سويتش حي. كان المعيار هو حرج/عالي.

معظم ذلك المعيار مغلق بالفعل أو ليس افتراضيًا. sonic-restapi هو INCLUDE_RESTAPI ?= n. مشغّل RESTCONF في الإنتاج يفرض PAM. Redis المضيف على 127.0.0.1 بدون requirepass، وهو قفزة أولى وليس اكتشافًا. حاوية gnmi ليست اختيارية. INCLUDE_SYSTEM_GNMI = y. ميزة gnmi مفعّلة. شبكة المضيف، pid المضيف، userns المضيف.

لم أقم بتشغيل صورة sonic-vs كاملة. المختبر عبارة عن gRPC رقيق يغلّف مستخلصات مُتحقق من تجزئتها بـ SHA256 من setupFlags و authenticate() من الإصدار f13a08e0440f. كلا المستمعين أرجعا SONIC-GNMI-NOAUTH-WITNESS مع auth_enabled=false و enable_native_write=true. UserAuth بكلمة مرور بدون بيانات اعتماد هو Unauthenticated. هذا هو التخطي الحقيقي، وليس بديلًا ينجح دائمًا.

المنعطفات الخاطئة المسجلة بالفعل: KillProcess Unauthenticated (هذا الـ RPC يرفض بالفعل UserAuth الفارغ - المختبر يتطلب تخطي authenticate() في مسار Set)؛ Probe OK عندما يكون UserAuth بكلمة مرور مفعّلًا وبدون بيانات اعتماد (عندها يكون الأوراكل بديلًا)؛ أداة gNOI Debug docker، حمولة nsenter، reverse shell. مسرح. توجيه هذا إلى جهاز Dell Enterprise SONiC، أو SonicWall. منتج خاطئ.

المختبر

cd lab
./run.sh

استهدف فقط 127.0.0.1:18080 (ToR نص صريح) و 127.0.0.1:18081 (DPU TLS غير آمن). gRPC رقيق، وليس صورة DPU كاملة. مستخلصات الإصدار المُجزأة عند البناء مقابل sonic-gnmi f13a08e0440f.

IOC tor-connect 127.0.0.1:18080 plaintext no-metadata
IOC tor-check witness=SONIC-GNMI-NOAUTH-WITNESS auth_enabled=false enable_native_write=true user_auth_any=false mode=tor
IOC dpu-connect 127.0.0.1:18081 tls-insecure no-client-cert no-metadata
IOC dpu-check witness=SONIC-GNMI-NOAUTH-WITNESS auth_enabled=false enable_native_write=true user_auth_any=false mode=dpu
IOC tor-negative status=UNAUTHENTICATED
IOC dpu-negative status=UNAUTHENTICATED
SUCCESS SONIC-GNMI-NOAUTH who=unauth tor=18080 dpu=18081 SONIC-GNMI-NOAUTH-WITNESS

الإصلاح

إذا كان UserAuth فارغًا بعد إزالة الشهادة، فلا تقدّم Set/gNOI write، أو لا تستمع خارج loopback. انسخ UserAuth على مسار --noTLS أيضًا. وفّر شهادات الخادم و CA بحيث يتم تعيين --ca_crt ولا يتم إلغاء تعيين وضع الشهادة. لا تشغّل SmartSwitch DPU بدون شهادة (--insecure --allow_no_client_auth مع CA فارغ) على :8080 قابل للوصول. يجب أن يُرجع كلا المستمعين Unauthenticated عند UserAuth الفارغ على مسار الكتابة.

المراجع

  • sonic-gnmi f13a08e0440f · telemetry.go · server.go · whitelist.go · command.go
  • sonic-buildimage 9495839742e4 · gnmi-native.sh · rules/config · init_cfg.json.j2
  • SECURITY.md
  • CWE-306 · CWE-287

الترخيص

GNU Affero GPL v3.0. انظر LICENSE. مختبر loopback فقط. بدون ضمان.

تنزيل الأداة