본문 바로가기
study

APT 문서형 악성코드 분석

by ms-eo 2025. 11. 18.

문서형 악성코드

(1) 문서형 악성코드는 문서에 악성코드를 은닉, 위장해 삽입하고 공격하는 방식

(2) 비즈니스 업무 시 문서가 필수적인 부분을 노려, 이메일 첨부파일 속에 삽입하여 배포하는 방식을 사용

(3) 대표적인 문서형 악성코드 공격 방법은 아래와 같다

A. 문서파일 위장

B. 악성 스크립트 삽입

C. 문서 편집 프로그램 취약점

OLE(Object Linking & Embedding) 개체

"개체(Object)"란 윈도우용 응용프로그램이 만들어낸 결과물이라고 할 수 있다.

즉, 한글과같이 문서를 작성하는 프로그램에서는 문서가 개체가되고,

음악을 만드는 프로그램에서는 음악 파일이 개체가 된다.

이처럼 개채는 글자, 그림, 소리, 차트, 수식, 표등 다양하다.

"개체 연결과 포함(OLE:Object Linking & Embedding)"은 윈도우에서 각각의 응용프로그램들이

생산한 각양각색의 자료들을 독립적으로 사용하는것이 아니라,

각각의 자료들을 서로 유기적으로 엮어 놓은 것을 말한다.


워드 문서 파일 OLE 개체 삽입

OLE 개체로 계산기를 삽입

개체를 삽입한 후 doc 파일 ssview 로 확인

(SSview: OLE기반의 파일 분석 도구)

HWP Malware 파일 분석

HWP 파일 실행

HWP 파일 실행 시, 위와 같이 패키지 내용 열기 팝업창이 발생

확인 버튼 클릭 시, HWP 파일 종료되며 PDF 열리는것 확인

HwpScan2으로 해당 HWP 확인

(HwpScan2: 아래아한글 취약점 점검 도구)

위와 같이 3개의 OLE가 확인되며, 취약점 검사시, BIN0003.OLE가 취약한것을 확인

참고) HwpScan의 취약점검사 플러그인 확인

아래와같은 스크립트 이용하여 취약점을 검사

플러그인의 경로

apistring.py 확인

위 BIN0003.OLE에서는 GetTempPath API가 발견된것으로 확인

BIN0003.OLE

BIN0003.OLE 파일 Hex(Decompress)로 저장

SSview로 BIN0003.OLE Hex파일 분석시도 시 위와 같이 오류창 발생 확인

HxD를 이용하여 BIN003.OLE Hex 파일 확인

OLE 파일의 헤더(Magic ID)의 일반적인 값은 D0 CF 11 E0 A1 B1 1A E1 이며

위 BIN0003.OLE 파일은 헤더 앞에 00 92 01 00이 추가적으로 입력되어있는것으로 확인

참고) OLE 파일 헤더

OLE 헤더(D0 CF 11 E0 A1 B1 1A E1)의 추가되어있는 앞부분을 삭제 한 뒤 저장

이후 다시 SSview로 확인

PE 파일로 추정되며, \Temp\경로의 txt 파일 확인

Stream Export

Stream Export 한 이후 HxD로 파일 확인 및 PE 헤더인 4D 5A 앞 부분 삭제

PEStudio를 사용하여 PE 악성 행위 관련 정보 확인

파일타입 확인 시, DLL로 확인되며

2020년 9월 18일 날짜 확인 가능

AppData\Local\Temp\qazwsxedcrfv.txt이 파일의 이름으로 추정할수 있으며

base64 문자열 확인 가능

CMD로 특정 프로세스 종료, 파일이름 변경하는것 확인

BIN0004.OLE

SSView로 BIN0004.OLE 파일 확인 시, PDF 문자열 확인되며, PDF 파일 헤더 확인 시 25 50 44 46으로 확인

참고)PDF 파일 헤더

PDF 헤더 앞부분 삭제한 뒤 저장

PEStudio를 사용하여 악성행위 관련 정보 확인 시, 특이사항 없음

문서 파일로 위장에 사용된 정상적인 PDF 파일로 확인

BIN0005.OLE

SSView로 BIN0005.OLE 파일 확인 시, lnk 문자열 확인 되며, lnk 헤더 확인 시, 4C 00 00 00 01 14 02 00 으로 확인

참고)LNK 파일 헤더

LNK 헤더 앞부분 삭제한 뒤 저장

.lnk 파일로 이름 변경 후 속성창 확인

txt 파일을 \OneDrive\경로의 version.dll로 복사한 뒤, 한글파일 종료 및 pdf 파일 실행 확인

version.dll

x32dbg를 이용해 version.dll 파일 확인

[다음을찾기] -> [현재 모듈] -> [문자열참조], [모듈간 호출] 확인

문자열 확인

호출 확인

VBS 생성

VBS 실행

메모리에서 Base64 Dump

Dump한 Base64값 확인 시, 2개로 확인

각각 Base64 디코딩

replace를 수행한 이후 확인

스크립트에서 확인된 url 접속 시 현재는 아무것도 없는것으로 확인됨

HWP 악성코드 Flow