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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
checkmk_php2shell — Checkmk 扩展,包含一个 agent 插件,用于在 Linux 主机上清点 PHP 二进制文件和 Apache mod_php,并报告 PHP2Shell(CVE-2026-109618/109619)状态、向后移植和残留进程。 | Kitploit
工具/GitLabGitLab/checkmk1/checkmk_php2shell
防御工具漏洞扫描器漏洞分析配置审计Web安全事件响应
GitLabcheckmk1/checkmk_php2shell

checkmk_php2shell

Checkmk 扩展,包含一个 agent 插件,用于在 Linux 主机上清点 PHP 二进制文件和 Apache mod_php,并报告 PHP2Shell(CVE-2026-109618/109619)状态、向后移植和残留进程。

查看仓库
26小时21分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

checkmk_php2shell

一个 Checkmk 扩展,用于在 Linux 主机上针对每个 PHP 安装显示其是否受 PHP2Shell 影响——即预认证远程代码执行漏洞 CVE-2026-109618 和 CVE-2026-109619,这两个漏洞于 2026-10-21 在 PHP 8.2.35、8.3.36、8.4.27 和 8.5.12 中披露并修复。

它附带一个小型 POSIX shell 代理插件,该插件仅收集事实(PHP 二进制文件、Apache mod_php、NGINX Unit 和 FrankenPHP 的 PHP 库、版本、软件包变更日志、php.ini 设置、仍在运行已被替换二进制文件的进程)。至于这意味着“已修复”还是“存在漏洞”,由 Checkmk 服务器上的检查插件决定,因此新信息——另一个已修复版本、一个新的 CVE——只需更新 .mkp,而无需在每台主机上部署新脚本。

为什么不直接比较版本号: 各发行版会在不更改上游版本号的情况下向后移植修复。Ubuntu 24.04 提供 PHP 8.3.6,AlmaLinux 9 提供 8.0.30——两者均已修复,但按版本号看都“存在漏洞”。因此该扩展还会读取拥有每个二进制文件的软件包的变更日志。

要求

  • Checkmk >= 2.5.0(使用当前的 cmk_addons.plugins 插件 API)。
  • 被监控主机:Linux,且 Checkmk 代理以 root 身份运行(该插件会运行 PHP 二进制文件并读取所有进程的 /proc/<pid>/maps)。需要带有 GNU 或 busybox 工具的纯 POSIX sh;软件包变更日志通过 dpkg、rpm 或 apk 读取。已在 Debian 系(Debian、Ubuntu)、Red Hat 系(RHEL、AlmaLinux、Rocky Linux、Oracle Linux、CentOS Stream、Fedora、Amazon Linux 2023、CentOS 7)以及 Alpine 上测试,详见下文。
  • 通过代理烘焙器(Agent Bakery)部署需要商业版 Checkmk(Pro、Ultimate 或带多租户的 Ultimate)。在 Community 版上,请手动将代理插件复制到主机,参见手动部署代理插件(Community 版)。检查插件、规则和服务在两种方式下工作方式完全相同。

测试环境

Checkmk 镜像日期结果
checkmk/check-mk-ultimate:2.5.0p172026-10-27通过(构建、cmk-validate-plugins、冒烟测试、安装 + 发现 + 检查 + 代理烘焙)
checkmk/check-mk-ultimate:3.0.0-2026.10.27(每日构建)2026-10-27通过(构建、cmk-validate-plugins、冒烟测试、安装 + 发现 + 检查 + 代理烘焙)

该代理插件于 2026-10-27 针对各发行版自带的 PHP 软件包运行(scripts/test_agent_plugin.sh)。在目标会启动 Web SAPI 的情况下(FPM、发行版仍提供的 Apache mod_php、NGINX Unit、FrankenPHP),随后在磁盘上替换了 FPM 二进制文件和 libphp,重启检测报告了正在运行的进程。

Debian 系和 Alpine

发行版PHP 软件包插件结果
Ubuntu 24.048.3.6-0ubuntu0.24.04.13(CLI、FPM、CGI、mod_php)通过向后移植修复(变更日志中提及两个 CVE)
Debian 128.2.35-1~deb12u1(CLI、FPM、mod_php)通过版本号修复
Debian 12 + nginx8.2.35-1~deb12u1(CLI、nginx 后的 FPM)通过版本号修复
Debian 138.4.27-1~deb13u1(CLI、FPM)通过版本号修复
Alpine 3.22php83 8.3.36-r0(CLI、FPM、CGI)通过版本号修复

Red Hat 系

发行版PHP 软件包插件检测结果
AlmaLinux 8.107.2.24-1.module_el8.10.0(CLI、FPM、CGI、mod_php libphp7.so)已通过向后移植修复(变更日志中列出了两个 CVE)
AlmaLinux 8.10,模块 php:8.28.2.35-1.module_el8.10.0(CLI、FPM、CGI)已通过版本修复
RHEL 9.8(UBI)、AlmaLinux 9.8、Rocky Linux 9.8、Oracle Linux 9.88.0.30-8.el9_8.1(CLI、FPM、CGI)已通过向后移植修复(变更日志中列出了两个 CVE)
AlmaLinux 9.8,模块 php:8.38.3.36-1.module_el9.8.0(CLI、FPM、CGI)已通过版本修复
AlmaLinux 9.8 + Remi SCLphp74 7.4.33-31.el9.remi、php81 8.1.34-6.el9.remi(/opt/remi)已通过向后移植修复(变更日志中列出了两个 CVE)
AlmaLinux 10.2、CentOS Stream 108.3.36-1.el10(CLI、FPM、CGI)已通过版本修复
Fedora 448.5.12-1.fc44(CLI、FPM、CGI)已通过版本修复
Amazon Linux 2023php8.5 8.5.12-1.amzn2023.0.1(CLI、FPM、CGI)已通过版本修复
CentOS 7(已停止维护,vault)5.4.16-48.el7(CLI、FPM、CGI)存在漏洞 - 在付费扩展支持之外,EL7 没有向后移植

官方容器镜像与 FrankenPHP

镜像PHP插件检测结果
php:8.2.20-fpm8.2.20,从源码构建存在漏洞
unit:php8.3(NGINX Unit)8.3.26(CLI、CGI、内嵌 libphp)存在漏洞
dunglas/frankenphp:latest8.5.12(CLI、CGI、内嵌 libphp)已通过版本修复
FrankenPHP 静态二进制文件(GitHub release)8.5.12已通过版本修复

它尚未在容器之外的生产主机上运行过 - 特别是在 SELinux 处于强制模式(RHEL 系列)的情况下;该 agent 通常在那里以非受限模式运行。

安装

  1. 从 release 下载 .mkp(或自行构建,参见 开发)。

  2. Setup > Maintenance > Extension packages > Upload package,或在站点内的命令行中执行:

    mkp add php2shell-<version>.mkp
    mkp enable php2shell <version>
    
  3. 将 agent 插件部署到要检查的主机:

    • 商业版: Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules,Agent plug-ins 部分,规则 PHP2Shell agent plug-in。为目标主机创建规则,然后烘焙并更新 agent。该插件始终异步运行;默认间隔为一小时。
    • 社区版 / 手动: 见下文。
  4. 在主机上运行服务发现。每个 PHP 二进制文件和 Apache PHP 模块都会获得 各自的服务,另外每台主机还会有一个 PHP2Shell restart 服务。

  5. 可选:在 Setup > Services > Service monitoring rules > PHP2Shell (CVE-2026-109618 / CVE-2026-109619) 和 PHP2Shell restart 中调整状态。

手动部署 agent 插件(社区版)

将 package/agents/plugins/php2shell 复制到 agent 插件目录下的一个缓存间隔子目录中, 并使其可执行:

install -m 755 php2shell /usr/lib/check_mk_agent/plugins/3600/php2shell

3600 目录会让 agent 每小时在后台运行一次,并在间隔期间提供缓存结果。不要直接把它放进 plugins/:它会运行每个 PHP 二进制文件并读取每个进程的内存映射,这对每次 agent 查询来说负担过重。

监控内容

服务每个状态(默认,可配置)
PHP2Shell <path>PHP 二进制文件或库,例如 PHP2Shell /usr/sbin/php-fpm8.3OK 已修复 - CRIT 存在漏洞的 web SAPI - WARN 存在漏洞的 web SAPI 且已应用所有临时缓解措施 - WARN 存在漏洞的 CLI - UNKNOWN 无法确定版本
PHP2Shell restart装有 PHP 的主机OK - CRIT 进程仍在运行已被替换的 PHP 二进制文件或 libphp
flowchart TD
    A[PHP binary or module] --> B{Version known?}
    B -- no --> U[UNKNOWN]
    B -- yes --> C{"Version >= fix of its branch?<br/>8.2.35 / 8.3.36 / 8.4.27 / 8.5.12<br/>or branch newer than 8.5"}
    C -- yes --> OK[OK: fixed]
    C -- no --> D{"Package changelog names<br/>both CVEs?"}
    D -- yes --> OKB[OK: fixed by distribution backport]
    D -- no --> E{SAPI}
    E -- CLI --> W1[WARN: vulnerable, CLI only]
    E -- "FPM / CGI / LiteSpeed / Apache module /<br/>embedded libphp / FrankenPHP" --> F{"All interim mitigations<br/>in this SAPI's php.ini?"}
    F -- yes --> W2[WARN: vulnerable, mitigated]
    F -- no --> CR[CRIT: vulnerable]
    OK --> G{"session.upload_progress.enabled<br/>= On?"}
    OKB --> G
    G -- yes --> H["Hint: CVE-2026-115560 not fixed yet<br/>(state configurable, default OK)"]
  • 已修复 指至少包含该分支的上游修复,或包含一个同时列出两个 CVE ID 的软件包变更日志。早于 8.2 的分支(包括所有 PHP 5 和 7)没有上游发布版本;它们只能通过厂商回溯移植(Debian ELTS、RHEL、Remi、Ubuntu Pro 等)修复,本变更日志检查可识别这些情况。
  • 临时缓解措施 是 PHP 官方发布的那些:针对 CVE-2026-109618 的 memory_limit=-1,针对 CVE-2026-109619 的 session.upload_progress.enabled=0(以及在 PHP 8.5 上的 fatal_error_backtraces=0)。它们只能将 CRIT 降为 WARN,绝不会降为 OK——PHP 称更新是唯一完整的修复,而 memory_limit=-1 本身会带来内存耗尽的风险。
  • CLI 二进制文件为 WARN,而非 CRIT:两个 CVE 都需要向 PHP SAPI 发起 HTTP 请求。之所以仍报告 CLI 二进制文件,是因为 php -S 会将其用作 Web 服务器,并且在无法找到 mod_php 的主机上,它可能是 PHP 版本唯一可见的痕迹。
  • CVE-2026-115560(披露于 2026-10-23,尚未发布修复)是一个独立的会话上传进度问题。已修复的安装若设置了 session.upload_progress.enabled=On,会在其详情中得到提示;如果你希望它触发告警,请在规则中提高状态级别。
  • 服务输出始终指明下一步:要更新到的该分支的补丁版本,或该分支没有上游修复。

工作原理

flowchart LR
    subgraph host [Monitored Linux host]
        P["agent plug-in php2shell<br/>(plugins/3600/, as root)"]
        P -- "php -v / php -i" --> BIN[PHP binaries]
        P -- "X-Powered-By string" --> SO[libphp*.so]
        P -- "dpkg / rpm / apk" --> CL[package changelog]
        P -- "/proc/*/maps" --> PR[running processes]
    end
    P -- "php2shell agent section" --> CP
    subgraph site [Checkmk site]
        CP["check plug-ins<br/>php2shell, php2shell_restart"]
        R[rules: service states] --> CP
        BK["bakery rule<br/>PHP2Shell agent plug-in"]
    end
    BK -. bakes into agent .-> P
    CP --> S1["PHP2Shell (one per path)"]
    CP --> S2[PHP2Shell restart]

该 agent 插件:

下载工具