Kimsuky의 CHM 기술 내부: 다중 단계 실행 및 선택적 페이로드 전달
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
Kimsuky는 악성 컴파일된 HTML (.chm) 파일을 초기 유인책으로 사용해 다단계 감염 체인을 유발합니다. 이 운영은 PowerShell, certutil, 및 wscript 와 같은 Windows 기본 유틸리티를 악용해 시스템을 프로파일링하고, 예약 작업을 통해 지속성을 확립하며, 수집된 데이터를 유출합니다. 또한, 특정 환경이나 행동 조건이 충족된 후에만 최종 운영 구성 요소를 제공하는 선택적 페이로드 전달을 적용합니다.
조사
연구원은 의심스러운 CHM 샘플을 분석하고 여러 VBScript 및 PowerShell 단계를 포함한 실행 체인을 재구성했습니다. 네트워크 요청을 재현하고 다양한 프록시 위치에서 테스트함으로써, 연구원은 샌드박스 환경으로 최종 페이로드가 전달되지 않는 선택적 응답 모델을 발견했습니다. 조사 결과 파비콘의 유사성 및 웹 서버의 지문을 통해 기존 Kimsuky 활동과 인프라를 연결했습니다.
완화
조직은 hh.exe, wscript.exe or wscript.exe 이 PowerShell 또는 cmd.exe를 실행하는 경우와 같이 의심스러운 프로세스 상속을 모니터링해야 합니다. 인터넷 캐시와 같은 사용자 쓰기 가능 위치에서 스크립트 콘텐츠의 실행을 제한하면 지속성을 차단하는 데 도움이 됩니다. 인터넷 익스플로러 및 Microsoft Edge 레지스트리 설정에 대한 무단 변경을 모니터링하는 것도 호스트 조작 감지를 개선할 수 있습니다.
응답
이 활동이 감지되면 추가적인 명령 및 제어 트래픽을 방지하기 위해 영향을 받는 엔드포인트를 즉시 격리합니다. 프로세스 메모리에 로드된 파일리스 PowerShell 페이로드를 식별하기 위해 메모리 포렌식을 수행합니다. Edge Updater와 같은 의심스러운 항목에 대해 예약된 작업을 검토하고 %USERPROFILE%Links Edge Updater and inspect the 디렉터리를 점검하여 속임수 .dat directory for deceptive .dat or .ini 파일이 있는지 확인합니다.
공격 흐름
탐지
Invoke-RestMethod의 의심스러운 사용 (powershell을 통해)
보기
가능한 안티바이러스 또는 방화벽 소프트웨어 열거 (프로세스 생성 방식)
보기
가능한 시스템 열거 (cmdline을 통해)
보기
LOLBAS WScript / CScript (프로세스 생성 방식)
보기
cmdline을 통한 데이터 인코딩 및 인증서 작업을 위한 Certutil 사용
보기
certutil.exe를 사용한 의심스러운 파일 디코딩 [Windows Sysmon]
보기
Kimsuky PowerShell 악성 활동 via CHM 파일 [Windows PowerShell]
보기
Kimsuky CHM 파일 실행 분석 [Windows 프로세스 생성]
보기
시뮬레이션 실행
전제 조건: 텔레메트리 및 기준선 사전 비행 검사가 통과해야 합니다.
이유: 이 섹션에서는 탐지 규칙을 유발하도록 설계된 상대 측 기술 (TTP)의 정확한 실행을 자세히 설명합니다. 명령과 내러티브는 탐지 논리에 의해 식별된 TTP들을 직접 반영해야 하며, 탐지 논리가 기대하는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련 없는 예는 오진을 유발할 수 있습니다.
-
공격 내러티브 및 명령: 공격자는 무기화된 파일을 통해 초기 실행을 달성하려고 합니다. 사용자가 파일을 열면 컴파일된 HTML 도움말 파일이 내장된 스크립트를 사용하여
.chm을 호출합니다. 표준 탐지를 회피하기 위해 배우는wscript.exe을 사용하여wscript.exe을 실행하여 셸 실행을 정당한 Windows 도움말 프로세스로 효과적으로 위장합니다. 목표는 숨겨진 PowerShell 명령을 실행하여 발판을 확보하고 2단계 페이로드를 끌어오는 것입니다.을 실행하여 셸 실행을 정당한 Windows 도움말 프로세스로 효과적으로 위장합니다. 목표는 숨겨진 PowerShell 명령을 실행하여 발판을 확보하고 2단계 페이로드를 끌어오는 것입니다., effectively masking the shell execution under a legitimate Windows help process. The goal is to establish a foothold by executing a hidden PowerShell command that can pull down a secondary stage payload. -
회귀 테스트 스크립트:
# Kimsuky CHM-to-PowerShell 실행 체인 시뮬레이션 # 이 스크립트는 규칙에 따라 hh.exe가 PowerShell을 생성하는 동작을 시뮬레이션합니다. Write-Host "[+] Kimsuky CHM 시뮬레이션 시작..." -ForegroundColor Cyan # 1. hh.exe가 PowerShell을 생성하는 시뮬레이션 (Matches selection_hh) Write-Host "[+] 규칙 유도: hh.exe가 PowerShell을 생성..." -ForegroundColor Yellow Start-Process "hh.exe" -ArgumentList "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command Write-Output '시뮬레이션 성공'" # 2. wscript.exe가 VBScript를 실행하는 시뮬레이션 (Matches selection_wscript) Write-Host "[+] 규칙 유도: VBScript 플래그가 있는 wscript.exe..." -ForegroundColor Yellow $tempVBS = "$env:TEMPtest_sim.vbs" "WScript.Echo ""시뮬레이션 성공""" | Out-File -FilePath $tempVBS -Encoding ascii Start-Process "wscript.exe" -ArgumentList "/e:vbscript $tempVBS" # 3. 숨겨진 창 스타일의 cmd.exe 시뮬레이션 (Matches selection_cmd) Write-Host "[+] 규칙 유도: 숨겨진 창 스타일의 cmd.exe..." -ForegroundColor Yellow Start-Process "cmd.exe" -ArgumentList "/c PowerShell -WindowStyle Hidden -Command Write-Output '시뮬레이션 성공'" Write-Host "[+] 시뮬레이션 명령 전송 완료." -ForegroundColor Green -
정리 명령어:
# 시뮬레이션 중 생성된 임시 파일 정리 Remove-Item -Path "$env:TEMPtest_sim.vbs" -ErrorAction SilentlyContinue Write-Host "[+] 정리 완료." -ForegroundColor Cyan