최근 Microsoft Office Word 문서 파일 내부의 사용자 정의 폼을 이용한 악성코드가 스팸 메일과같은 사회적 공학 기법 (Social Engineering) 을 이용하여 유포되고 있으므로 사용자의 각별한 주의가 필요하다.


해당 악성코드는 VBA (Visual Basic for Applications, Microsoft Office 응용프로그램의 확장을 위한 프로그래밍 언어) 매크로를 이용하여 사용자 정의 폼 내부 암호화된 쉘코드(Shellcode)와 내부에 숨겨진 악성 실행 파일을 통해 정상 프로세스에 인젝션(Injection)하여 악성 행위를 수행한다.

[그림 1] Flowchart


Word 문서 파일을 열면 본문의 이미지를 통해 사용자의 매크로 실행을 유도한다.

[그림 2] 본문 이미지


VBA Editor 내부의 VBA Project 를 통해 [그림 3] 과 같은 매크로와 사용자 정의 폼을 확인할 수 있다. 여기서 사용자 정의 폼이란 체크 박스’, ‘라디오 버튼’, ‘텍스트 박스등과 같이 응용프로그램과 사용자의 상호작용을 위해 사용자가 직접 작성하는 컨트롤들을 의미한다.

[그림 3] 매크로와 사용자 정의 폼


매크로는 [그림 4] 와 같이 암호화된 쉘코드를 복호화 후 실행하기 위해 사용자 정의 폼 내의 TabStrip 컨트롤에 접근한다.

[그림 4] TabStrip 컨트롤을 이용하는 매크로


쉘코드에 해당하는 데이터는 Word 문서 파일 압축 해제 시 생성되는 바이너리 파일 내부에서도 확인 가능하다.

[그림 5] 암호화된 쉘코드


매크로 코드는 [그림 4] 에서 가져온 데이터를 복호화하는 작업을 수행하는데, 해당 작업을 도식화하면 [그림 6] 과 같다.

[그림 6] 쉘코드 복호화 과정


매크로는 모듈 내부의 ‘RtlMoveMemory’, ‘VirtualAllocEx’, ‘EnumTimeFormatsW’ API 를 사용하여 복호화된 쉘코드를 실행시키며, 쉘코드는 [그림 7] 과 같이 Word 프로세스 메모리 영역 안에서 특정 마커(Marker)를 비교하는 루틴을 통해 암호화된 악성 실행 파일의 위치를 찾게 된다.

(이와 같은 기법을 흔히 에그 헌팅 (egg hunting) 이라 부르며 에그 헌팅이란 에그 헌터에 해당하는 최초 쉘코드를 통해 특정 마커와 같은 태그를 가진 실제 메인 코드를 찾아 실행시키는 일련의 과정들을 의미한다)

[그림 7] 특정 마커를 찾는 루틴(), 해당 마커가 포함된 데이터(아래)


쉘코드는 특정 마커를 가진 메모리 영역을 발견하면 [그림 8] 과 같은 코드를 통해 마커 뒷 부분에 존재하는 데이터를 1차 복호화한다.

[그림 8] 1차 복호화(), 복호화 후 생성되는 데이터(아래)


[그림 8] 에서 생성된 데이터를 2차 복호화인 Base64 디코딩 과정을 거치면 실제 악성 행위를 수행하는 실행 파일을 확인할 수 있다.

[그림 9] Base64 디코딩 과정을 통해 생성된 실행 파일 (일부)


이후 쉘코드는 생성된 실행 파일을 정상 프로세스에 인젝션 하기 위한 준비를 한다.


현재 실행되고 있는 OS 환경이 32비트이면 "%windir%\explorer.exe", 64비트이면 "%windir%\SysWOW64\svchost.exe" 파일을 CreateProcessA API 를 사용하여 Suspend 모드로 실행, 이후 인젝션 행위를 수행한다.

[그림 10] 인젝션 대상 프로세스 (64비트(), 32비트(아래))


정상 프로세스로 위장하기 위한 인젝션이 성공하면 악성코드는 감염 PC 의 사용자, 시스템 정보등을 C&C 주소로 전송하며, 해당 주소로부터 명령을 받아 파일 다운로드, 추가 인젝션 행위 등을 수행한다.

[그림 11] 인젝션된 파일이 수행하는 악성 행위


[그림 12] C&C 주소 (일부)


서두에서 언급한 것과 같이 해당 악성 파일은 스팸 메일을 통해 유포되는 경우가 많으며, Word 문서 파일 내부의 이미지를 통해 사용자로 하여금 큰 의심 없이 매크로를 실행시키도록 유도하므로 출처를 알 수 없는 메일의 첨부 파일 실행을 삼가고 확인되지 않은 문서 파일 내부의 매크로를 실행하는데 있어서 주의가 필요하다.

해당 유형의 악성코드는 V3 제품에서 다음과 같은 이름으로 진단하고 있다.

W97M/Hancitor (2016.11.24.07)

신고
Creative Commons License
Creative Commons License
Posted by 007Spectre