본문 바로가기

정보보안/Spear-Phishing

[Spear-Phishing] Malicious MS-Office Document XLSB VBA Macro Analysis

728x90

1. XLSB Structure

  • OOXML/Open Pakaging Conventions(OPC)
  • Binary 형태 파일로 스프레드시트 데이터를 저장
  • 빠르게 읽고 쓸 수 있다.
  • zip 기반

zip

 

content types.xml은 패키지 파트의 내용 타입의 목록을 가진다.

 

package 파일의 연관성을 가지는 Rels파일과, OOXML문서에 관련된 특성을 포함하는 app.xml/core.xml파일도 있다.

 

xl 디렉토리에는 레이아웃등의 구성요소가 기능별로 나뉘어져 저장된다.


2. File Analysis

 

먼저 oleid를 통해 분석해보자.

 

oleid

 

Risk가 High 수준의 VBA Macro가 들어있다.

 

strings를 통해 문자열을 추출해보자.

 

문자열을 txt 파일로 저장해 powershell 코드 혹은 C2 도메인 문자열이 있는지 확인해봤으나

 

의심가는 문자열은 없다.

 

이번엔 olevba를 통해 분석해보자.

 

macro

 

위와 같은 파일에서 악성 매크로가 탐지되었다.

 

autoexec

 

또한 여러 의심스러운 키워드를 볼 수 있다.

 

이제 문서열람을 통해 직접적인 매크로를 확인해본다.

 

excel

 

미국의 WELLS FARGO를 사칭해 사용자가 문서의 매크로를 허용하도록 유도하고 있다.


3. Macro Analysis

 

이제 내장된 매크로를 분석해보자.

 

Excel 개발도구를 통해 VBA 스크립트를 분석한다.

 

ThisWorkbook

 

VBA 매크로가 있던 ThisWorkbook 객체를 살펴보기로 하자.

 

var

 

g열의 5,6행을 변수 저장 장소로 사용하고 있다.

 

숨겨진 G열을 열어 엑셀 파일에서 확인해보면

 

code

 

숨어있는 Powershell 코드가 보인다.

 

code

 

디버깅을 진행하다보면 이렇게 powershell 코드가 보인다.

 

이후 sSYno 변수에 object를 생성하고 for문을 통해 문자열을 조합해 반환해준다.

 

shell

 

이제 프로그램을 실행할 수 있는 환경이 만들어졌다.

 

misc.vbs

 

디버깅을 진행하다보면 misc.vbs 파일이 만들어지는 것을 볼 수 있다.

 

이제 g5에 있던 파워셸코드를 세미콜론 기준으로 정렬해 파워셸 ise에 복사해주자.

 

code

 

난독화된 코드를 정리해주는 코드가 존재할 것이다. 

 

4번을 보면 문자열을 join하는 것을 볼 수 있고, 5번에 보면 문자열을 합치는 규칙이 나와있다.

 

따라서 먼저 4번 라인까지 선택실행 해준 후 IEX의 안쪽부분을 선택실행해주자.

 

shellcode

 

그러면 셸코드가 나오게 된다.

 

이 셸코드를 분석해보면, Onedrive에서 파일을 다운로드 받아 tmp 경로에 misc.vbs파일로 저장하고

 

6번 라인의 코드로 실행하는 것도 알 수 있다. 실제로 Local\Temp에 들어가 확인해보면

 

misc

 

파일이 저장되어있고, 파일 안에는 html파일이 다운로드되어 있다.

728x90