스팸 메일에 첨부되어 유포되는 Microsoft Office 문서 파일 악성코드 중 Hancitor (Chanitor) 유형이 2016년 이후 다시 활발히 유포되고 있는 정황이 확인되었다.
Hancitor 악성코드는 VBA 매크로를 이용하여 ‘사용자 정의 폼’ 내부의 암호화 된 쉘코드를 이용하여 생성한 PE를 정상 프로세스에 인젝션하여 악성 기능을 수행한다. 관련하여 2016년 다음과 같은 제목으로 본 블로그에 분석 정보를 제공하였다.
‘MS 워드 문서에서 폼 개체를 활용한 악성코드’ - http://asec.ahnlab.com/1052
최근 유포되고 있는 Hancitor 악성코드는 2016년과 비교했을 때 폼 개체 이용 및 프로세스 인젝션을 비롯한 전체적인 동작 방식에는 큰 변화가 없다. 부분적으로 쉘코드 생성 후 실행을 위한 Windows API가 달라지고 인젝션 대상 프로세스가 달라지는 차이가 확인되었다.
1. Microsoft Office 문서 파일
VBA 코드는 파일마다 난독화 방식에 차이가 있으나, 공통적으로 내부 바이너리를 이용하여 쉘코드가 메모리에 로드 및 실행되도록 한다. 이 과정에서 시스템의 x86 또는 x64 환경을 확인하는데 이는 시스템의 프로세서 아키텍처 정보와 더불어 Microsoft Office 제품의 설치 버전 (x86/x64) 에 영향을 받는다. 2016년 샘플과 비교했을 때 이 부분의 코드에 차이가 연산 방식으로 변화한 것이 확인되었다.
‘사용자 정의 폼’을 이용하여 TabStrip 컨트롤 내에 악성 바이너리를 포함한 방식은 동일하다. 다만 탭 내 아이템 개수를 다수 추가하였고 그 내부에 바이너리를 포함시켜서 악성 문서 파일에 대한 Generic 진단 방식을 우회한다. (http://asec.ahnlab.com/1052 [그림 4] 참고) 이후 로드된 바이너리는 VBA 코드의 복호화 과정을 통해 쉘코드로 생성된다. 복호화 방식은 파일마다 다르게 구현되어 있다.
2. 메모리에 쉘코드 로드 후 실행 – 사용 API 변화
생성된 쉘코드를 WINWORD.exe 메모리에 올리고 실행하기 위한 단계로, 기존의 분석 대상 Hancitor는 RtlMoveMemory / VirtualAllocEx / EnumTimeFormatsW Windows API를 이용하였다고 하였다.
- NtAllocateVirtualMemory
- NtWriteVirtualMemory
- CreateTimerQueueTimer
이후 해당 메모리 영역에 NtWriteVirtualMemory 함수를 이용하여 버퍼에 저장된 데이터를 쓰는데 이 때 데이터가 위에서 VBA 코드의 복호화 과정을 통해 생성된 쉘코드이다. 아래 코드에서는 ‘afflatus’ 버퍼에 저장된 데이터가 ‘numerose’ 주소에 써진다. 즉, 쉘코드를 WINWORD.exe 프로세스에 올려놓는 작업이다. 0x194000 메모리 영역은 RWX 권한을 갖는다.
쉘코드는 CreateTimerQueueTimer 타이머 큐(Queue) 생성 콜백 함수를 이용하여 호출된다. 콜백함수를 이용하는 것은 2016년 Hancitor 악성코드가 EnumTimeFormatsW 함수를 이용했던 것과 동일하다. 호출되는 코드 시작 주소는 쉘코드 상에서 +0x1090 영역으로 Opcode 이다.
- Kernel32.ExpandEnvironmentStringsW
- Kernel32.VirtualAlloc
- Kernel32.WriteProcessMemory
- Kernel32.IsWow64Process
- Kernel32.CreateProcessW
- PSAPI.GetMappedFileNameA
현재 안랩 제품에서는 Hancitor 유형의 악성코드를 다음 이름으로 진단하고 있다.
- 파일 진단: W97M/Downloader (2018.03.14.00)
- 행위 진단: Malware/MDP.Injector.M393 (MDS 전용)
'악성코드 정보' 카테고리의 다른 글
Magniber 랜섬웨어 유포 방식의 변화 (exe->dll) (0) | 2018.03.27 |
---|---|
Hermes 랜섬웨어를 유포하는 GreenFlash Sundown 웹공격툴킷 국내 사이트 발견 (0) | 2018.03.23 |
CVE-2018-0802 취약점을 활용한 악성코드 유포 주의 (0) | 2018.03.21 |
SMB 취약점 (EternalBlue) 을 악용하여 유포 되는 모네로 코인 마이너 (0) | 2018.03.20 |
지원서 및 정상 유틸로 위장하여 유포되는 GandCrab 랜섬웨어 (v2.0) (0) | 2018.03.19 |
댓글