1. XLSB Structure
- OOXML/Open Pakaging Conventions(OPC)
- Binary 형태 파일로 스프레드시트 데이터를 저장
- 빠르게 읽고 쓸 수 있다.
- zip 기반
content types.xml은 패키지 파트의 내용 타입의 목록을 가진다.
package 파일의 연관성을 가지는 Rels파일과, OOXML문서에 관련된 특성을 포함하는 app.xml/core.xml파일도 있다.
xl 디렉토리에는 레이아웃등의 구성요소가 기능별로 나뉘어져 저장된다.
2. File Analysis
먼저 oleid를 통해 분석해보자.
Risk가 High 수준의 VBA Macro가 들어있다.
strings를 통해 문자열을 추출해보자.
문자열을 txt 파일로 저장해 powershell 코드 혹은 C2 도메인 문자열이 있는지 확인해봤으나
의심가는 문자열은 없다.
이번엔 olevba를 통해 분석해보자.
위와 같은 파일에서 악성 매크로가 탐지되었다.
또한 여러 의심스러운 키워드를 볼 수 있다.
이제 문서열람을 통해 직접적인 매크로를 확인해본다.
미국의 WELLS FARGO를 사칭해 사용자가 문서의 매크로를 허용하도록 유도하고 있다.
3. Macro Analysis
이제 내장된 매크로를 분석해보자.
Excel 개발도구를 통해 VBA 스크립트를 분석한다.
VBA 매크로가 있던 ThisWorkbook 객체를 살펴보기로 하자.
g열의 5,6행을 변수 저장 장소로 사용하고 있다.
숨겨진 G열을 열어 엑셀 파일에서 확인해보면
숨어있는 Powershell 코드가 보인다.
디버깅을 진행하다보면 이렇게 powershell 코드가 보인다.
이후 sSYno 변수에 object를 생성하고 for문을 통해 문자열을 조합해 반환해준다.
이제 프로그램을 실행할 수 있는 환경이 만들어졌다.
디버깅을 진행하다보면 misc.vbs 파일이 만들어지는 것을 볼 수 있다.
이제 g5에 있던 파워셸코드를 세미콜론 기준으로 정렬해 파워셸 ise에 복사해주자.
난독화된 코드를 정리해주는 코드가 존재할 것이다.
4번을 보면 문자열을 join하는 것을 볼 수 있고, 5번에 보면 문자열을 합치는 규칙이 나와있다.
따라서 먼저 4번 라인까지 선택실행 해준 후 IEX의 안쪽부분을 선택실행해주자.
그러면 셸코드가 나오게 된다.
이 셸코드를 분석해보면, Onedrive에서 파일을 다운로드 받아 tmp 경로에 misc.vbs파일로 저장하고
6번 라인의 코드로 실행하는 것도 알 수 있다. 실제로 Local\Temp에 들어가 확인해보면
파일이 저장되어있고, 파일 안에는 html파일이 다운로드되어 있다.