
pfSense CE 2.9.0-DEVELOPMENT - उच्च - रिमोट - RCE - dpinger में IPv6 ज़ोन
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-gw-ipv6-zone
श्रेणी: RCE पहुँच: रिमोट
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
is_ipaddrv6() Net_IPv6::checkIPv6 के लिए %zone को हटा देता है और zone की charset-जाँच कभी नहीं करता। start_dpinger {$gateway['monitor']} को बिना किसी escapeshellarg के mwexec में इंटरपोलेट करता है। खाली monitor गेटवे IP की प्रतिलिपि बना लेता है।
| 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 सत्र जिसमें page-system-gateways-editgateway then apply हो |
| लाइसेंस | GNU Affero GPL v3.0 |
| लैब | केवल 127.0.0.1 |
मैंने सार्वजनिक master 9363ac5 को पिन किया। लैब पिन किए गए sink का एक PHP gadget है, जो 127.0.0.1:18930 पर लूपबैक HTTP करता है।
श्रृंखला लेख: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| विधि | Sink | विशेषाधिकार |
|---|---|---|
| POST system_gateways_edit.php gateway/monitor IPv6%zone | start_dpinger mwexec {$gateway['monitor']} | अखंडता: लैब-प्रमाणित: fe80::1%eth0;w अभी भी is_ipaddrv6 पास कर गया; mwexec /bin/sh -c ने अतिरिक्त w चलाया। |
| वही अवशेष | वही sink | पुनरावलोकन: अनुमानित: root शेल होस्ट फ़ाइलें पढ़ सकता है। |
| वही अवशेष | वही sink | उपलब्धता: अनुमानित: dpinger निगरानी को मार डालें या बदल दें। |
आवश्यक: page-system-gateways-editgateway then apply। जब तक उल्लेख न हो, POST पर CSRF-magic। WebGUI PHP-FPM root है।
आवश्यक: page-system-gateways-editgateway then apply। जब तक उल्लेख न हो, POST पर CSRF-magic। WebGUI PHP-FPM root है। जब तक उल्लेख न हो, POST पर CSRF-magic। WebGUI PHP-FPM root है।
गेटवे नाम is_validaliasname है। अनधिकृत N/A।
कोई Diagnostics: Command नहीं, जब तक वह पृष्ठ भी अनुदत्त न हो।
cd lab
./run.sh
लूपबैक 127.0.0.1:18930। Compose प्रोजेक्ट pfsense-gw-ipv6-zone। Witness PFSENSE-GW-IPV6-ZONE-WITNESS। केवल लूपबैक: 127.0.0.1:18930। Compose प्रोजेक्ट pfsense-gw-ipv6-zone। Witness PFSENSE-GW-IPV6-ZONE-WITNESS। पिन की गई पंक्तियों का PHP gadget। रन के बाद स्टैक टूट जाता है।
अंतिम पंक्ति:
SUCCESS PFSENSE-GW-IPV6-ZONE control-no-extra=yes trigger-extra-exec=yes PFSENSE-GW-IPV6-ZONE-WITNESS
zone की charset-जाँच करें। mwexec से पहले monitor को escapeshellarg करें। argv arrays को प्राथमिकता दें।
9363ac5b8651a1c7a333180425ce7719070f95f9