개요
Unit 42는 2026년 4월 대규모 Vidar Stealer + XMRig 캠페인을 분석했다. 정보 탈취와 크립토마이닝을 동시에 수행하는 이중 목적 캠페인으로, 다음 세 가지 회피 기법이 결합돼 있다.
- Code Signing Impersonation — JustWatch, BleacherReport 등 정상 기업의 인증서를 흉내낸 Rogue CA로 로더에 코드 서명
- Go 로더 + Fantasm 패커 — Go 언어 기반 로더에 Fantasm 패커를 이중 적용, PEB 워킹·AMSI 우회로 인메모리 실행
- File Inflation (최대 2GB) — 샌드박스·AV 분석 도구가 처리 못 하는 크기로 부풀려 방어 회피
최종 페이로드는 X3D MINER(XMRig 변종) + Vidar Stealer(FileID V4 프로토콜) 를 병렬 실행하며, 감염 성공 시 Telegram 봇으로 실시간 알림을 공격자에게 보낸다.

▲ Figure 1 — 2026년 4월 캠페인 — 일별 Vidar Stealer 샘플 발견 수 (출처: Unit 42)
캠페인 개요 표
| 항목 | 내용 |
|---|---|
| 관찰 시기 | 2026년 4월 (대규모 파동) |
| 유포 경로 | 말버타이징(malvertising) → 패스워드 보호 아카이브 다운로드 |
| 로더 | Factory-v3 (Go 언어 기반) |
| 패커 | Fantasm packer (이중 적용) |
| 스테이지 2 | X3D MINER (XMRig 변종) + Vidar Stealer |
| Vidar 프로토콜 | FileID V4 |
| C2 서버 | 4개 IP (Vidar C2 클러스터) |
| 채굴 풀 | pool.supportxmr[.]com (Monero) |
| 지역 확인 | ip-api[.]com/json (GET) |
| 알림 채널 | Telegram 봇 (감염 성공 알림) |
공격 흐름
CN=justwatch[.]com). 이후 BleacherReport[.]com 등으로 인증서를 정기적으로 갱신·교체AmsiScanBuffer 위치에 0x80070057 (E_INVALIDARG) 리턴 바이트 패치 → 안티멀웨어 스캔 무력화GET http://ip-api[.]com/json — 피해자 공인 IP + 국가 조회, 이후 Telegram 알림에 삽입pool.supportxmr[.]com 대상 Monero 채굴 개시, 마이닝 프록시로 136.243.203[.]109 사용
▲ Figure 5 — Factory-v3를 통한 X3D MINER · Vidar Stealer 실행 체인 (출처: Unit 42)
핵심 기법 분석
1) Code Signing Impersonation
정상 로 신뢰받는 기업 인증서를 완벽하게 복제한 뒤 Rogue CA로 서명하는 기법이다. 공개 신뢰 저장소에 없는 CA라 정식 체인 검증은 실패하지만, 파일 서명 정보만 표면적으로 보면 정상 기업 소유로 보인다.
- 초기 로더:
CN=justwatch[.]com서명 → JustWatch 위장 - 이후 갱신:
CN=bleacherreport[.]com로 회전 → BleacherReport 위장
이 기법은 자동 방역 도구가 인증서 발급자 이름 기반 화이트리스트를 사용할 경우 우회 가능성을 만든다.

▲ Figure 3 — Rogue CA로 발급된 로더의 인증서 정보 (출처: Unit 42)
2) Fantasm 패커 + Go 로더 (Factory-v3)
Go 언어로 작성된 로더에 Fantasm 패커를 이중 적용한다.
- Go 컴파일 특성상 PDB / 빌드 머신 경로가 바이너리에 잔존 — 공격자 개발 환경 프로파일링 가능
- 정적 링킹으로 인해 최종 바이너리 크기가 이미 크며, 여기에 인플레이션 스텁을 추가해 최대 2GB까지 부풀림
- 다수 AV/샌드박스는 500MB~1GB 이상 파일 스캔 스킵 기본 정책 → 회피

▲ Figure 2 — 로더 바이너리에 잔존한 빌드 머신 경로 (출처: Unit 42)
3) AMSI 우회 — AmsiScanBuffer 패치
amsi.dll!AmsiScanBuffer 함수 시작부에 E_INVALIDARG(0x80070057) 를 즉시 리턴하도록 바이트 패치를 주입한다. 이후 실행되는 모든 스크립트·인메모리 페이로드에 대해 AMSI가 항상 “안전"으로 응답하게 됨.
패치 방식:
LoadLibraryA("amsi.dll")+GetProcAddress("AmsiScanBuffer")(또는 PEB 워킹)- 프리앰블 6바이트를
mov eax, 0x80070057; ret로 덮어씀 VirtualProtect로 페이지 권한을PAGE_EXECUTE_READWRITE로 임시 전환

▲ Figure 4 — AmsiScanBuffer 위치에 기록된 패치 바이트 (0x80070057) (출처: Unit 42)
4) File Inflation — 최대 2GB
로더 자체 크기가 이미 큰데(수백 MB) 여기에 더미 섹션 추가로 최종 2GB까지 부풀린다. 실무적으로 다수 AV가 스캔 대상 크기 상한을 두므로, 크기만으로도 스캔 회피가 발생한다.
5) PEB 워킹
Import Address Table을 우회하기 위해 Process Environment Block(PEB) 워킹으로 kernel32.dll 등 로드된 모듈을 런타임에 직접 찾고 API 주소를 해석한다.
6) 지연 실행 (Sleep-based)
샌드박스 우회를 위해 의도적인 sleep을 삽입 — 짧은 실행 시간(보통 3~5분) 안에 판정하는 자동 분석 환경을 피한다.
스테이지 2 — X3D MINER + Vidar Stealer 병렬
Factory-v3 로더는 두 페이로드를 동시 실행한다.
X3D MINER
- 기반: XMRig (오픈소스 Monero 채굴기) 변종
- 마이닝 풀:
pool.supportxmr[.]com - 마이닝 프록시:
136.243.203[.]109 - 화폐: XMR (Monero) — 프라이버시 보장 코인
Vidar Stealer
- FileID V4 프로토콜 (Vidar 최신 프로토콜)
- C2: 4개 IP 클러스터 (
116.203.243[.]208,136.243.203[.]109,136.243.203[.]111,138.199.246[.]13) - 수집 대상: 브라우저 자격증명·쿠키·자동완성, 암호화폐 지갑, FTP/이메일 클라이언트, 시스템 정보, 스크린샷
Telegram 알림
공격자는 감염 성공 시 Telegram 봇 토큰을 이용해 알림을 받는다. 알림 메시지에는 피해자 IP + 국가(from ip-api[.]com)가 포함되며, 봇 토큰·Monero 지갑 주소·마이닝 풀 호스트명은 다음 키로 암호화된다.
Key: 69946018ddda1058ce5c2a556c78a747838865c47074dcb165effb0840cb1cf5
IoC 요약
C2 IP (Vidar)
116.203.243[.]208136.243.203[.]109(마이닝 프록시 겸용)136.243.203[.]111138.199.246[.]13
도메인
| 도메인 | 용도 |
|---|---|
justwatch[.]com | 코드 서명 위장 대상 (Rogue CA) |
bleacherreport[.]com | 코드 서명 위장 대상 (Rogue CA) |
ip-api[.]com | 피해자 지리 정보 조회 |
pool.supportxmr[.]com | Monero 마이닝 풀 |
SHA-256 해시
총 99개 확인 (frontmatter에 전량 포함, IoC 그래프 자동 연동). 대표 샘플:
03e6f4f49cec3af38bbec9ed64c195c7a85a630ec989efb3669f04a2993c1dd769946018ddda1058ce5c2a556c78a747838865c47074dcb165effb0840cb1cf5(Telegram 봇 토큰 암호화 키)- … 나머지 97개는 frontmatter 참조
SHA-1
ab92f731ab20774dfdb95664ee41a2fbafe2a284
MITRE ATT&CK
| Tactic | Technique |
|---|---|
| Initial Access | T1189 — Drive-by Compromise (malvertising) |
| Defense Evasion | T1553.002 — Code Signing / T1027.001 — Binary Padding (파일 인플레이션) / T1562.001 — AMSI Bypass |
| Execution | T1204 — User Execution |
| Discovery | T1082 — System Information / T1614 — System Location |
| Collection | T1005 — Data from Local System / T1503 — Credentials from Web Browsers |
| C2 | T1071 — Application Layer Protocol |
| Impact | T1496 — Resource Hijacking (크립토마이닝) |
| Exfiltration | T1041 — Exfiltration Over C2 |
방어 권고
| 영역 | 권고 |
|---|---|
| 인증서 검증 | 실행 파일의 서명 체인 검증 (subject CN 화이트리스트 지양, root CA 신뢰성 함께 확인) |
| AMSI 무결성 | AMSI 함수 프리앰블 무결성 모니터링, EDR로 amsi.dll 코드 페이지 쓰기 이벤트 탐지 |
| 대용량 실행 파일 | 500MB 이상 미서명 실행 파일 실행 시 사전 알림 정책 |
| 광고 차단 | 광고 네트워크 화이트리스트/브라우저 광고 차단 |
| 프로세스 원격 스레드 | Fantasm 패커 특유의 원격 스레드 생성·메모리 매핑 패턴 EDR 룰 |
| 아웃바운드 트래픽 | ip-api[.]com, supportxmr[.]com 도메인 접속 알림 |
| 크립토마이닝 탐지 | 지속적 고 CPU 사용 + Stratum 프로토콜 트래픽 탐지 |
시사점
이 캠페인은 “이중 목적 페이로드 + 다층 회피” 조합의 전형이다. 개별 기법(AMSI 패치, 코드 서명 위장, 파일 인플레이션, PEB 워킹, sleep 지연) 각각은 이미 잘 알려진 기법이지만, 전부 결합해 다층으로 배치된 것이 이번 캠페인의 핵심 특징이다.
특히 Rogue CA로 정상 기업 인증서를 갱신형으로 회전하는 방식은 공격 인프라의 지속 유지 능력을 시사하며, 크립토마이닝의 직접 수익화 + Vidar Stealer의 자격증명 유출 이중 목적 구조는 캠페인 ROI를 극대화하는 설계로 평가된다.