Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
sonic-gnmi-noauth — SONiC gNMI में एक fail-open प्रमाणीकरण दोष का दस्तावेजीकरण और पुनरुत्पादन करता है, जहाँ एक खाली UserAuth map अनधिकृत gNMI Set और gNOI writes की अनुमति देता है, साथ में एक loopback lab harness भी। | Kitploit
उपकरण/GitHubGitHub/abraxas/sonic-gnmi-noauth
एम्बेडेड सिस्टम सुरक्षाभेद्यता विश्लेषणशोषणनेटवर्क सुरक्षापेनिट्रेशन टेस्टिंगहार्डवेयर और IoT सुरक्षाप्रमाणीकरणगलत कॉन्फ़िगरेशनलैब और अभ्यास
GitHubabraxas/sonic-gnmi-noauth

sonic-gnmi-noauth

SONiC gNMI में एक fail-open प्रमाणीकरण दोष का दस्तावेजीकरण और पुनरुत्पादन करता है, जहाँ एक खाली UserAuth map अनधिकृत gNMI Set और gNOI writes की अनुमति देता है, साथ में एक loopback lab harness भी।

197 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

Abraxas Labs - sonic-gnmi-noauth

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

राइट-अप: https://abraxaslabs.tech/research/sonic-gnmi-noauth

sonic-gnmi-noauth

SONiC gNMI f13a08e0440f - SONiC Foundation / sonic-net

कम्युनिटी SONiC NOS। Dell Enterprise SONiC नहीं। SonicWall SonicOS नहीं। कमेटी CVE जारी नहीं करती। gnmi-native.sh जानता है कि --client_auth छोड़ने से पहले प्रमाणीकरण पूरी तरह बंद हो जाता था, इसलिए जब user_auth अनुपस्थित होता है तो यह cert मोड को बाध्य करता है। फेल-क्लोज़्ड। फिर जब certs अनुपस्थित होते हैं तो यह कभी --ca_crt पास नहीं करता। setupFlags cert को unset करता है क्योंकि कोई CA नहीं है। authenticate() खाली map को सफलता मानता है। Native और translib writes कंपाइल्ड-इन रहते हैं (ENABLE_NATIVE_WRITE=y)। दो प्रोडक्शन फ्लैग सेट, वही स्किप: डिफ़ॉल्ट ToR --noTLS --bind_address 127.0.0.1; SmartSwitch DPU --insecure --allow_no_client_auth, खाली bind, सभी इंटरफ़ेस, पोर्ट 8080।

cert unset के बाद खाली UserAuth का अर्थ है अनप्रमाणित gNMI Set और gNOI writes। बिना certs वाला 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 no-cert)। डिफ़ॉल्ट ToR 127.0.0.1:8080 पर वही स्किप है (High, लोकल)।
उत्पादsonic-gnmi / sonic-buildimage
प्रभावितsonic-gnmi master f13a08e0440f तक; launcher 9495839742e4
प्रमाणीकरणअनप्रमाणित
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1

एक हमलावर क्या कर सकता है

बिना gNMI certs वाले SmartSwitch DPU पर: नेटवर्क से, TCP :8080, कोई JWT नहीं, कोई PAM नहीं, कोई client cert नहीं। gnmi.gNMI/Set कॉल करें (native CONFIG_DB / translib)। gnoi.debug.Debug कॉल करें। रीबूट करें। फैक्टरी रीसेट करें। /tmp, /var/tmp, /host के अंतर्गत File.Put करें।

बिना certs वाले डिफ़ॉल्ट ToR/leaf पर: कोई भी प्रोसेस जो 127.0.0.1:8080 तक पहुँच सकती है, वही कर सकती है। gnmi कंटेनर host net है, इसलिए वह loopback होस्ट का है।

यह स्विच कॉन्फ़िग रीराइट है, और admin के रूप में होस्ट कमांड, बिना प्रमाणीकरण के। Debug whitelist में docker, config, redis-cli, sonic-installer, reboot शामिल हैं। डिफ़ॉल्ट admin docker और %sudo में है। दस्तावेज़ित डिफ़ॉल्ट admin पासवर्ड नहीं। खाली UserAuth पर KillProcess अभी भी Unauthenticated लौटाता है। इसे सफलता के oracle के रूप में उपयोग न करें।

मैंने इसे कैसे खोजा

मैंने पहले SECURITY.md पढ़ा। sonic-net/SONiC विकी है। कोड सहोदर sonic-net/* ट्री में है। फिर उन pins पर दस hunts: CLI injection, REST auth, gNMI Set, hostcfgd PAM, RESTCONF, ZTP, image Redis/sshd/sudo, FEATURE defaults, GCU/SSTI, DHCP/LLDP/SNMP। कोई लाइव स्विच नहीं। मानक था Critical/High।

उस बार का अधिकांश हिस्सा पहले से ही बंद है या डिफ़ॉल्ट नहीं है। sonic-restapi INCLUDE_RESTAPI ?= n है। RESTCONF का प्रोडक्शन लॉन्चर PAM को बाध्य करता है। होस्ट Redis 127.0.0.1 पर है और इसमें कोई requirepass नहीं है, जो कि पहला हॉप है, कोई निष्कर्ष नहीं। gnmi कंटेनर वैकल्पिक नहीं है। INCLUDE_SYSTEM_GNMI = y। FEATURE gnmi सक्षम है। होस्ट नेट, होस्ट pid, होस्ट userns।

मैंने पूरा sonic-vs इमेज नहीं खड़ा किया। लैब एक पतला gRPC है जो पिन f13a08e0440f से setupFlags और authenticate() के SHA256-जाँचे गए एक्सट्रैक्ट को रैप करता है। दोनों लिसनरों ने auth_enabled=false और enable_native_write=true के साथ SONIC-GNMI-NOAUTH-WITNESS लौटाया। बिना क्रेड्स के पासवर्ड UserAuth Unauthenticated है। यही असली स्किप है, कोई ऐसा स्टब नहीं जो हमेशा सफल होता है।

पहले से दर्ज गलत मोड़: KillProcess Unauthenticated (वह RPC पहले से ही खाली UserAuth को अस्वीकार करता है - लैब के लिए Set-path authenticate() स्किप आवश्यक है); पासवर्ड UserAuth चालू होने और क्रेड्स न होने पर Probe OK (तब ओरेकल एक स्टब है); एक gNOI Debug docker गैजेट, nsenter पेलोड, रिवर्स शेल। नाटक। इसे किसी Dell Enterprise SONiC बॉक्स, या SonicWall पर इंगित करना। गलत उत्पाद।

लैब

cd lab
./run.sh

केवल 127.0.0.1:18080 (ToR plaintext) और 127.0.0.1:18081 (DPU TLS-insecure) को लक्षित करें। पतला 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 लेखन को सेव न करें, या लूपबैक से बाहर सुनना न करें। --noTLS पथ पर भी UserAuth की प्रतिलिपि बनाएँ। सर्वर प्रमाणपत्र और एक CA प्रावधान करें ताकि --ca_crt सेट हो और प्रमाणपत्र मोड अनसेट न रहे। किसी पहुँच-योग्य :8080 पर SmartSwitch DPU बिना-प्रमाणपत्र (--insecure --allow_no_client_auth खाली CA के साथ) न चलाएँ। लेखन पथ पर खाली UserAuth के लिए दोनों लिसनरों को Unauthenticated लौटाना चाहिए।

संदर्भ

  • 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। केवल लूपबैक लैब। कोई वारंटी नहीं।

टूल डाउनलोड करें