
pfSense CE 2.9.0-DEVELOPMENT - उच्च - रिमोट - RCE - OpenVPN कनेक्ट मूल्यांकन
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-ovpn-connect-eval
वर्ग: RCE पहुँच: रिमोट
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
openvpn.connect_async.sh eval "/sbin/pfctl -a '${anchorname}' ..." with anchorname=openvpn/${dev}${username}${trusted_port}. एकल उद्धरण विस्तार के बाद उपयोगकर्ता नाम को नहीं रोकते। स्थानीय GUI preg शेल वर्णों को अस्वीकार करता है; RADIUS उपयोगकर्ता नाम उस जाँच को छोड़ देते हैं।
| ID | अभी तक कोई CVE नहीं |
| वर्ग | RCE |
| पहुँच | रिमोट (जब तक उल्लेख न हो, प्रमाणित WebGUI) |
| CWE | CWE-78 |
| CVSS | उच्च: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| उत्पाद | pfSense CE |
| प्रभावित | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| प्रमाणीकरण | WebGUI सत्र जिसमें OpenVPN server_user / server_tls_user client (RADIUS/LDAP username) हो |
| लाइसेंस | GNU Affero GPL v3.0 |
| लैब | केवल 127.0.0.1 |
मैंने सार्वजनिक master 9363ac5 को पिन किया। लैब पिन किए गए sink का एक PHP गैजेट है, 127.0.0.1:19070 पर लूपबैक HTTP।
श्रृंखला लेख: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| विधि | Sink | विशेषाधिकार |
|---|---|---|
| RADIUS उपयोगकर्ता नाम के साथ OpenVPN client-connect | openvpn.connect_async.sh eval pfctl -a '${anchorname}' | अखंडता: लैब-प्रमाणित: उपयोगकर्ता नाम alice'; w; : ' ने अतिरिक्त w चलाया। स्थानीय GUI charset उस उपयोगकर्ता नाम को अस्वीकार करता है। |
| वही अवशेष | वही sink | पुनरावलोकन: लैब-प्रमाणित: उस सत्र के लिए pfctl argv। अनुमानित: disconnect rm /tmp/${username}। |
| वही अवशेष | वही sink | उपलब्धता: अनुमानित: उपयोगकर्ता एंकर पर pfctl -F rules। |
आवश्यक: OpenVPN server_user / server_tls_user client (RADIUS/LDAP username)। जब तक उल्लेख न हो, POST पर CSRF-magic। WebGUI PHP-FPM root है।
आवश्यक: OpenVPN server_user / server_tls_user client (RADIUS/LDAP username)। जब तक उल्लेख न हो, POST पर CSRF-magic। WebGUI PHP-FPM root है। जब तक उल्लेख न हो, POST पर CSRF-magic। WebGUI PHP-FPM root है।
स्थानीय Database उपयोगकर्ता नाम charset। गैजेट में अनधिकृत N/A।
कोई Diagnostics: Command नहीं, जब तक वह पृष्ठ भी अनुदानित न हो।
cd lab
./run.sh
लूपबैक 127.0.0.1:19070। Compose प्रोजेक्ट pfsense-ovpn-connect-eval। Witness PFSENSE-OVPN-CONNECT-EVAL-WITNESS। केवल लूपबैक: 127.0.0.1:19070। Compose प्रोजेक्ट pfsense-ovpn-connect-eval। Witness PFSENSE-OVPN-CONNECT-EVAL-WITNESS। पिन की गई पंक्तियों का PHP गैजेट। रन के बाद स्टैक टूट जाता है।
अंतिम पंक्ति:
SUCCESS PFSENSE-OVPN-CONNECT-EVAL control-eval=yes local-gui-charset-rejects-trigger=yes trigger-eval=yes PFSENSE-OVPN-CONNECT-EVAL-WITNESS
eval बंद करें। एंकर को pfctl के लिए शाब्दिक argv के रूप में पास करें। RADIUS उपयोगकर्ता नामों को स्थानीय की तरह ही फ़िल्टर करें।
9363ac5b8651a1c7a333180425ce7719070f95f9