COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
Go로 컴파일된 Vidar 2.0 로더 분석 — Oracle 인증서 도용, NTDLL 언후킹, 21개 이벤트 로그 삭제로 EDR을 우회하는 $300 인포스틸러의 새로운 배포 기법
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
Vidar 2.0이 탐지를 피하는 새로운 방법 하나가 지난주 abuse.ch에 포착됐다. Go로 컴파일된 DLL 래퍼에 Oracle 인증서를 붙인 뒤, 안에 실제 Vidar C 페이로드를 숨겨 실행한다. VirusTotal에서 71개 엔진 중 35개만 탐지했고, Kaspersky는 이것을 "Vidar"가 아닌 "Backdoor.Win64.Ciso"로 분류했다.
2025년 10월 6일, 언더그라운드 포럼에서 "Loadbaks"라는 개발자가 Vidar Stealer v2.0 출시를 공지했다. 2018년 Arkei 포크에서 시작한 Vidar는 C++로 작성됐었는데, 2.0에서 순수 C로 전면 재작성됐다.
2025년 하반기 LummaC2가 운영자 신원 노출로 급격히 위축되자, Vidar는 $300 평생 라이선스라는 낮은 진입 장벽을 앞세워 공백을 메웠다. Malwarebytes는 2026년 3월, 해킹된 WordPress 사이트에서 "인간임을 인증하세요" 가짜 CAPTCHA 페이지를 통해 Vidar가 배포되는 캠페인을 추적했다. Acronis는 같은 시기 GitHub에서 수백 개의 게임 치트 가장 리포지토리가 Vidar를 유포하는 것을 관찰했다.
이 글이 분석하는 샘플은 2026년 4월 12일 abuse.ch가 MalwareBazaar에 최초 제출했다. 동일한 imphash(d8b31f8c03e0c76ff245ed05a15ffe6c)를 가진 샘플이 MalwareBazaar에 50개 존재하며, 모두 Vidar 패밀리로 분류된다.
| 항목 | 값 |
|---|---|
| 파일명 | a165117575496e39d26d381f77ffa3c543073734d8bddd945630746835103ca0.dll |
| 파일 타입 | PE32+ executable (DLL) (GUI) x86-64 |
| 크기 | 3,091,648 bytes |
| SHA-256 | a165117575496e39d26d381f77ffa3c543073734d8bddd945630746835103ca0 |
| MD5 | edb270b2e2589a2b6a2e3ed3bd6220c8 |
| imphash | d8b31f8c03e0c76ff245ed05a15ffe6c (Vidar 패밀리 50건 공유) |
| 탐지 점수 | 6.0/10 (CAPEv2) / 35/71 (VT) |
| 최초 제출 | 2026-04-12 07:01 UTC (abuse.ch) |
| 분석 환경 | CAPEv2, windows (win10x64) |
컴파일러/링커 (DIE):
겉으로는 Go 1.25.3으로 컴파일된 DLL이지만, 실제 Vidar 페이로드는 안에 MSVC(Microsoft Visual C/C++ 19.29.30151) 컴파일 PE로 존재한다. Go 바이너리는 로더 역할만 수행한다.
코드 서명 (무효):
www-cs-02.oracle.comOracle의 웹 서버 인증서를 도용해 PE에 서명했다. 코드 서명 인증서 자체가 아니라 TLS 인증서를 악용한 것으로, 서명 자체는 유효하지 않다. 그러나 일부 엔드포인트 보안 제품의 서명 여부 휴리스틱을 우회하는 데 충분하다.
PE 섹션:
| 섹션 | 가상 크기 | 엔트로피 |
|---|---|---|
.text | 0x000c73c0 | 6.22 |
.rdata | 0x001bd780 | 6.00 |
.tls | 0x00000010 | 0.00 |
TLS 섹션(.tls) 존재는 스레드 로컬 스토리지를 활용한 안티디버그 기법과 연관된다.
CAPE 언팩 페이로드:
CAPEv2가 런타임에 메모리에서 추출한 페이로드 2개:
4c32b08d2648b703... — 836,096B / MSVC C++ 컴파일 / 0x0000000140000000 (via rundll32.exe)0f47bf14acc915f0... — 969,728B / MSVC C++ 컴파일 / 0x0000000140000000 (via rundll32.exe)두 페이로드 모두 동일한 가상 주소(0x140000000)에 로드된다. 이는 리플렉티브 PE 로딩 패턴이다. MSVC로 컴파일된 이 페이로드가 실제 Vidar 2.0 스틸러다.
탈취 대상: Chromium 기반 브라우저, Telegram
| IP | 포트 | 역할 |
|---|---|---|
37.27.45.38 (Hetzner 핀란드, AS24940) | 443 | C2 (HTTPS) |
23.59.134.139 | 443 | javadl-esd-secure.oracle.com 위장 |
206.206.82.206 | 80 | Microsoft DO 위장 트래픽 |
142.250.21.94 | 80 | c.pki.goog (CRL 확인) |
C2로 추정되는 37.27.45.38은 Hetzner 핀란드 서버(AS24940)다. VT 탐지율 1/94로 현재까지 거의 알려지지 않은 신규 인프라다.
206.206.82.206에 대한 HTTP 요청 33건은 User-Agent Microsoft-Delivery-Optimization/10.0을 사용한다. Microsoft WSUS/배달 최적화 트래픽으로 위장한 것이다. cacheHostOrigin=dl.delivery.mp.microsoft.com 파라미터까지 포함해 정상 Windows 업데이트 트래픽과 구별하기 어렵게 만들었다.
EDR 제품은 보통 ntdll.dll의 시스템콜 진입점을 후킹해 악성 행위를 감지한다. 이 샘플은 ntdll.dll의 메모리 보호를 PAGE_READWRITE로 변경한 뒤, 디스크의 원본 ntdll.dll로 덮어쓴다.
ntdll_memory_unhooking: Modifies the memory protection of ntdll.dll
to PAGE_READWRITE, indicative of EDR unhooking
이후 모든 시스템콜은 후킹이 제거된 ntdll을 통해 실행되므로, EDR의 행위 감시망을 벗어난다.
Unbacked 메모리에서 실행되는 스레드가 추가로 확인됐다. 디스크 파일에 대응하지 않는 동적 할당 메모리에서 코드가 실행되는 패턴으로, 언팩된 Vidar 페이로드의 실행을 숨긴다.
wevtutil cl 명령으로 21개 Windows 이벤트 로그를 삭제한다.
Microsoft-Windows-Windows Defender/OperationalMicrosoft-Windows-PowerShell/OperationalMicrosoft-Windows-TaskScheduler/OperationalMicrosoft-Windows-AppLocker/EXE and DLLMicrosoft-Windows-CodeIntegrity/OperationalMicrosoft-Windows-WMI-Activity/OperationalDefender 로그, PowerShell 실행 로그, AppLocker 로그를 포함해 포렌식 흔적을 대량으로 지운다. 이벤트 로그 삭제 자체는 Windows 보안 이벤트(EventID 1102, 1100)에 기록되지만, 공격자는 이 로그도 대상에 포함시켰다.
지오펜싱: 레지스트리 언어 키를 확인해 특정 지역(CIS 국가 추정)의 시스템에서는 실행을 중단한다.
가용 메모리 확인: 시스템 가용 메모리를 확인해 가상환경 여부를 판단한다. Vidar 2.0은 2GB 이상의 RAM을 요구한다.
토큰 조작: Unbacked 메모리에서 액세스 토큰을 열람, 복제, 또는 가장(impersonation)을 시도한다. 권한 상승을 위한 사전 정찰로 보인다.
| 타입 | 값 | 맥락 |
|---|---|---|
| SHA-256 | a165117575496e39d26d381f77ffa3c543073734d8bddd945630746835103ca0 | Go 로더 DLL |
| MD5 | edb270b2e2589a2b6a2e3ed3bd6220c8 | Go 로더 DLL |
| SHA-256 | 4c32b08d2648b703b44281e56a04f6b90f74bde7d1a526332b3aa6945e75244c | 언팩 페이로드 1 (Vidar 실체) |
| SHA-256 | 0f47bf14acc915f0755157e8fa4c67231e43d03d8c2cc4fc1f256fbc02d36126 | 언팩 페이로드 2 (Vidar 실체) |
| imphash | d8b31f8c03e0c76ff245ed05a15ffe6c | Vidar 패밀리 공통 (50건 확인) |
| IP | 37.27.45.38 | C2 (Hetzner, 핀란드, AS24940) |
| IP | 206.206.82.206 | Microsoft DO 위장 통신 |
| Domain | javadl-esd-secure.oracle.com | Oracle 서버로 위장 |
| 기법 ID | 설명 | 구현 방식 |
|---|---|---|
| T1027.002 | 소프트웨어 패킹 | Go 외피가 MSVC Vidar를 메모리에서 언팩 |
| T1055 | 프로세스 인젝션 | rundll32.exe에 Vidar 페이로드 인젝션 |
| T1129 | 공유 모듈 실행 | Unbacked 메모리에서 API 수동 해석 |
| T1070.001 | 이벤트 로그 삭제 | wevtutil cl로 21개 로그 삭제 |
| T1082 | 시스템 정보 수집 | 가용 메모리·언어·권한 정찰 |
| T1497 | 가상화 회피 | RAM 2GB 이상·언어 체크 |
| T1539 | 세션 쿠키 탈취 | Chromium 브라우저 쿠키·자격증명 |
| T1071.001 | 애플리케이션 레이어 프로토콜 | HTTPS C2 (37.27.45.38:443) |
| T1036 | 위장 | Microsoft DO UA, Oracle 도메인 위장 |
| T1553.002 | 코드 서명 | Oracle TLS 인증서 도용 |
title: Vidar Go 로더 — NTDLL 언후킹 + 이벤트 로그 대량 삭제
status: experimental
description: Go 컴파일 Vidar 로더의 EDR 우회 + 증거 은폐 패턴 탐지
date: 2026-04-12
logsource:
product: windows
category: process_creation
detection:
wevtutil_bulk:
CommandLine|contains: 'wevtutil'
CommandLine|contains: ' cl '
CommandLine|contains|any:
- 'Defender'
- 'PowerShell'
- 'AppLocker'
- 'CodeIntegrity'
rundll32_unsigned:
Image|endswith: '\rundll32.exe'
ParentImage|endswith: '\rundll32.exe'
condition: wevtutil_bulk or rundll32_unsigned
level: high
falsepositives:
- 시스템 관리 도구 (wevtutil은 드물게 정상 사용)
<Sysmon schemaversion="4.90">
<EventFiltering>
<RuleGroup groupRelation="or">
<NetworkConnect onmatch="include">
<DestinationIp condition="is">37.27.45.38</DestinationIp>
</NetworkConnect>
<ProcessCreate onmatch="include">
<CommandLine condition="contains">wevtutil</CommandLine>
<CommandLine condition="contains"> cl </CommandLine>
</ProcessCreate>
</RuleGroup>
</EventFiltering>
</Sysmon>
이 샘플의 핵심은 탐지 우회 레이어의 중첩이다. Go 외피가 AV 패턴 탐지를 피하고, Oracle 인증서가 서명 기반 신뢰 검사를 흐리며, NTDLL 언후킹이 EDR 행위 감시를 무력화한다. 그 안에서 MSVC Vidar 2.0이 조용히 브라우저 데이터와 암호화폐 지갑을 수집한다.
imphash 기준으로 MalwareBazaar에 동일 패밀리 샘플이 50건 존재한다. 이 Go 래퍼 배포 방식이 이미 Vidar 운영자들 사이에서 표준화됐을 가능성을 시사한다.
방어 우선순위:
Vidar가 한국에서 어떻게 퍼지는지는 ACRStealer 분석에서 유사 사례를 확인할 수 있다. T1055 프로세스 인젝션을 참조한다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 본 분석은 CAPEv2 샌드박스에서 직접 실행하여 수집한 결과를 포함합니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.