스팸 메일에 첨부되어 유포되는 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를 이용하였다고 하였다. 


이번에 새롭게 등장한 Hancitor는 공통적으로 메모리 관련 핵심 기능을 수행하기 위해 다음 Windows API를 이용하는 것으로 바뀌었다. 각 API는 VBA 코드에 포함되어 있으며 Alias 키워드로 호출된다.
  • NtAllocateVirtualMemory
  • NtWriteVirtualMemory
  • CreateTimerQueueTimer

아래 코드는 NtAllocateVirtualMemory 함수를 호출하는 부분이며, 프로세스 내 페이지 영역에 할당된 메모리의 BaseAddress를 얻는다. 이 파일에서는 0x194000 (=26476544) 주소 번지 영역이 할당되었다. 


이후 해당 메모리 영역에 NtWriteVirtualMemory 함수를 이용하여 버퍼에 저장된 데이터를 쓰는데 이 때 데이터가 위에서 VBA 코드의 복호화 과정을 통해 생성된 쉘코드이다. 아래 코드에서는 ‘afflatus’ 버퍼에 저장된 데이터가 ‘numerose’ 주소에 써진다. 즉, 쉘코드를 WINWORD.exe 프로세스에 올려놓는 작업이다. 0x194000 메모리 영역은 RWX 권한을 갖는다.


쉘코드는 CreateTimerQueueTimer 타이머 큐(Queue) 생성 콜백 함수를 이용하여 호출된다. 콜백함수를 이용하는 것은 2016년 Hancitor 악성코드가 EnumTimeFormatsW 함수를 이용했던 것과 동일하다. 호출되는 코드 시작 주소는 쉘코드 상에서 +0x1090 영역으로 Opcode 이다.


3. 쉘코드의 기능 – 악성 PE 인젝션

쉘코드의 기능은 과거 Hancitor와 동작 과정 및 기능면에서 크게 달라진 부분은 없다. 실행되고 있는 WINWORD.exe 프로세스(콜백 함수의 시작 주소)에 디버거를 붙여서 보면, 해당 코드는 가장 먼저 ntdll.ldrLoadDll 함수의 주소를 얻는다. ldrLoadDll 은 DLL 로드를 위한 함수로써 이후 기능에 필요한 DLL 라이브러리와 함수 주소를 얻는다.


Kernel32.dll과 PSAPI.dll 모듈과 내부 함수들의 주소를 다수 필요로 하는데, 대표적으로 다음 API 함수들의 주소를 얻는다.
  • Kernel32.ExpandEnvironmentStringsW
  • Kernel32.VirtualAlloc
  • Kernel32.WriteProcessMemory
  • Kernel32.IsWow64Process
  • Kernel32.CreateProcessW
  • PSAPI.GetMappedFileNameA
쉘코드는 페이지 영역에 메모리를 할당하고 해당 주소 영역에 쉘코드 내 바이너리를 복호화하여 Base64로 인코딩 된 데이터를 생성한다. 이후 Base64 데이터를 디코딩하는 과정을 통해 최종적으로 악성 PE를 생성한다. 이 과정은 기존 분석 내용와 동일하다. 


최종 생성된 PE는 Windows 정상 프로세스인 svchost.exe 인젝션되어 동작한다. 파일 경로는 하드코딩 되어 있으며 프로세스는 CreateProcessW API를 이용하여 실행된다. 2016년 Hancitor는 x86 환경에서는 explorer.exe에 인젝션하여 동작하였던 것과 차이가 있다. (http://asec.ahnlab.com/1052 [그림 10] 참고)

x86 - %Windir%\system32\svchost.exe 
x64 - %Windir%\SysWOW64\svchost.exe


악성코드가 정상 svchost.exe 프로세스를 생성하고 코드를 인젝션하여 동작하기 때문에 WINWORD.exe 프로세스가 종료되어도 악성 행위가 지속된다. 또한 정상 프로세스 내에서 동작하기 때문에 사용자는 이상 증상을 인지하기 어렵다.

최종 수행하는 기능은 기존과 동일하게 감염 PC의 사용자, 시스템 정보 등을 C&C 주소로 전송하는 것이며, 해당 주소로부터 명령을 받아 파일 다운로드, 추가 인젝션 행위 등을 수행할 수 있다. 먼저 api.ipify.org 접속을 통해 사용자 PC의 공인 IP 정보를 획득하며, 이 정보를 포함하여 총 3개의 C&C에 접속을 시도한다. 아래는 인젝션 된 svchost.exe가 C&C에 접속 시도하는 모습이다. C&C에 전송되는 데이터 형식은 다음과 같이 고유한 형식으로, 이 또한 기존 악성코드와 동일하다. 



현재 안랩 제품에서는 Hancitor 유형의 악성코드를 다음 이름으로 진단하고 있다.

  • 파일 진단: W97M/Downloader (2018.03.14.00)
  • 행위 진단: Malware/MDP.Injector.M393 (MDS 전용) 


Posted by 분석팀
최근 택배와 관련된 메세지를 이용하여 악성코드를 전파하고 있는 스팸메일이 발견되어 포스팅 합니다.

제목 : UPS Delivery Problem NR.숫자

Hello!
We failed to deliver your postal package which was sent on the 13th of July in time
because the addressee's address is erroneous.
Please print out the invoice copy attached and collect the package at our office.
United Parcel Service of America.

위와 같은 메일에 아래와 같이 엑셀 아이콘의 실행파일이 첨부되어 있다면 해당 파일을 실행하지 마시기 바랍니다. 현재 해당 파일은 V3 제품군에서 Dropper/Malware.36352.Y 진단명으로 진단하고 있습니다.


1. 발신인이 불분명한 메일일 경우 가급적 메일을 확인하지 마시기 바랍니다.
2. 안티바이러스(백신) 프로그램을 설치하여 항상 최신 엔진을 유지하며, 실시간 감시 기능을 사용합니다.
3. 메일 내에 포함된 첨부파일에 대해 안티바이러스(백신) 프로그램으로 검사를 한 후 열람하시기 바랍니다.
4. 메일 본문에 포함된 URL은 가급적 접속을 하지 마시기 바랍니다.

Posted by 비회원
Facebook 메일을 위장한 아래 그림의 스팸 메일이 발송되고 있습니다. 필자도 페이스북을 사용하고 있는데 실제 페이스북 UI와 흡사하여 실제 사이트인지 분간하기 어려웠습니다. 하지만 특정 사이트에서 업데이트 파일을 수신하라고 직접 메일을 보내는 경우는 보기 드물고 해당 사이트의 홈페이지 공지 등에서 관련 내용이 없다면 의심해 보아야 할 것입니다.


상기 스팸메일 내 "Update" 버튼이나 "here" 부분을 클릭하면 아래 페이지로 이동하게 됩니다.


상기 페이지에 email과 password를 임의로 입력하여도 접속이 되며 아래 페이지로 이동하게 됩니다.


상기 그림에서 빨간색 네모 안의 "updatetool.exe" 파일을 다운로드하고 설치하게 유도를 합니다. 하지만 다운로드한 파일은 업데이트를 위한 파일이 아닌 V3에서 아래 진단명으로 진단하는 악성파일입니다.

updatetool.exe 
 -  Win-Trojan/ZBot.105472.C

최근에 계속 연재하고 있는 스팸메일들을 보면 사회공학적 기법들을 많이 사용하고 있습니다. 신뢰할 수 있는 사람이나 기업에서 보낸 메일처럼 위장하여 악성파일을 다운로드하여 실행하게 하거나 계정정보를 탈취하고 있습니다.


Posted by 비회원