Pawn Storm 캠페인, PRISMEX 배포하여 정부 및 중요 기반 시설 엔티티 표적
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
PRISMEX 활동이 감지되면 즉시 영향을 받은 시스템을 격리하고, 메모리에 있는 .NET 어셈블리를 추출하기 위해 휘발성 메모리를 캡처하고, 특이한 스테가노그래픽 PNG 페이로드와 COM 하이재킹 레지스트리 항목을 탐색하십시오. 모든 Filen.io 서브도메인과 wellnesscaremed.com 도메인을 차단하고, 식별된 파일 이름과 예약된 작업에 대한 IOC 기반 탐지 및 차단을 적용하십시오.
대응
조직은 CVE-2026-21509 및 CVE-2026-21513을 즉시 패치하고, 승인되지 않은 클라우드 저장소 서비스에 대한 액세스를 제한하며, 레지스트리를 통해 Shell.Explorer.1 COM 객체를 비활성화해야 합니다. 방어자는 매크로 제한을 강화하고 HKCU\Software\Classes\CLSID에서 COM 등록을 모니터링하고, OneDriveHealth와 같은 의심스러운 예약 작업을 검토해야 합니다. 예기치 않은 CLR 로드를 감지하기 위해 ETW 로깅도 활성화해야 합니다 explorer.exe.
완화
TrendAI 연구원들은 PRISMEX 도구 세트 구성 요소 — PrismexSheet, PrismexDrop, PrismexLoader, PrismexStager — 를 식별하고 이를 이전의 Pawn Storm 활동과 연결했습니다. 연구자들은 공격자가 취약성이 공개되기 몇 주 전에 인프라를 준비한 증거를 발견하였고, 공유 C2 도메인의 사용을 문서화했습니다. wellnesscaremed.com. 연구는 또한 침투 체인 전반에 사용된 MITRE ATT&CK 기술을 매핑했습니다.
조사
Pawn Storm (APT28)은 PRISMEX라는 새로운 악성코드 툴킷을 중심으로 우크라이나 방위 공급망 및 연합 정부와 물류 조직을 겨냥한 캠페인을 시작했습니다. 이 작전은 두 개의 최근 공개된 제로데이 결함, CVE-2026-21509 및 CVE-2026-21513을 악용하고, 명령 및 제어를 위해 합법적인 클라우드 플랫폼을 남용합니다. 도구 세트에는 스테가노그래픽 로더, 지속성을 위한 COM 하이재킹, 및 Filen.io에 호스팅된 Covenant Grunt 스테이저가 포함되어 있습니다. 파일 없는 실행 및 암호화된 네트워크 트래픽으로 인해 탐지는 어려움을 겪습니다.
"graph TB %% Class definitions classDef action fill:#99ccff classDef exploit fill:#ffcc99 classDef file fill:#ffeb99 classDef malware fill:#ff9999 classDef tool fill:#cccccc classDef c2 fill:#ccffcc %% Nodes step1_phishing["<b>Action</b> – <b>T1566.001 Phishing: Spearphishing Attachment</b><br/>Adversaries send targeted RTF documents with malicious OLE objects to victims."] class step1_phishing action artifact_rtf["<b>File</b> – <b>Name</b>: Malicious RTF document<br/>Contains crafted OLE object"] class artifact_rtf file step2_vba["<b>Action</b> – <b>T1059.005 Command and Scripting Interpreter: Visual Basic</b><br/>Embedded VBA macro autou2011executes on document open."] class step2_vba action step3_exploit["<b>Exploit</b> – CVEu20112026u201121509 OLE bypass<br/>Macro contacts malicious WebDAV server and downloads .lnk"] class step3_exploit exploit artifact_lnk["<b>File</b> – <b>Name</b>: Malicious .lnk shortcut"] class artifact_lnk file step4_html["<b>Action</b> – <b>T1218.001 System Binary Proxy Execution: Compiled HTML File</b><br/>.lnk triggers CVEu20112026u201121513 in MSHTML, running embedded HTML payload."] class step4_html action artifact_html["<b>File</b> – <b>Name</b>: Embedded HTML payload"] class artifact_html file step5_com_hijack["<b>Action</b> – <b>T1546.009 Event Triggered Execution: AppCert DLLs</b><br/>Payload registers malicious DLL as InProcServer32 for a CLSID for persistence."] class step5_com_hijack action malicious_dll["<b>Malware</b> – <b>Name</b>: PrismexLoader DLL<br/>Masquerades as legitimate Windows DLL"] class malicious_dll malware step6_dll_hijack["<b>Action</b> – <b>T1574.001 Hijack Execution Flow: DLL</b><br/>Proxy DLL forwards legitimate calls while executing malicious code."] class step6_dll_hijack action step7_stego["<b>Action</b> – <b>T1027.003 Obfuscated Files or Information: Steganography</b><br/>Proxy DLL extracts .NET payload hidden in PNG using Bit Plane Round Robin."] class step7_stego action stego_png["<b>File</b> – <b>Name</b>: PNG image with hidden payload"] class stego_png file dotnet_payload["<b>Malware</b> – <b>Name</b>: .NET Covenant Grunt stager"] class dotnet_payload malware step8_c2["<b>Action</b> – <b>T1102 Web Service</b><br/>Stager communicates with Filen.io cloud storage subdomains for C2."] class step8_c2 action c2_filen["<b>C2</b> – Filen.io cloud storage"] class c2_filen c2 step9_exfil["<b>Action</b> – <b>T1567.002 Exfiltration Over Web Service: Exfiltration to Cloud Storage</b><br/>Collected data encrypted and uploaded to Filen.io."] class step9_exfil action step10_email["<b>Action</b> – <b>T1114.001 Email Collection: Local Email Collection</b><br/>Malware harvests Outlook mailbox files for reconnaissance."] class step10_email action outlook_data["<b>File</b> – <b>Name</b>: Outlook mailbox files (OST/PST)"] class outlook_data file %% Connections step1_phishing –>|delivers| artifact_rtf artifact_rtf –>|triggers| step2_vba step2_vba –>|executes| step3_exploit step3_exploit –>|downloads| artifact_lnk artifact_lnk –>|triggers| step4_html step4_html –>|runs| artifact_html artifact_html –>|loads| step5_com_hijack step5_com_hijack –>|registers| malicious_dll malicious_dll –>|loads| step6_dll_hijack step6_dll_hijack –>|extracts| step7_stego step7_stego –>|reads| stego_png stego_png –>|contains| dotnet_payload dotnet_payload –>|communicates with| step8_c2 step8_c2 –>|uses| c2_filen dotnet_payload –>|exfiltrates data via| step9_exfil step9_exfil –>|stores in| c2_filen step10_email –>|harvests| outlook_data dotnet_payload –>|collects email from| outlook_data %% Class assignments class step1_phishing,step2_vba,step3_exploit,step4_html,step5_com_hijack,step6_dll_hijack,step7_stego,step8_c2,step9_exfil,step10_email action class artifact_rtf,artifact_lnk,artifact_html,stego_png,outlook_data file class malicious_dll,dotnet_payload malware class step3_exploit step4_html step5_com_hijack step6_dll_hijack step7_stego exploit class c2_filen c2
공격 흐름
탐지
자동 시작 위치에서 의심스러운 바이너리 / 스크립트 (파일 이벤트 통해)
보기
가능한 데이터 침투 / 유출 / 제3자 서비스 / 도구를 통한 C2 (DNS 통해)
보기
가능한 데이터 침투 / 유출 / 제3자 서비스 / 도구를 통한 C2 (프락시 통해)
보기
가능한 탐색기 COM 하이재킹 (레지스트리 이벤트 통해)
보기
가능한 Outlook 기반 지속성 (파일 이벤트 통해)
보기
가능한 탐색기 COM 하이재킹 (파일 이벤트 통해)
보기
IOCs (HashSha256)를 감지: Pawn Storm 캠페인 PRISMEX 배포, 정부 및 중요 인프라 엔터티 대상으로
보기
탐색기 프로세스에서 비정상적인 CLR 초기화 탐지 [Windows 프로세스 생성]
보기
PrismexSheet COM 하이재킹 지속성 [Windows 레지스트리 이벤트]
보기
시뮬레이션 실행
전제조건: 텔레메트리 및 기준 사전 비행 검사가 통과해야 합니다.
합리적 근거: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 적대 기술 실행을 자세히 설명합니다. 명령과 내러티브는 식별된 TTP를 직접 반영하고 탐지 논리에 의해 기대되는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련 없는 예제는 오진으로 이어질 수 있습니다.
-
공격 내러티브 및 명령:
- 적대자는 악성 DLL을 획득했습니다 (
evil.dll)를 작성 가능한 디렉토리에 배치했습니다 (예:C:Tempevil.dll). - 지속성을 달성하기 위해, 그들은 CLSID를 선택합니다
{68DDBB56-9D1D-4FD9-89C5-C0DA2A625392}(규칙에 의해 추적되는 GUID 중 하나). - 내장된
reg.exe(또는 PowerShell)을 사용하여, 악성 DLL의 경로로InProcServer32서브 키의 기본값을 설정하여, CLSID의 모든 COM 활성화를 하이재킹 합니다. - 레지스트리 변경은 탐지 규칙과 일치하는 정확한
TargetObject로 EventID 13 항목을 생성합니다.
- 적대자는 악성 DLL을 획득했습니다 (
-
회귀 테스트 스크립트:
# ------------------------------------------------- # PrismexSheet COM 하이재킹 지속성 시뮬레이션 # ------------------------------------------------- $guid = '{68DDBB56-9D1D-4FD9-89C5-C0DA2A625392}' $dllPath = "C:Tempevil.dll" # 악성 DLL이 존재하는지 확인 (테스트를 위한 플레이스홀더) if (-not (Test-Path $dllPath)) { New-Item -Path $dllPath -ItemType File -Force | Out-Null Set-Content -Path $dllPath -Value "악성 페이로드 플레이스홀더" } $regPath = "HKCU:SoftwareClassesCLSID$guidInProcServer32" # 존재하지 않는 경우 키 생성 New-Item -Path $regPath -Force | Out-Null # 기본값을 악성 DLL을 가리키도록 설정 Set-ItemProperty -Path $regPath -Name '(Default)' -Value $dllPath Write-Host "COM 하이재킹이 $regPath -> $dllPath 에 지속되었습니다" -
정리 명령:
# 악성 COM 등록 제거 $guid = '{68DDBB56-9D1D-4FD9-89C5-C0DA2A625392}' $regPath = "HKCU:SoftwareClassesCLSID$guid" Remove-Item -Path $regPath -Recurse -Force # 더미 DLL 삭제 Remove-Item -Path "C:Tempevil.dll" -Force -ErrorAction SilentlyContinue Write-Host "정리 완료."