[Malware] OXLOADER: 실행 조건과 CASTLESTEALER 전달 과정

OXLOADER 보고서의 실행 흐름과 환경 검사, CASTLESTEALER 전달 과정을 조건과 확인된 행위로 나눠 정리합니다.

개요

Elastic Security Labs의 OXLOADER 보고서의 실행 조건과 최종 행위를 정리합니다.

분석된 실행 흐름

  1. Node.js 사칭 광고 → 가짜 페이지 → 악성 배치 스크립트 → OXLOADER 실행
  2. main() 이전의 CRT 초기화 단계에서 악성 코드 실행
  3. 단계적 복호화와 Windows API 탐색
  4. 환경 조건 검사. 실패하면 중단
  5. OCX에서 셸코드 실행 → DonutLoader → CASTLESTEALER 메모리 로드

제어 흐름 평탄화, 불투명 조건식, MBA와 함수 조각 분산으로 실행 경로를 감춥니다.

실행 조건

검사를 모두 통과해야 다음 단계로 진행합니다.

검사계속 실행하는 조건
에뮬레이션WNetAddConnection2W 호출 후 TEB의 LastErrorValue가 ERROR_BAD_NAME(0x43)
CPU3개 이상
물리 메모리3GB 이상
화면 주사율20Hz 이상
지역CIS 지역 제외
UI 언어러시아어 0x419 제외

예상과 다른 API 응답을 보이면 중단합니다.
조건 실패만으로 VM이라고 단정할 수는 없습니다.

확인된 행위

  1. 정상 DLL dui70.dll을 임시 .ocx로 복사
  2. 실행 가능한 .xtext 섹션 추가
  3. OXLOADER의 .reloc에 숨긴 셸코드를 .xtext로 복사해 실행
  4. DonutLoader가 페이로드를 복호화·압축 해제하고 CASTLESTEALER 실행

OCX를 생성하므로 전체 공격은 파일리스가 아닙니다.
보고서는 전달 과정에 집중합니다. 실제 탈취 데이터나 유출 성공까지 단정하지 않습니다.

정리

실행 조건을 통과해야 후속 행위가 나타납니다.
Sandbox의 관찰과 코드의 Branch를 함께 확인해야 합니다.