SOC Prime Bias: 높음

24 Jun 2026 19:37 UTC

AI 비디오 플레이어에서 발견된 PureRAT 변종

Author Photo
SOC Prime Team linkedin icon 팔로우
AI 비디오 플레이어에서 발견된 PureRAT 변종
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

한 악성코드 캠페인은 가짜 Google Drive 테마의 비디오 다운로드 프로그램을 사용하여 다단계 실행 체인을 시작합니다. 감염은 Python 기반 로더에서 쉘코드로, 그다음에 PureRAT로 식별된 보호된 .NET 어셈블리로 이동합니다. 이 악성코드는 명령 및 제어 트래픽을 관리하기 위해 강력한 난독화, 맞춤형 암호화, 인증된 WebSocket 통신에 의존합니다.

조사

조사는 Python 바이트코드 로더에서 시작된 단계적 실행 흐름을 분석했습니다. 연구자들은 Base85 디코딩, zlib 압축 해제, 그리고 쉘코드 삽입을 통해 VirtualAlloc함이 관찰되었습니다. 추가 분석을 통해 강력히 보호된 .NET 로더 Ykzrh/smveo-csharp-agent.exe가 밝혀졌으며, 이는 가상화와 런타임 재구성을 사용하여 분석을 방해했습니다.

완화

사용자는 비공식적인 또는 의심스러운 비디오 테마 미끼로부터 파일을 다운로드하지 않도록 경고해야 합니다. 기관은 권한 없는 Python 실행 및 로컬 응용 프로그램 데이터 디렉터리 내의 비정상적인 .NET 어셈블리 동작을 모니터링 해야 합니다. 강력한 응용 프로그램 허용 목록 작성 및 의심스러운 실행 키 변경 모니터링 역시 타협의 위험을 줄일 수 있습니다.

대응

이 활동이 감지되면 즉시 영향을 받은 엔드포인트를 격리하여 WebSocket 기반 명령 및 제어 트래픽을 중단해야 합니다. 조사자는 메모리 포렌식을 수행하여 해독된 .NET 페이로드를 캡처하고 감염 범위를 결정해야 합니다. 또한 네트워크 로그는 smveo.com 인프라와의 연결에 대해 검토해야 하며, 노출 가능성이 있는 자격증명은 변경해야 합니다.

graph TB %% Class Definitions Section classDef action fill:#99ccff classDef malware fill:#ff9999 classDef persistence fill:#99ff99 classDef obfuscation fill:#ffff99 classDef tool fill:#cccccc %% Node definitions act_user_exec[“<b>Action</b> – <b>T1204 User Execution</b><br/>Victim interacts with a lure<br/>disguised as a fake Google Drive<br/>or SMVEO video download.”] class act_user_exec action act_drive_by[“<b>Action</b> – <b>T1189 Drive-by Compromise</b><br/>User downloads malicious file:<br/>DriveVideoSetup-x64-0.1.0.exe.”] class act_drive_by action mal_setup[“<b>Malware</b> – <b>Initial Executable</b><br/>File: DriveVideoSetup-x64-0.1.0.exe<br/>Establishes persistence and<br/>starts deobfuscation chain.”] class mal_setup malware per_registry[“<b>Action</b> – <b>T1547.014 Persistence</b><br/>Modifies registry key:<br/>HKCUSoftwareMicrosoftWindowsCurrentVersionRun”] class per_registry persistence act_deobf[“<b>Action</b> – <b>T1140 Deobfuscate/Decode Files</b><br/>Complex Python stages involving<br/>Base85 decoding, zlib decompression,<br/>and marshal.loads.”] class act_deobf obfuscation tool_donut[“<b>Tool</b> – <b>DonutLoader</b><br/>Mechanism used to execute<br/>shellcode in memory.”] class tool_donut tool mal_ykzrh[“<b>Malware</b> – <b>Ykzrh.exe</b><br/>Highly protected .NET loader<br/>utilizing virtualization.”] class mal_ykzrh malware act_packing[“<b>Action</b> – <b>T1027.002 Software Packing</b><br/>Uses custom bytecode interpreters<br/>and virtualization to hide core logic.”] class act_packing obfuscation mal_purerat[“<b>Malware</b> – <b>PureRAT</b><br/>Core functionality of the attack<br/>hidden via obfuscation.”] class mal_purerat malware act_cert_steal[“<b>Action</b> – <b>T1649 Steal or Forge Authentication Certificates</b><br/>Generates client.crt and client.key<br/>under %LOCALAPPDATA%SMVEO.”] class act_cert_steal action comm_c2[“<b>Action</b> – <b>C2 Communication</b><br/>Authenticated WebSocket communication<br/>to agent.sm-veo.com.”] class comm_c2 action %% Connections act_user_exec –>|leads_to| act_drive_by act_drive_by –>|executes| mal_setup mal_setup –>|performs| per_registry mal_setup –>|initiates| act_deobf act_deobf –>|leads_to| tool_donut tool_donut –>|deploys| mal_ykzrh mal_ykzrh –>|utilizes| act_packing act_packing –>|hides| mal_purerat mal_purerat –>|performs| act_cert_steal act_cert_steal –>|facilitates| comm_c2

공격 흐름

시뮬레이션 실행

필수 조건: 텔레메트리 및 기준선 사전 비행 검사가 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적수 기술(TTP)의 정확한 실행을 상세히 설명합니다. 명령 및 내러티브는 식별된 TTP를 직접 반영하고 탐지 로직에 의해 예상되는 정확한 텔레메트리를 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련 없는 예제는 오진으로 이어질 것입니다.

  • 공격 내러티브 및 명령: 적수는 PureRAT 변종을 성공적으로 배포했습니다. 제어를 유지하기 위해, 이 악성코드는 지속적인 명령 및 제어(C2) 채널을 설정합니다. 표준 HTTP 폴링 대신, 장기간의 WebSocket 스트림을 검사하지 않을 수 있는 전통적인 웹 프록시를 우회하기 위해 인증된 WebSocket 연결을 사용합니다. 공격자의 목표는 agent.sm-veo.com 에서 안정적이고 낮은 지연의 터널을 설정하는 것입니다 8443포트로. 이 시뮬레이션은 PowerShell 스크립트를 사용하여 이 네트워크 동작을 모방하며 악성 URI로의 연결을 시작합니다.

  • 회귀 테스트 스크립트:

    # PureRAT 변종 C2를 WebSocket 통해 시뮬레이션
    # 목표: 목적지 도메인 또는 URL을 통해 탐지 규칙을 트리거.
    
    $targetUrl = "wss://agent.sm-veo.com:8443/v1/ws"
    $targetDomain = "agent.sm-veo.com"
    
    Write-Host "[+] PureRAT C2 시뮬레이션 시작..." -ForegroundColor Cyan
    
    try {
        Write-Host "[+] $targetUrl에 WebSocket 연결을 시도합니다"
        # 특정 프로토콜 동작을 시뮬레이트하기 위해 .NET WebSocket 클라이언트 사용
        $ws = New-Object System.Net.WebSockets.ClientWebSocket
        $uri = New-Object System.Uri($targetUrl)
        $ct = New-Object System.Threading.CancellationTokenSource
    
        # 네트워크 텔레메트리를 트리거하기 위해 성공적인 핸드셰이크가 필요하지 않습니다,
        # 단지 지정된 목적지로의 연결 시도만.
        $task = $ws.ConnectAsync($uri, $ct.Token)
    
        # 텔레메트리 생성을 위한 연결 시도 대기
        Start-Sleep -Seconds 5
        Write-Host "[!] 연결 시도 완료. SIEM에서 텔레메트리를 확인하세요." -ForegroundColor Green
    }
    catch {
        Write-Host "[!] 연결 실패 (도메인이 싱크홀이거나 실제가 아닌 경우 예상됨), 하지만 텔레메트리가 생성되어야 합니다." -ForegroundColor Yellow
    }
    finally {
        if ($ws) { $ws.Dispose() }
    }
  • 정리 명령:

    # 이 특정 시뮬레이션 스크립트에 의해 지속적인 파일이나 레지스트리 키가 수정되지 않았습니다.
    # 지속성 (T1547.001)이 시뮬레이션 된 경우 다음을 사용하십시오:
    # Remove-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' -Name 'PureRAT_Update'
    Write-Host "[+] 정리 완료. 네트워크 시뮬레이션으로 인한 아티팩트가 남지 않았습니다." -ForegroundColor Cyan