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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
opnsense-lockout-factory-ip — OPNsense 26.7.6 - 高危 - 远程 - 权限残留 - 出厂锁定 IP | Kitploit
工具/GitHubGitHub/abraxas/opnsense-lockout-factory-ip
漏洞分析漏洞利用安全虚拟化网络安全渗透测试论文与研究实验室与实践
GitHubabraxas/opnsense-lockout-factory-ip

opnsense-lockout-factory-ip

OPNsense 26.7.6 - 高危 - 远程 - 权限残留 - 出厂锁定 IP

查看仓库
85天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Abraxas Labs - opnsense-lockout-factory-ip

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-lockout-factory-ip

opnsense-lockout-factory-ip

类别: 权限残留 可达性: 远程

OPNsense 核心 26.7.6 (a842fe48) - opnsense.org

未认证的 WebGUI 登录仍会通过一条出厂 LOG_AUTH 记录驱动 lockout_handler,而该记录没有套接字 IP。GHSA-2v2x 修复了 CRLF 拆分,并将锁定 IP 的选取切换为最后一个 token,因此 authgui.inc 末尾的 from REMOTE_ADDR 会胜出。AuthenticationFactory::authenticate() 仍会以 syslog() 记录原始用户名,且不带地址后缀。一个同时匹配锁定 False 短语和 IPv4 token 的用户名,会成为该行上最后一个(也是唯一一个)地址。在默认的 5 次间隔尝试后:执行 pfctl -t sshlockout -T add 和 pfctl -k。默认:锁定开启,LAN GUI。

ID暂无 CVE
类别权限残留
可达性远程(未认证的 WebGUI 登录 POST)
CWECWE-117 / CWE-863
CVSS高危:7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
产品OPNsense core(Deciso B.V.)
受影响版本OPNsense core 26.7.6(a842fe48c21288d11a422cb944678e8eb308becf)AuthenticationFactory / lockout_handler
认证未认证。CSRF cookie + token 来自 GET /。
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1

我固定了标签 26.7.6。实验环境是固定版本的 lockout_handler 加上 PATH 桩 pfctl,回环身份 127.0.0.1:18800。这不是 CRLF。一条 PHP syslog 记录仍保持为一行 handler 记录。Last-IP 对 authgui 模板是正确的加固,但对 factory 模板是错误的加固。

攻击者能做什么

方法汇聚点权限
未认证的 factory LOG_AUTH 用户名,包含锁定 False 短语加 IPv4 token(6 行间隔)固定 lockout_handler -> 桩 pfctl -t sshlockout -T add 和 pfctl -k完整性(实验环境已证实): 表 sshlockout 加上状态终止 argv。实验环境:planted=203.0.113.77。
同样的植入,实时 pffilter.lib.inc:293-314 from <sshlockout> to (self) 端口 22/GUI可用性(推断): 丢弃来自被植入主机的新的 TCP 22/GUI;pfctl -k 拆除来自该 IP 的现有状态。
同样的用户名但仅含 IPv4(无 False 短语)lockout_handler否定(实验环境已证实): 无表添加。negative-ip-only=no。
authgui 行末尾带 from REMOTE_ADDRlast-IP 解析器自身 IP 的完整性(实验环境已证实): authgui 最后一个 token 保持为 198.51.100.10。
失败登录响应体无侦察(实验环境已证实关闭): 现有的 "Wrong username or password."。无用户枚举。

实验环境已证实 vs 推断: factory 植入、仅用户名否定、authgui last-IP 均为实验环境 SUCCESS。实时 pf 阻断和实时会话终止为推断。固定版本的 lockout_handler 原样复制;syslog-ng 和 WebGUI POST 为桩实现。

前提条件: 未认证的 WebGUI 登录 POST。CSRF cookie + token 来自 GET /。锁定开启(system.no_sshlockout 未设置)。默认安装。

保持关闭的相邻攻击面

攻击面实验环境
未认证会话 / root / config.xml 写入关闭
authgui 行植入外部 IP最后一个 token 是 REMOTE_ADDR(authgui-last-ip=198.51.100.10)
CRLF 额外 readline()GHSA-2v2x 重写;一条记录保持一行
空密码登录authgui.inc 要求非空密码
CVE-2026-44195 在 authgui 行上的成功关键字重置失败规则优先
26.7.6 Omar Habra pfctl -k str(ip) TypeError已在此固定版本上
被植入的 IP 作为 DNS/网关目标规则仅为 from <sshlockout> to (self) 端口 22/GUI

无登录跳过。无 RCE。无 config.xml 重写。不会铸造会话。

实验环境

cd lab
./run.sh

回环 127.0.0.1:18800。Compose 项目 opnsense-lockout-factory-ip。镜像标签 opnsense-lockout-factory-ip:26.7.6。见证 OPNSENSE-LOCKOUT-FACTORY-IP-WITNESS。最后一行:

SUCCESS opnsense-lockout-factory-ip planted=203.0.113.77 table=sshlockout negative-ip-only=no authgui-last-ip=198.51.100.10 OPNSENSE-LOCKOUT-FACTORY-IP-WITNESS

修复方案

将套接字 IP 追加到 factory syslog(LOG_AUTH) 模板,与 authgui.inc 相同的末尾 from REMOTE_ADDR。或者忽略并非来自 handler 自身对端的锁定 IP。不要将 last-token 视为 "客户端地址" 的替代品。

参考资料

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • AuthenticationFactory.php
  • lockout_handler
  • 命名遍历(非此残留):GHSA-2v2x CRLF first-IP 植入
  • CWE-117 / CWE-863
下载工具