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 में

रिपॉजिटरी देखें
1 दिन पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

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

Class: Privilege leftover Reach: Remote

pfSense Plus MIM API toolkit (b4acd7ca) - Netgate

example-add-devices.py प्रत्येक pfSense Plus डिवाइस पर SSH के माध्यम से Nexus controller को रजिस्टर करने का प्रलेखित तरीका है। यह GET /mim/controller/identity को json.dumps करता है, केवल " को बदलता है, फिर उस blob को दो बार .format करके एक double-quoted curl -d POSIX स्क्रिप्ट में डालता है। Paramiko exec_command स्क्रिप्ट को pfsense_addresses में प्रत्येक पते पर SSHUSER (नमूना डिफ़ॉल्ट admin) के रूप में चलाता है।

json.dumps के साथ replace('"', '\\"') उद्धरणों को बंद रखता है। $(), backticks, और ${...} JSON मेटाकैरेक्टर नहीं हैं। वे अभी भी खुली double-quoted -d स्ट्रिंग के अंदर सक्रिय रहते हैं। OpenSSH exec एक शेल है। यही leftover है।

यह तृतीय-पक्ष CE REST पैकेज नहीं है। यह pfSense Plus Nexus Multi-instance Management controller के लिए आधिकारिक OpenAPI क्लाइंट और नमूने हैं। मैंने Plus नहीं लिखा। लैब में pinned interpolation और एक mock /var/run/pfnet-controller.sock है।

IDअभी तक कोई CVE नहीं
ClassPrivilege leftover (controller JSON से enrollment SSH में)
ReachRemote (CONTROLLER_URL तक on-path, जबकि नमूना verify_ssl=False सेट करता है, या ControllerSummary स्ट्रिंग फ़ील्ड का लेखक)
CWECWE-78
CVSSHigh: 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
ProductNetgate/pfsense-api (Plus MIM toolkit)
Affectedसार्वजनिक main b4acd7ca21dbca739a530403a1f62a7440f7726f example-add-devices.py
Authऑपरेटर प्रलेखित नमूना चलाता है। हमलावर on-path है, या summary स्ट्रिंग्स लिख सकता है। controller में लॉगिन अभी भी पहले होता है।
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1:19101। कोई Plus image नहीं।

Nexus MIM leftover श्रृंखला का भाग 1। सहोदर: enroll-autoadd, unix-sock-noauth, example-ssl-verify (G9 यह है कि एक on-path peer इस JSON को कैसे आकार देता है), fleet-jwt, export-key-get।

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

leftover अभी भी खुली double-quoted -d स्ट्रिंग के अंदर command substitution है। json.dumps के साथ quote pass स्ट्रिंग को बंद रखता है। $(), backticks, और ${...} बच जाते हैं और तब SSHUSER के रूप में चलते हैं जब OpenSSH स्क्रिप्ट को exec करता है।

Integrity

विधिसिंकविशेषाधिकारप्रयोगशाला-प्रमाणित या अनुमानित
ControllerSummary स्ट्रिंग फ़ील्ड में $() (या बैकटिक्स / ${...}) डालें, फिर ऑपरेटर को example-add-devices.py चलाने देंcontroller_info.replace('"', '\\"') फिर device_script.format(...) फिर sshclient.exec_command(device_script) (example-add-devices.py ~104-161)pfsense_addresses में प्रत्येक पते पर SSHUSER के रूप में शेल (नमूना डिफ़ॉल्ट admin; pfSense admin SSH आमतौर पर root-समतुल्य होता है)इंटरपोलेशन पर प्रयोगशाला-प्रमाणित: INJECT vpn_listenaddr=$(printf %s PFSENSE-API-ENROLL-JSON-SSH-WITNESS >/oracle/witness) केवल-कोट एस्केप से बच गया (dollar-paren-survived=yes) और witness लिखा (inject-oracle=yes)। Paramiko/SSH स्वयं इस compose में नहीं है।
GET /api/mim/controller/identity का TLS MITM जबकि नमूना verify_ssl=False का उपयोग करता हैवही ControllerSummary पार्स फिर वही स्क्रिप्टवही शेल। सभी ControllerSummary फ़ील्ड str या Unset हैं, इसलिए एक MITM JSON बॉडी जो टाइप-पार्स होती है पर्याप्त है।नमूने से अनुमानित (example-add-devices.py लॉगिन Client और AuthenticatedClient दोनों verify_ssl=False सेट करते हैं)। प्रयोगशाला सारांश ऑब्जेक्ट को सीधे पोस्ट करती है। सहोदर: example-ssl-verify।
कंट्रोलर पर name या vpn_listenaddr में प्रतिस्थापन अक्षर लिखें, अगले enroll की प्रतीक्षा करेंवही सिंकवही शेल जब ऑपरेटर अगली बार नमूना चलाता हैअनुमानित। उन फ़ील्ड्स का पूर्व लेखन आवश्यक है (पहले से कंट्रोलर-एडमिन, या unix-sock-noauth सहोदर)।
वही शेल, ControllerSummary.additional_properties के माध्यम से अतिरिक्त कुंजियाँवही डंप में अतिरिक्त MITM कुंजियाँ शामिल हैं (to_dict from_dict के बाद बचे हुए को कॉपी करता है)अतिरिक्त फ़ील्ड -d में और शेल में चले जाते हैंto_dict से अनुमानित। प्रयोगशाला केवल vpn_listenaddr के माध्यम से इंजेक्ट करती है।

Recon

विधिसिंकविशेषाधिकारप्रयोगशाला-प्रमाणित या अनुमानित
enrollment वर्कस्टेशन stdout पढ़ेंprint("CONTROLLER_SUMMARY:", controller_info)कंट्रोलर पहचान key, Netgard vpn_pubkey / vpn_netkey / listen पतेनमूना प्रिंट से अनुमानित। प्रयोगशाला लाइव कंट्रोलर ब्लॉब प्रिंट नहीं करती।
SSH exec चैनल को सूँघें या MITM करेंexec_command(device_script) पेलोड curl -d JSON हैप्रत्येक डिवाइस के लिए वायर पर वही कंट्रोलर पहचानअनुमानित। उस चैनल पर AutoAddPolicy एक सहोदर रिपोर्ट है।
गैजेट पर CONTROL केसPOST /case name=controlईमानदार vpn_listenaddr unix सॉकेट तक अपरिवर्तित पहुँचता हैप्रयोगशाला-प्रमाणित। 192.0.2.10:51820 यथावत पोस्ट किया गया, कोई oracle नहीं (control-clean=yes)।

उपलब्धता

विधिसिंकविशेषाधिकारप्रयोगशाला-प्रमाणित या अनुमानित
SSHUSER के रूप में इंजेक्ट किया गया कमांडवही exec_commandpfnet-controller रोकें, enrollment मिटाएँ, रीबूट करें, या अन्यथा डिवाइस को MIM से हटा देंशेल का अनुमानित दुष्प्रभाव। प्रयोगशाला केवल witness फ़ाइल लिखती है।

आवश्यक: आधिकारिक नमूना पथ (ऑपरेटर enroll)। उस नमूने के चलने के बाद on-path पीयर के लिए UI:N। कंट्रोलर में लॉगिन अभी भी पहले होता है।

pfSense बॉक्स पर admin के रूप में शेल "JWT php कर सकता है" नहीं है। यह enrollment वर्कस्टेशन है जो sh -c के माध्यम से फ़ायरवॉल को कंट्रोलर ब्लॉब सौंपता है। वहाँ से आकार दिया गया JSON वही है जो डिवाइस बिना JWT के /var/run/pfnet-controller.sock पर POST करता है (unix-sock-noauth)। AutoAddPolicy का अर्थ है कि इस स्क्रिप्ट को प्राप्त करने वाला SSH पीयर पिन नहीं है (enroll-autoadd)। G9 verify_ssl=False वह तरीका है जिससे on-path पीयर पहले स्थान पर JSON लिखता है।

निकटवर्ती सतह जो बंद रहती है

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