Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
pfsense-qinq-parent-if — pfSense CE 2.9.0-DEVELOPMENT - 高危 - 远程 - RCE - QinQ parent-if ifconfig | Kitploit
工具/GitHubGitHub/abraxas/pfsense-qinq-parent-if
漏洞分析漏洞利用Web应用程序漏洞利用网络安全渗透测试命令与控制远程访问工具
GitHubabraxas/pfsense-qinq-parent-if

pfsense-qinq-parent-if

pfSense CE 2.9.0-DEVELOPMENT - 高危 - 远程 - RCE - QinQ parent-if ifconfig

查看仓库
6123天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Abraxas Labs - pfsense-qinq-parent-if

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-qinq-parent-if

pfsense-qinq-parent-if

类别: RCE 可达性: 远程

pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org

QinQ 编辑会存储父接口名称,而不进行 does_interface_exist 检查。VLAN 编辑已经会拒绝不是活动 iface 的父接口。Form_Select 不会重新验证 POST。即使 interface_qinq_configure 提前返回,创建操作仍会执行 write_config。随后添加/移除成员会将存储的 vlanif 插入到未转义的 ifconfig 中。PHP exec 是 /bin/sh -c。WebGUI PHP-FPM 以 root 运行。所需权限是 page-interfaces-qinq-edit,而不是 Diagnostics: Command。

ID暂无 CVE
类别RCE
可达性远程(已认证 WebGUI)
CWECWE-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) QinQ 编辑
认证具有 page-interfaces-qinq-edit 的 WebGUI 会话
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1

我固定了公共 master 9363ac5。该实验环境是一个 PHP gadget,由固定版本中的 vlan_interface / interface_qinq_configure / 成员 exec 行组成,HTTP 回环监听在 127.0.0.1:18810。

攻击者能做什么

方法汇聚点权限
POST QinQ 创建,父接口不是活动 iface,然后 POST 编辑添加成员interface_qinq2_configure exec ifconfig vlan create ... (interfaces.inc:620)完整性(实验环境已证明): 通过 /bin/sh -c 获得 root shell。实验环境:添加成员 qinq2 写入了见证(member-sink=yes)。
相同的已存储 vlanif,POST 编辑移除成员exec("/sbin/ifconfig {$parent}.{$tag} destroy") (interfaces_qinq_edit.php:212)完整性(实验环境已证明): 相同的 root exec。Destroy 没有 IF_NAMESIZE 上限。
相同的 root shell主机文件系统侦察(推断): config.xml、密钥、其他租户。此页面不会打印 exec 输出。
Root shell 或破坏 ifconfigvlan 设备可用性(推断): 创建/销毁 vlan 设备;数据平面会受到影响。

实验环境已证明 vs 推断: VLAN 拒绝、仅创建不执行 exec、长度 16 时的 IF_NAMESIZE 阻断,以及添加成员 qinq2 见证均为实验环境已证明。文件系统侦察和数据平面中断是根据 root PHP-FPM 推断的。

要求: 具有 page-interfaces-qinq-edit 的 WebGUI 会话。CSRF token。两次 POST(创建,然后成员编辑)。默认 admin 拥有该页面。受限用户可以被仅授予此页面。

保持关闭的相邻攻击面

攻击面实验环境
VLAN 父接口存在性检查vlan-rejected=yes
QinQ 仅创建(父接口缺失)存储配置,create-no-exec=yes
qinq2 名称长度 16exec 前 if-namesize-block=yes
未认证 / 无 token 的 CSRFguiconfig + CSRF-magic
GIF/GRE 名称正则、LAGG 成员 does_interface_exist + escapeshellarg其他页面
QinQ 列表删除从未创建的父接口does_interface_exist($vlanif)
Diagnostics: Command除非也被授予,否则保持关闭

没有 Diagnostics: Command。没有未认证。历史类别是 CVE-2023-42326 GIF/GRE,不同页面。

实验环境

cd lab
./run.sh

回环 127.0.0.1:18810。Compose 项目 pfsense-qinq-parent-if。镜像标签 pfsense-qinq-parent-if:2.9.0-dev。见证 PFSENSE-QINQ-PARENT-IF-WITNESS。最后一行:

SUCCESS PFSENSE-QINQ-PARENT-IF vlan-rejected=yes create-no-exec=yes member-sink=yes if-namesize-block=yes PFSENSE-QINQ-PARENT-IF-WITNESS

修复方案

QinQ 编辑:拒绝不是活动接口的父接口,与 VLAN 编辑相同。成员 tag 的整数检查已经存在;在每次 ifconfig 之前仍应对存储的 vlanif 使用 escapeshellarg。成员删除 destroy 应像 interface_qinq2_configure 限制 IF_NAMESIZE 那样进行限制。

参考资料

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • interfaces_qinq_edit.php
  • interfaces.inc interface_qinq2_configure
  • VLAN 对比: interfaces_vlan_edit.php
  • 历史类别(GIF/GRE,非此页面):CVE-2023-42326
  • CWE-78
下载工具