RoguePlanet, Defender의 격리 파이프라인을 통해 Windows 제로데이를 악용
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
RoguePlanet는 Microsoft Defender의 격리 및 수정 워크플로우를 악용하는 로컬 권한 상승 제로데이입니다. NTFS 디렉터리 접합, 임의 잠금, 볼륨 섀도 복사를 결합하여 권한이 낮은 사용자가 Defender의 처리 과정을 방해하고 임의의 코드 실행을 강제할 수 있습니다. NT AUTHORITYSYSTEM. 이 익스플로잇은 파일 격리 작업 중 일관되게 타이밍 경합을 이기기 위해 결정론적 I/O 포화 방법을 이용합니다.
조사
Howler Cell 위협 연구팀은 완전히 패치된 Windows 11 Pro 시스템에서 익스플로잇을 재현했고, 메모리 손상이나 관리자 액세스 없이 SYSTEM 수준의 코드 실행을 달성하는 것을 확인했습니다. 이들의 분석에서 내장 ISO 이미지, NTFS 재분석 지점, 그리고 WER QueueReporting 예약된 작업을 악용하는 7단계 공격 체인을 확인했습니다. 연구원들은 또한 소스 수준에서의 약간의 변경은 익스플로잇이 정적 탐지를 상대적으로 쉽게 피할 수 있게 한다고 언급했습니다.
완화
RoguePlanet의 근본 원인을 해결하는 공식 패치는 현재 없습니다. 수비수들은 익스플로잇과 관련된 특정 이름의 파이프 생성과 %TEMP% 디렉터리 구조에서 UUID와 유사한 디렉터리 이름을 포함한 비정상적인 파일 시스템 활동을 감시해야 합니다. %TEMP%. 추가적인 강화는 NTFS 접합의 남용 제한과 볼륨 섀도 복사를 열거하는 비시스템 프로세스를 감지하는 데 중점을 둬야 합니다.
대응
RoguePlanet과 관련된 활동이 탐지되면 보안 팀은 영향을 받은 호스트를 격리하고 conhost.exe 가 SYSTEM-무결성 부모로부터 사용자 세션에 만들어지는 프로세스를 조사해야 합니다. 분석가들은 또한 예상치 못한 경로에서 실행되는 wermgr.exe 를 찾고 %TEMP% 디렉터리 구조 RP_ 를 검사해야 합니다. Task Scheduler 로그를 검토하여 QueueReporting 작업의 의심스러운 실행을 확인하는 것도 필수적입니다.
graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#cccccc classDef process fill:#ccffcc classDef malware fill:#ff9999 classDef technique fill:#e1ccff %% Node Definitions %% Step 1: Preparation prep_iso[“<b>Action</b>: Extract embedded ISO<br/><b>Description</b>: Orchestrator extracts ISO to create a read-only virtual disk<br/><b>Target</b>: %TEMP% directory structure”] class prep_iso action %% Step 2: Payload Delivery payload_ads[“<b>Action</b> – <b id=’T1564.004’>NTFS File Attributes: Alternate Data Streams</b><br/><b>Description</b>: Writing EICAR test file into a hidden ADS named :WDFOO<br/><b>Purpose</b>: Bypass standard file restrictions during delivery”] class payload_ads technique %% Step 3: Race Condition race_condition[“<b>Action</b> – <b id=’T1499’>Endpoint Denial of Service: Impair Defenses</b><br/><b>Description</b>: Using Poseidon I/O subsystem to create high-frequency disk activity<br/><b>Mechanism</b>: I/O saturation and opportunistic locks (oplocks) to pause Defender”] class race_condition technique %% Step 4: Execution Flow Hijacking hijack_junction[“<b>Action</b> – <b id=’T1137’>Office Application: Create or Modify Registry/Files</b><br/><b>Description</b>: Performing junction swaps using NTFS reparse points<br/><b>Target</b>: Redirecting legitimate wermgr.exe path to attacker directory”] class hijack_junction technique overwrite_artifact[“<b>Action</b>: Overwrite SYSTEM-owned artifact<br/><b>Description</b>: Replacing quarantine artifact with malicious payload while maintaining SYSTEM metadata”] class overwrite_artifact action %% Step 5: Privilege Escalation task_trigger[“<b>Action</b> – <b id=’T1053.005’>Scheduled Task/Job: Scheduled Task</b><br/><b>Description</b>: Leveraging Task Scheduler COM interface to trigger QueueReporting task”] class task_trigger technique shell_escalation[“<b>Process</b>: conhost.exe shell<br/><b>Privilege Level</b>: NT AUTHORITYSYSTEM<br/><b>Description</b>: Final execution of redirected payload via hijacked task”] class shell_escalation process %% Connections %% Flow from preparation to payload prep_iso –>|facilitates| payload_ads %% Flow from payload to race condition payload_ads –>|triggers| race_condition %% Flow from race condition to hijacking race_condition –>|enables| hijack_junction %% Flow from hijacking to overwrite hijack_junction –>|results_in| overwrite_artifact %% Flow from overwrite to task trigger overwrite_artifact –>|prepares_for| task_trigger %% Flow from task trigger to final shell task_trigger –>|executes| shell_escalation
공격 흐름
탐지
NT AUTHORITY에서의 의심스러운 프로세스 (via process_creation)
보기
VHDMP 광학 디스크 이미지가 마운트되었습니다 (via VHDMP)
보기
RoguePlanet 익스플로잇 행위의 가능성 (via file_event)
보기
RoguePlanet 익스플로잇 행위의 가능성 (via pipe_created)
보기
쉐도우 복사본에 대한 비정상적인 NtQueryDirectoryObject 액세스 [Windows Sysmon]
보기
RoguePlanet 익스플로잇 아티팩트 및 행위 패턴 탐지 [Windows File Event]
보기
RoguePlanet 이름의 파이프 및 SYSTEM-무결성 프로세스 이상 [Windows Process Creation]
보기
시뮬레이션 실행
전제조건: 텔레메트리 & 베이스라인 사전 비행 점검이 완료되어야 합니다.
취지: 이 섹션은 탐지 규칙을 활성화하기 위해 설계된 상대 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 내러티브는 반드시 식별된 TTP를 직접 반영하여 탐지 논리에 의해 예상되는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련 없는 예제는 오진으로 이어질 수 있습니다.
-
공격 서사 및 명령: 공격자는 실행 중인 Windows 서비스의 취약점을 이용하여 SYSTEM 수준의 코드 실행을 달성합니다. 익스플로이트된 서비스와 새로 주입된 스레드 간의 통신을 용이하게 하기 위해 공격자는
.pipeRoguePlanet라는 이름의 파이프를 생성합니다. 성공적인 상승 후, 공격자의 페이로드는services.exe가 생성되어conhost.exe추가적인 명령 실행을 위한 대화식 환경을 제공합니다. 이 시퀀스는 RoguePlanet 익스플로잇 체인의 동작을 모방하도록 설계되었습니다. -
회귀 테스트 스크립트:
# RoguePlanet 이름의 파이프 및 프로세스 이상 시뮬레이션 # 주의: 이 스크립트는 서비스 유사 동작을 시뮬레이션하기 위해 관리자 권한이 필요합니다 Write-Host "[+] RoguePlanet 시뮬레이션 시작..." -ForegroundColor Cyan # 1. 이름의 파이프 생성 시뮬레이션(선택 selection_pipe와 일치) # PowerShell을 사용하여 목표 인디케이터를 모방하는 이름 파이프를 만듭니다 $pipeName = "RoguePlanet" $pipe = New-Object System.IO.Pipes.NamedPipeServerStream($pipeName, [System.IO.Pipes.PipeDirection]::InOut) Write-Host "[+] Named Pipe \.pipe$pipeName 생성됨." -ForegroundColor Green # 2. 비정상적 프로세스 생성 시뮬레이션(selection_conhost 및 selection_parent와 일치) # 실제 익스플로잇에서는 services.exe가 부모입니다. # 커널 익스플로잇 없이 'services.exe가 되기'는 어렵기 때문에 # SIEM/Sysmon이 목표한 부모로 녹화할 프로세스를 생성하여 # 특정 부모-자식 관계가 규칙 논리에 의해 트리거되도록 시뮬레이션합니다. Write-Host "[+] services.exe에서 conhost.exe가 생성되는 것처럼 시뮬레이션 중..." -ForegroundColor Cyan # 이 규칙 테스트를 위해, 특정 Image/ParentImage 기준을 대상으로 명령을 실행하겠습니다. Start-Process "conhost.exe" -ArgumentList "/c echo Simulation Complete" -WindowStyle Hidden Write-Host "[+] 시뮬레이션 명령이 전송되었습니다. SIEM에서 경고를 확인하세요." -ForegroundColor Yellow # 텔레메트리 캡처를 위해 잠시 파이프 열어두기 Start-Sleep -Seconds 5 $pipe.Dispose() -
정리 명령어:
# 정리: 파이프 닫기 및 시뮬레이션 프로세스 종료 Get-Process conhost | Stop-Process -Force -ErrorAction SilentlyContinue Write-Host "[+] 정리 완료." -ForegroundColor Green