
pfSense Plus MIM API toolkit b4acd7ca - उच्च - रिमोट - विशेषाधिकार शेष - GET export-key निजी कुंजियाँ
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-api-export-key-get
Class: Privilege leftover Reach: Remote
pfSense Plus MIM API (Netgate) pin b4acd7ca - public OpenAPI + generated Python client for the Nexus Multi-instance Management controller.
GET /system/certauth/{refid}/export-key को "Download the CA certificate signing key" के रूप में प्रलेखित किया गया है। GET /system/certificates/{refid}/export-key "Download the certificate's private key" है। GET /system/certificates/{refid}/export-p12 एक एकीकृत PKCS12 फ़ाइल है बिना पासवर्ड सुरक्षा के। Docs /system के अंतर्गत GET को mim_system_read / mim_read_system पर मैप करते हैं। mim_view को बिना किसी गोपनीय जानकारी के रूप में प्रलेखित किया गया है। Spec में कोई securitySchemes नहीं है और कोई per-op security नहीं है। Generated _get_kwargs method के साथ एक quoted URL है। Authorization वहाँ कभी नहीं जोड़ा जाता।
यह php नहीं है, shell नहीं है, और firmware POST नहीं है। G9 sample TLS skip या G6 fleet token से चुराया गया JWT इन GETs को कॉल करने के लिए पर्याप्त है। क्या Plus पर read-shaped MIM JWT पर्याप्त है, यही leftover है। मैंने Plus नहीं चलाया। Plus RBAC निष्पादित नहीं किया गया।
| ID | अभी तक कोई CVE नहीं |
| Class | Privilege leftover |
| Reach | Remote (Nexus controller को authenticated HTTP; lab सार्वजनिक client contract है) |
| CWE | CWE-200, CWE-862 |
| CVSS | High: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N यदि read-shaped MIM JWT इन GETs को कॉल कर सकता है |
| Product | Netgate/pfsense-api (pfSense Plus Nexus MIM controller OpenAPI + generated client) |
| Affected | pin b4acd7ca21dbca739a530403a1f62a7440f7726f (2026-05-25)। OpenAPI 3.0.3 title pfSense API version 1.0। Plus 25.11+। CE REST package नहीं। |
| Auth | प्रलेखित Nexus JWT (POST /login, Bearer)। Lab सार्वजनिक OpenAPI के साथ generated _get_kwargs contract है। Plus RBAC निष्पादित नहीं किया गया। |
| License | GNU Affero GPL v3.0 |
| Lab | केवल 127.0.0.1:19141। कोई Plus image नहीं। |
मैंने github.com/Netgate/pfsense-api b4acd7ca21dbca739a530403a1f62a7440f7726f को pin किया। उस दिन के बाद master नहीं। तृतीय-पक्ष CE package jaredhendrickson/pfsense-api नहीं।
Series hub: pfsense-api-nexus-mim। यह pack Part 4 है।
Docs /system के अंतर्गत GET को mim_system_read / mim_read_system पर मैप करते हैं। mim_view को बिना किसी गोपनीय जानकारी के रूप में प्रलेखित किया गया है। Leftover GET पर private-key export है, PKCS12 को unprotected के रूप में प्रलेखित किया गया है, और generated _get_kwargs जो कभी Authorization नहीं जोड़ता।
| Method | Path | Privilege |
|---|---|---|
GET DownloadCAKey | /system/certauth/{refid}/export-key | Recon (मॉक पर लैब-प्रमाणित): application/octet-stream बॉडी जिसमें witness PEM होता है। Plus पर अनुमानित: CA प्रमाणपत्र हस्ताक्षर कुंजी यदि RBAC GET की अनुमति देता है। |
GET GetCertKey | /system/certificates/{refid}/export-key | Recon (मॉक पर लैब-प्रमाणित): witness PEM। Plus पर अनुमानित: लीफ निजी कुंजी। |
GET GetCertP12 | /system/certificates/{refid}/export-p12 | Recon (मॉक पर लैब-प्रमाणित): वही witness बॉडी। Plus पर अनुमानित: प्रमाणपत्र और कुंजी PKCS12 के रूप में पासवर्ड सुरक्षा के बिना (OpenAPI सारांश)। |
जनरेट किया गया _get_kwargs | तीनों ऑप्स | Recon (लैब-प्रमाणित): kwargs केवल method और उद्धृत url हैं। कोई headers नहीं, कोई Authorization नहीं, कोई Bearer नहीं। |
Client (कोई टोकन नहीं) | तीनों ऑप्स | Recon (लैब-प्रमाणित): तीन मॉक हिट जिनमें has_authorization=false और witness बॉडी (client-no-auth=yes, witness-body=yes) है। |
AuthenticatedClient | तीनों ऑप्स | Recon (लैब-प्रमाणित): तीन मॉक हिट जिनमें Authorization: Bearer mock-token (authed-bearer=3) है। Bearer एक रैपर प्रॉपर्टी है, _get_kwargs नहीं। |
| G9 MITM से चुराया गया JWT, या G6 फ्लीट टोकन | वही तीन GETs, साथ ही /api/device/pfsense/{device_id}/api यदि फ्लीट लेफ्टओवर पास है | Recon (अनुमानित, श्रृंखलित): कंट्रोलर और प्रत्येक नामांकित इंस्टेंस के लिए CA / लीफ कुंजियाँ निकालें जिन्हें टोकन नाम दे सकता है। |
| चुराई गई CA / लीफ कुंजियों का उपयोग | TLS, VPN, IPsec, WebGUI प्रमाणपत्र | Integrity (अनुमानित, लैब-परीक्षित नहीं): CA के रूप में वंशज प्रमाणपत्र जारी करें; Nexus TLS नाम का प्रतिरूपण करें; उन प्रमाणपत्रों का उपयोग करने वाली सुरंगों को डिक्रिप्ट करें। अपने आप में Unix root नहीं। |
| संबंधित लिस्ट/डिटेल GETs | /system/certauth?withprivkey=true, cert prv / private_key फ़ील्ड | Recon (स्पेक, यह लैब नहीं): उन्हीं रहस्यों का बल्क डंप। यहाँ परीक्षण नहीं किया गया। |
Availability: कुछ भी आवश्यक नहीं।
लैब-प्रमाणित बनाम अनुमानित: OpenAPI तीन GET पथ, PKCS12 "पासवर्ड सुरक्षा के बिना" वाक्यांश, _get_kwargs जिसमें कोई Authorization नहीं, Client तीन no-auth हिट्स witness PEM के साथ, AuthenticatedClient तीन Bearer हिट्स, और pfapi_openapi.yml का pin क्लोन लैब-प्रमाणित हैं। Plus mim_system_read / mim_view 200s, वंशज प्रमाणपत्र जारी करना, और फ्लीट-व्यापी कुंजी पुल अनुमानित हैं। Plus RBAC निष्पादित नहीं किया गया।
आवश्यक (अनुमानित, Plus निष्पादित नहीं): Nexus लॉगिन के साथ एक समूह जिसे /system/certauth और /system/certificates के अंतर्गत GET की अनुमति है। यदि लेफ्टओवर वास्तविक है तो admins / mim_superuser नहीं। Diagnostics: Command नहीं। कंट्रोलर :8443 (या डिवाइस प्रॉक्सी) तक JWT के साथ नेटवर्क पथ।
| Surface | क्यों |
|---|---|
| Plus RBAC | निष्पादित नहीं। यह पैक mim_system_read या mim_view के लिए लाइव Plus 200 का दावा नहीं करता। |
POST /diag/cmd/php, POST /diag/cmd/shell, GET/POST /diag/cmd/download /upload /diag/editfile | इच्छित Diagnostics: Command। Superuser-आकार का। यह लेफ्टओवर नहीं। |
POST /system/firmware | इच्छित system modify / superuser। |
GET .../export-ca और GET .../export-cert | सार्वजनिक cert PEM। इच्छित। |
POST .../export-key और POST .../export-p12 superuser के रूप में पासवर्ड के साथ | इच्छित रैप। GUI system_certmanager.php पहले से ही उस तरह से कुंजियाँ निर्यात करता है। |
| अनधिकृत Internet-to-8443 | लॉगिन अभी भी JWT जारी करता है। अनुपस्थित OpenAPI securitySchemes एक जनरेटर फुटगन है, प्रमाणित unauth सर्वर नहीं। |
| CE पैकेज jaredhendrickson/pfsense-api / pfrest.org | भिन्न उत्पाद। |
जनरेट की गई लाइब्रेरी verify_ssl डिफ़ॉल्ट | True। आधिकारिक उदाहरण False सेट करते हैं। वह G9 है, यह GET नहीं। |