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}' ...",其中 anchorname=openvpn/${dev}${username}${trusted_port}。展开后单引号无法包含用户名。本地 GUI 的 preg 会拒绝 shell 字符;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) |
| 认证 | 具有 OpenVPN server_user / server_tls_user client (RADIUS/LDAP username) 的 WebGUI 会话 |
| 许可证 | GNU Affero GPL v3.0 |
| 实验环境 | 仅 127.0.0.1 |
我固定了公共 master 分支 9363ac5。该实验环境是固定 sink 的一个 PHP gadget,在 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 字符集拒绝该用户名。 |
| 同一遗留问题 | 同一 sink | 侦察: 实验环境已证实:该会话的 pfctl argv。推断:断开连接时 rm /tmp/${username}。 |
| 同一遗留问题 | 同一 sink | 可用性: 推断:对用户 anchor 执行 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 运行。
本地数据库用户名字符集。该 gadget 中未认证不可利用。
除非该页面也被授权,否则无 Diagnostics: Command。
cd lab
./run.sh
回环 127.0.0.1:19070。Compose 项目 pfsense-ovpn-connect-eval。见证 PFSENSE-OVPN-CONNECT-EVAL-WITNESS。仅回环:127.0.0.1:19070。Compose 项目 pfsense-ovpn-connect-eval。见证 PFSENSE-OVPN-CONNECT-EVAL-WITNESS。固定代码行的 PHP gadget。运行结束后栈会被拆除。
最后一行:
SUCCESS PFSENSE-OVPN-CONNECT-EVAL control-eval=yes local-gui-charset-rejects-trigger=yes trigger-eval=yes PFSENSE-OVPN-CONNECT-EVAL-WITNESS
停止使用 eval。将 anchor 作为字面 argv 传递给 pfctl。像本地用户名一样过滤 RADIUS 用户名。
9363ac5b8651a1c7a333180425ce7719070f95f9