[Malware] OXLOADER: 실행 조건과 CASTLESTEALER 전달 과정
Updated:
OXLOADER 보고서의 실행 흐름과 환경 검사, CASTLESTEALER 전달 과정을 조건과 확인된 행위로 나눠 정리합니다.
개요
Elastic Security Labs의 OXLOADER 보고서의 실행 조건과 최종 행위를 정리합니다.
- OXLOADER: 후속 악성코드를 전달하는 로더
- CASTLESTEALER: 최종적으로 메모리에 로드되는 정보 탈취 악성코드
분석된 실행 흐름
- Node.js 사칭 광고 → 가짜 페이지 → 악성 배치 스크립트 → OXLOADER 실행
main()이전의 CRT 초기화 단계에서 악성 코드 실행- 단계적 복호화와 Windows API 탐색
- 환경 조건 검사. 실패하면 중단
- OCX에서 셸코드 실행 → DonutLoader → CASTLESTEALER 메모리 로드
제어 흐름 평탄화, 불투명 조건식, MBA와 함수 조각 분산으로 실행 경로를 감춥니다.
실행 조건
검사를 모두 통과해야 다음 단계로 진행합니다.
| 검사 | 계속 실행하는 조건 |
|---|---|
| 에뮬레이션 | WNetAddConnection2W 호출 후 TEB의 LastErrorValue가 ERROR_BAD_NAME(0x43) |
| CPU | 3개 이상 |
| 물리 메모리 | 3GB 이상 |
| 화면 주사율 | 20Hz 이상 |
| 지역 | CIS 지역 제외 |
| UI 언어 | 러시아어 0x419 제외 |
예상과 다른 API 응답을 보이면 중단합니다.
조건 실패만으로 VM이라고 단정할 수는 없습니다.
확인된 행위
- 정상 DLL
dui70.dll을 임시.ocx로 복사 - 실행 가능한
.xtext섹션 추가 - OXLOADER의
.reloc에 숨긴 셸코드를.xtext로 복사해 실행 - DonutLoader가 페이로드를 복호화·압축 해제하고 CASTLESTEALER 실행
OCX를 생성하므로 전체 공격은 파일리스가 아닙니다.
보고서는 전달 과정에 집중합니다. 실제 탈취 데이터나 유출 성공까지 단정하지 않습니다.
정리
실행 조건을 통과해야 후속 행위가 나타납니다.
Sandbox의 관찰과 코드의 Branch를 함께 확인해야 합니다.