분석 정보/악성코드 분석 정보

OneNote 문서를 활용한 악성코드 유포

TACHYON & ISARC 2023. 4. 28. 17:37

최근, OneNote 문서를 악용해 악성코드를 유포하는 사례가 잇따라 발견되고 있다. 공격자들은 OneNote 문서에 악의적인 의도를 담은 파일을 첨부한 후, 문서 내부에 생성된 첨부 파일 아이콘 위에 사용자의 클릭을 유도하는 디자인 요소를 덧씌운다. 이러한 디자인 요소에는 보통 “View” 또는 “Open” 등의 버튼을 클릭하도록 유도하는 내용을 포함한다. 이후, 사용자가 첨부 파일 아이콘이 숨겨진 부분을 클릭하면 공격자의 의도대로 첨부된 파일이 실행돼 악성 행위를 수행할 수 있다.

 

 

1. 분석

OneNote 문서에 HTA 파일 또는 CMD 파일을 첨부해 악의적인 행위를 하는 두 가지 사례에 대해 설명한다.

 

1.1. wscript를 사용하는 경우 (HTA)

OneNote 문서에 첨부한 HTA 파일은 [그림 1]에서 볼 수 있듯이 Open 버튼 뒤에 숨겨져 있다. 문서 내에 작성된 내용을 따라 사용자가 Open 버튼을 더블 클릭하면 숨겨진 파일이 실행되고 에러 메시지가 작성된 창을 띄운다.

 

[그림 1] OneNote 메인 화면 – HTA 첨부 파일

 

[그림 1]에서 실행한 첨부 파일은 먼저, 파일 내부에 작성된 “content” 요소의 데이터를 Name 레지스트리 키에 쓴다. 해당 데이터는 난독화 된 값이며, [그림 2]는 작성한 내용을 확인한 결과이다. 

- 레지스트리 경로 : HKCU\Software\Firm\Soft | Name

 

[그림 2] 난독화된 데이터 저장

 

그 후, Name 레지스트리 키에 저장된 데이터를 읽어 난독화를 해제하고 curl을 사용해 공격자의 C&C 서버와 연결을 시도하지만 분석 시점에서는 정상적으로 연결되지 않았다. 만약, C&C 서버와 연결될 경우 페이로드를 다운로드해 ‘C:\ProgramData’ 경로에 저장하고 “rundll32.exe”로 실행한다.

- 다운로드한 파일 저장 경로 : C:\ProgramData\512.png

 

[그림 3] 난독화 해제 및 공격자 C&C 서버 연결

 

1.2. powershell을 사용하는 경우 (CMD) 

OneNote 문서에 첨부한 CMD 파일은 [그림 4]에서 볼 수 있듯이 Open 버튼 뒤에 숨겨져 있다. 문서 내에 작성된 내용을 따라 사용자가 Open 버튼을 더블 클릭하면 숨겨진 파일이 실행된다. 

 

[그림 4] OneNote 메인 화면 – CMD 첨부 파일

 

실행된 첨부 파일은 파워쉘 스크립트를 사용해 가지고 있던 데이터의 난독화를 해제한 후, 지정된 경로에 “acx1t.cmd”란 이름으로 파일을 생성 및 실행한다.

- 난독화 해제한 데이터 파일 생성 경로 : C:\Users\Public\acx1t.cmd

 

[그림 5] 첨부 파일 내부 코드 - open.cmd

 

 

이후, “acx1t.cmd”는 공격자의 C&C 서버에 연결을 시도하지만 분석 시점에서는 연결되지 않았다. 정상적으로 연결되면 [그림 6]의 코드에 따라 페이로드를 다운로드 한 후, ‘C:\ProgramData’ 경로에 저장해 실행한다. 

- 다운로드한 파일 저장 경로 : C:\ProgramData\ak05Edj.jpg 

 

[그림 6] 공격자 C&C 서버 연결 시도

 

3. OneNote 파일 구조

다음은 OneNote 파일을 확인하는 방법 및 첨부된 파일의 정보를 확인하는 방법이다. 

 

2.1. FileNodeHeader

OneNote 문서는 파일의 시작 오프셋에 위치한 Header 구조체를 사용해 정보를 나타내며, guidFileType 필드의 값으로 .one 파일 형식의 GUID 값을 확인할 수 있다. 참고로 Microsoft 공식 문서에서는 Header 구조체를 FileNodeHeader로도 표현한다.

 

- 파일 형식 : .one

 ◼ FileNodeHeader.guidFileType : {7B5C52E4-D88C-4DA7-AEB1-5378D02996D3}

 

[그림 7] FileNodeHeader 구조체

 

 

2.2. FileDataStoreObject

OneNote 문서에 첨부한 데이터는 FileDataStoreObject 구조체를 사용해 저장한다. [그림 8]은 [그림 5]에서 설명한 Open.cmd 파일의 데이터이며, guidHeader와 guidFooter로 첨부된 파일의 범위를 확인할 수 있다.

 

- FileDataStoreObject

 ◼ guidHeader : {BDE316E7-2665-4511-A4C4-8D4D0B7A9EAC}

 ◼ guidFooter : {71FBA722-0F79-4A0B-BB13-899256426B24}

 

[그림 8] FileDataStoreObject 구조체

 

 

3. 결론

보고서에서 언급한 경우에서는 최종 페이로드로 Qakbot 악성코드를 유포하는 것으로 알려졌으며, 그 외에도 다양한 RAT 등이 유포될 수 있다. 또한, 악의적인 목적의 페이로드를 문서에 숨겨 탐지를 회피하고 사용자의 방심을 유도하기에 주의가 필요하다. 따라서, 출처가 불분명한 메일에 첨부된 파일의 실행을 지양하고, 백신 프로그램의 실시간 감시 활성화와 항상 최신 버전으로 유지할 것을 권고한다. 

 

[그림 9] TACHYON Internet Security 5.0 진단 및 치료 화면