Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
checkmk_php2shell — Linux 호스트에서 PHP 바이너리와 Apache mod_php를 인벤토리화하고 PHP2Shell(CVE-2026-109618/109619) 상태, 백포트 및 오래된 프로세스를 보고하는 에이전트 플러그인이 포함된 Checkmk 확장입니다. | Kitploit
도구/GitLabGitLab/checkmk1/checkmk_php2shell
Defensive ToolsVulnerability ScannersVulnerability AnalysisConfiguration AuditingWeb SecurityIncident Response
GitLabcheckmk1/checkmk_php2shell

checkmk_php2shell

Linux 호스트에서 PHP 바이너리와 Apache mod_php를 인벤토리화하고 PHP2Shell(CVE-2026-109618/109619) 상태, 백포트 및 오래된 프로세스를 보고하는 에이전트 플러그인이 포함된 Checkmk 확장입니다.

저장소 보기
11시간 53분 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

checkmk_php2shell

Linux 호스트의 모든 PHP 설치에 대해 PHP2Shell - 2026-10-21에 PHP 8.2.35, 8.3.36, 8.4.27 및 8.5.12에서 공개되고 수정된 사전 인증 원격 코드 실행 취약점 CVE-2026-109618 및 CVE-2026-109619 - 의 영향을 받는지 여부를 보여주는 Checkmk 확장입니다.

이 확장은 사실만 수집하는 작은 POSIX 셸 에이전트 플러그인을 제공합니다(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 사용).
  • 모니터링 대상 호스트: Checkmk 에이전트가 root로 실행되는 Linux (플러그인이 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에서 테스트되었습니다. 아래를 참조하십시오.
  • 에이전트 베이커리 배포에는 상용 Checkmk 에디션(Pro, Ultimate 또는 멀티테넌시 지원 Ultimate)이 필요합니다. Community 에디션에서는 에이전트 플러그인을 호스트에 수동으로 복사하십시오. 수동 에이전트 플러그인 배포를 참조하십시오. 체크 플러그인, 규칙 및 서비스는 어느 경우든 동일하게 작동합니다.

테스트 환경

Checkmk 이미지날짜결과
checkmk/check-mk-ultimate:2.5.0p172026-10-27OK (빌드, cmk-validate-plugins, 스모크 테스트, 설치 + 검색 + 체크 + 에이전트 베이크)
checkmk/check-mk-ultimate:3.0.0-2026.10.27 (daily)2026-10-27OK (빌드, cmk-validate-plugins, 스모크 테스트, 설치 + 검색 + 체크 + 에이전트 베이크)

에이전트 플러그인은 2026-10-27에 배포판 자체의 PHP 패키지에 대해 실행되었습니다(scripts/test_agent_plugin.sh). 대상이 웹 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)백포트로 수정됨 (changelog에 두 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)백포트로 수정됨 (changelog에 두 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)백포트로 수정됨 (changelog에 두 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 릴리스)8.5.12버전으로 수정됨

아직 컨테이너 외부의 프로덕션 호스트에서는 실행되지 않았습니다. 특히 SELinux가 enforcing 상태인 환경(RHEL 계열)에서는 실행되지 않았으며, 해당 환경에서 에이전트는 보통 unconfined로 실행됩니다.

설치

  1. 릴리스에서 .mkp를 다운로드합니다(또는 직접 빌드합니다. 개발 참조).

  2. Setup > Maintenance > Extension packages > Upload package, 또는 사이트 내부의 명령줄에서:

    mkp add php2shell-<version>.mkp
    mkp enable php2shell <version>
    
  3. 확인하려는 호스트에 에이전트 플러그인을 배포합니다:

    • 상용 에디션: Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules, Agent plug-ins 섹션, PHP2Shell agent plug-in 규칙. 대상 호스트에 대한 규칙을 생성한 다음 에이전트를 베이크하고 업데이트합니다. 플러그인은 항상 비동기적으로 실행되며, 기본 간격은 1시간입니다.
    • 커뮤니티 에디션 / 수동: 아래를 참조하십시오.
  4. 호스트에서 서비스 검색을 실행합니다. 모든 PHP 바이너리와 Apache PHP 모듈이 각각 자체 서비스가 되며, 호스트당 하나의 PHP2Shell restart 서비스가 추가됩니다.

  5. 선택 사항: Setup > Services > Service monitoring rules > PHP2Shell (CVE-2026-109618 / CVE-2026-109619) 및 PHP2Shell restart에서 상태를 조정합니다.

수동 에이전트 플러그인 배포 (커뮤니티 에디션)

package/agents/plugins/php2shell을 에이전트의 플러그인 디렉터리 아래 캐시 간격 하위 디렉터리에 복사하고 실행 가능하게 만듭니다:

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

3600 디렉터리는 에이전트가 이를 백그라운드에서 한 시간에 한 번 실행하고 그 사이에는 캐시된 결과를 제공하도록 합니다. 이를 plugins/에 직접 넣지 마십시오. 이는 모든 PHP 바이너리를 실행하고 모든 프로세스의 메모리 맵을 읽기 때문에 모든 에이전트 쿼리에 비해 너무 무겁습니다.

모니터링 대상

서비스단위상태 (기본값, 구성 가능)
PHP2Shell <path>PHP 바이너리 또는 라이브러리, 예: PHP2Shell /usr/sbin/php-fpm8.3OK 고정됨 - CRIT 취약한 웹 SAPI - WARN 모든 중간 완화 조치가 적용된 취약한 웹 SAPI - WARN 취약한 CLI - UNKNOWN 버전 확인 불가
PHP2Shell restartPHP가 설치된 호스트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)"]
  • Fixed는 최소한 해당 브랜치의 업스트림 수정 사항, 또는 두 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 바이너리는 CRIT가 아닌 WARN입니다: 두 CVE 모두 PHP SAPI에 대한 HTTP 요청이 필요합니다. CLI 바이너리는 php -S가 웹 서버로 이를 사용하고, 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]

에이전트 플러그인:

도구 다운로드