최근 국내에서도 Hermes 랜섬웨어의 새로운 유포방식으로 알려진 "GreenFlash Sundown" 웹 공격툴킷(Web Exploit Kit)이 발견되었다.

 

 

침해된 사이트에 게시된 기사 페이지 내부에는 아래와 같이 난독화된 악의적인 스크립트가 포함되어 있고 이를 통해 "GreenFlash Sundown" 툴킷으로 연결된다.

 

(그림) 삽입된 악의적인 스크립트

 

 

(그림) 난독화 해제된 스크립트 코드

 

"GreenFlash Sundown"은 Adobe Player를 위한 SWF 파일 형식으로 구성된 웹 공격툴킷(Web Exploit Kit)으로, 파일의 내부에서 난독화, 다운로드 및 파일 로딩 단계를 여러번 거치는 복잡한 내부구조를 갖는 것이 특징이다.

  • 다단계 다운로드 구조
  • 탐지 우회 및 난독화 기법 사용
  • 다양한 취약점 및 0-day 취약점 사용

 

// 다단계 다운로드 구조

 

아래는 웹 공격 툴킷의 메인 랜딩페이지 역할을 수행하는 첫 번째 SWF 파일(page.css)의 내부 구조이다.

해당 파일은 내부에 명시된 다운로드 주소로부터 페이로드를 다운로드한 후 새로운 SWF 파일을 구성하고, 이를 메모리상에서 재로딩하는 방식으로 동작한다.

 

(그림) page.css(SWF) 파일 내부

 

각 단계별로 파일을 구성하는 방식에는 차이가 있으나, 첫번째 파일과 같이 다운로드한 데이터를 재구성하여 SWF 파일을 재로딩하는 방식이 순차적으로 여러 단계 더 진행된다.

단계별로 접근하는 URL들은 아래와 같다.

 

단계

 접근 URL

형식

설명

 1단계

 hxxp://logicbanners.info/demo/page.css

 SWF

 GreenFlash Sundown 랜딩페이지 역할

 2단계

 hxxp://sugarbanners.info/index.php

 data

 페이로드 다운로드 후 SWF 파일 구성

 3단계

 hxxp://ship.advertisstreamer.info/saz.dat

 GIF

 GIF 파일 내부의 데이터를 이용하여 SWF 파일 구성

 4단계

 

 SWF

 파일 내부에 존재하는 데이터로 취약점 SWF 파일 구성

 

// 탐지 우회 및 난독화 기법

 

GreenFlash EK(Exploit Kit)에서는 알려진 다양한 우회 방법을 활용하고 있다.

웹페이지상에서 자주 이용하는 CSS(스타일 시트) 파일을 가장한 SWF 파일 다운로드 및 페이로드에 이용되는 php 파일 확장자 사용은 이미 널리 알려진 확장자 변경 방법이다.

 

특히, 아래는 2단계 SWF 파일 안에서 발견되는 AS(ActionScript) 코드로서 3단계 SWF 파일을 구성하는 역할을 수행한다.

내부에 명시된 URL(saz.dat)로부터 온전한 GIF 파일 형식의 데이터를 다운로드한 후 특정 옵셋(offset) 위치의 데이터만을 취해서 SWF 파일을 재구성한다.

만약, 전처리 단계에서 파일의 시그니처만으로 탐지형식을 구분하는 단순 구조의 보안제품이라면 이러한 방식으로 쉽게 탐지를 우회할 수 있게 된다.

 

(그림) 3단계 SWF 파일 구성을 위한 코드 (2단계 파일 내부에서 발견)

 

 

이외에도, 아래와 같이 3단계 파일은 기존 Sundown Exploit Kit와 유사한 방식으로 취약점 파일을 난독화된 데이터로 가지고 있다.

 

(그림) 3단계 파일 구성

 

// 다양한 취약점 0-day 취약점

 

기존 웹 공격 툴킷(Exploit Kit)과 동일하게 GreenFlash에서도 사용자 시스템 환경에 맞는 다양한 취약점들이 이용된다.

 

낮은 Adobe Flash Player 버전을 사용하는 경우, 전형적인 Sundown EK 취약점에서 발견되던 이전의 알려진 취약점들이 발견된다.

특히, 28.0.0.137 이전 버전이 설치된 경우 아래와 같이 가장 최근의 제로데이로 알려진 CVE-2018-4878 취약점이 악성코드 유포에 이용된다.

 

 

(그림) CVE-2018-4878 취약점


웹 공격 툴킷 "GreenFlash Sundown"이 최신 제로데이 취약점 CVE-2018-4878을 이용하는 경우, 악성코드 유포는 맨 마지막 단계인 Flash 취약점 파일의 내부에 존재하는 쉘코드를 통해서 이루어진다.

 

 

해당 쉘코드는 아래 다운로드 URL 주소(C&C)로부터 받은 페이로드를 복호화한 후 실행한다.

 

 

 hxxp://ship.advertisstreamer.info/index.php

 

 

최근 (2018.03.22 기준) 유포된 악성코드에 대한 정보 및 자사 진단정보는 아래와 같다.

  • 파일명 : index.htm

  • MD5 : c756dc62d688f3370009d7ff17c260bc

  • 진단명 : Trojan/Win32.Hermesran.R223393

  • 행위 진단 : Malware/MDP.Ransom.M1171 / Malware/MDP.Create.M1369

Posted by 분석연구팀

스팸 메일에 첨부되어 유포되는 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 분석팀

최근 CVE-2018-0802 취약점이 포함된 RTF 파일이 다수 유포된 정황이 확인 되었다. 대게 9~12KB의 작은 크기의 문서 파일 형태로 유포 되었으며, 주문/결제 확인 등의 문구를 통해 사용자의 실행을 유도 한다. 해당 문서 실행 시 문서 내에 포함된 쉘코드가 실행되어 추가적인 악성 행위가 발생한다.


[ 그림 1. 문서 파일 형태 ]


문서 파일 내부에 Ole10Native 객체가 존재하고, 이 객체의 데이터 영역에 쉘코드가 포함되어 있다.


[ 그림 2. RTF 내에 포함된 객체 ]


문서 파일 실행 시 내용이 없는 빈 문서처럼 보인다.


[ 그림 3. 문서 파일 실행 ]


하지만 취약점으로 인해 사용자가 인지하지 못하게 정상 프로세스인 eqnedt32.exe 가 실행 되고 해당 파일에서 Overflow가 발생하여 RTF 문서에 포함되어 있는 쉘코드가 실행된다.


RTF 문서 내에 포함된 쉘코드는 크게 복호화 부분과, 암호화된 데이터, 암호화된 코드 로 구성되어 있다. 먼저 복호화 코드가 실행 되면 IMUL, ADD, XOR 등을 활용하여 암호화된 데이터와 코드를 복호화 한다.


[ 그림 4. 복호화된 데이터 ]


복호화된 데이터는 파일을 다운로드 받을 URL 과 PC에 저장할 파일명을 가지고 있고, 복호화된 코드는 이를 이용하여 URLDownloadToFile 함수를 이용하여 파일을 다운로드 받은 뒤 WinExec 로 해당 파일을 실행 후 종료한다.


파일 다운로드 특성상 유포되는 파일은 바뀔 수 있지만, 현재 다운로드 되고 있는 파일은 백도어로 확인 되었다.


현재 V3 에서는 다음 진단명으로 진단 하고 있다.


- 파일 진단 : RTF/Exploit (2018.03.20.00) //취약점 문서 파일

- 파일 진단 : Trojan/Win32.Agent.R222910 (2018.03.19.05)  // 다운로드된 파일


또한 추가적인 대비로 취약점이 발생하지 않도록 보안 업데이트를 권장한다. 보안 업데이트와 관련된 정보는 아래 사이트에서 확인 할 수 있다.


- https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-0802


Posted by 분석팀

사용자 몰래 가상화폐를 채굴하는 악성코드가 기승을 부리고 있다. 유포 및 감염 방법도 가지각색으로 USB 이동식 디스크를 통해 전파 되거나 이력서를 가장한 메일로 유포 되기도 한다 또한 웹 브라우저를 통해 마이닝 동작을 하는 악성코드도 있었다. 


작년 5월 큰 이슈가 되었던 WannaCryptor 랜섬웨어 유포에도 사용된 SMB 원격 코드실행 취약점 (MS17-010 / 일명 EternalBlue ) 을 악용한 가상화폐 채굴 악성코드가 확인 되어 다시 한번 주의가 요구 된다. 사실 해당 취약점이 작년에 알려졌을 때도 이러한 악의적인 채굴 목적의 악성코드를 유포 하는데 주로 사용 되었다. 취약점이 알려지고 1년이 다 되어가는 시점에도 유사 악성코드가 활개를 치는 만큼 다시 한번 취약점 패치 유무를 점검하는 것이 바람직하다.


Trojan/Win32.Agent.C2342864 (이하 Agent) 악성코드는 MS17-010 취약점 (일명 EternalBlue) 을 이용하여 내부 네트워크를 스캐닝하고 취약한 경우 가상화폐의 한 종류인 모네로 코인을 채굴하는 악성코드를 감염 시킨다.


악성코드는 ZIP 압축파일 포맷의 패키지 파일로 구성 되어 있으며 패키지 파일명은 변형마다 다르다. 본 내용에서는 MsraReportDataCache32.tlb 파일명의 패키지를 대상으로 설명한다. 패키지 파일의 구조는 다음과 같다.

[그림1] NrsMiner 패키지 구조


Agent 악성코드는 위 구조상 메인 모듈에 해당된다. 취약점을 통한 시스템 감염시 설치된 OS 환경에 맞는 Srv / Srv64 파일 중에 하나를 tpmagentservice.dll 파일명으로 변경하여 서비스로 등록한다. 이후 설명하는 공격모듈과 채굴 툴을 생성 및 실행하는 주체가 된다.  Spoolsv / Spoolsv64 는 패키지 파일을 로드 하여 환경에 따라서 필요한 모듈을 설치하고 특히 MS17-010 취약점을 스캐닝 한다. Hash / Hash64 는 모네로 코인을 채굴하는 알려진 공개툴인 XMRig 이다. Crypt 폴더는 공개된 MS17-010 취약점 관련 도구와 파일들이 포함된 ZIP 형태의 압축파일이다.


Spoolsv.exe 공격모듈 부터의 동작 방식은 다음 [그림 2]와 같다.


[그림2] Spoolsv.exe 실행 흐름


spoolsv.exe 파일은 MsraReportDataCache32.tlb 패키지를 압축 해제하여 내부 모듈들을 로드 하는 기능을 수행한다. 해당 tlb 파일은 위 [그림1] NrsMiner 패키지 구조 에서 설명 한대로 hash, hash64 파일명의 XMRig (공개 모네로 채굴 툴), spoolsv, spoolsv64 파일명의 공격모듈 그리고 srv, svr64 파일명의 메인 모듈,  MS17-010 Eternal blue SMB 취약점 관련 Crypt 파일명의 압축파일이 존재 한다.

Spoolsv.exe 는 실행 후 6개의 스레드를 구동하며 주요 행위는 다음과 같다.


다음 폴더를 생성하고 악성코드 패키지 파일을 로드하며 로드 된 파일의 압축을 해제 한다.

  • 폴더 생성

%Windows%\SecureBootThemes\

%Windows%\SecureBootThemes\Microsoft\


  • 파일로드

%Windows%\System32\MsraReportDataCache32.tlb

*.tlb 파일 (zip) 압축해제

crypt : %Windows%\SecureBootThemes\Microsoft\crypt (압축해제 완료 후 삭제) 



SMB 취약점 전파를 위해 MsraReportDataCache32.tlb 파일 내부에 있는 crypt 압축폴더 내 svchost.exe (Eternalblue-2.2.0.exe) 와 spoolsv.exe (Doublepulsar-1.3.1.exe) 를 실행 한다. 윈도우 환경에 따라 x64.dll, x86.dll 파일을 로드 한다. 해당 파일명은 spoolsv64.exe 내 하드코딩 되어 있다. spoolsv64.exe 프로세스의 스레드에서 취약점 스캔을 수행하며 성공시 x64.dll, x86.dll 모듈에서 타겟 시스템으로 *.tlb 파일을 복사, 압축해제, srv(tpmagentservice.dll 으로 파일명 변경) 서비스 등록  및 다시 spoolsv64.exe 을 실행되는 과정을 거친다.


위 과정을 좀더 설명 하면 취약점을 이용한 내부 네트워크 전파는 다음과 같이 진행 된다. (x64 윈도우 기준)

[그림3] Eternalblue 공격툴 설정 파일


이후 Eternalblue 도구가 실행되고 다음과 같은 로그파일이 생성된다. (stage1.txt, stage2.txt)

cmd.exe /c C:\WINDOWS\SecureBootThemes\Microsoft\\svchost.exe > stage1.txt // Eternalblue

cmd.exe /c C:\WINDOWS\SecureBootThemes\Microsoft\\spoolsv.exe > stage2.txt // Doublepulsar

다음은stage1.txt (Eternalblue 툴 실행로그) 로그 파일 내용이다.


[그림4] Eternalblue 툴 로그파일


다음과 같이 타켓 시스템에게 취약점 패킷이 전송 되었다.


[그림5] 취약점 패킷 전송


이후 lsass.exe 에 의해서 악성코드 패키지 파일인 MsraReportDataCache32.tlb 파일이 원격 시스템내에  생성 된다. 전송되는 패키지 파일은 102,400바이트씩 분할하여 파일에 기록되며, 별도의 암호화 단계 없이 플레인 바이너리를 직접 전송 하도록 되어 있었다. 

패킷 전송시 사용하는 TCP 포트는 동적으로 할당한 492xx대역, 572xx 대역을 사용한다. (테스트시 src:49287, dest:57219 가 사용 되었다)


[그림6] 취약점 공격 성공 후 lsass.exe 의한 *.tlb 패키지 파일 생성


취약점 공격이 성공 하면 MsraReportDataCache32.tlb 파일이 전송 및 압축 해제 된다. 압축해제 폴더는 Windows\SecureBootThemes\Microsoft 로 동일하며 srv64 파일을 system32\tpagentservice.dll 파일명으로 변경 되어 복사 되고 서비스로 등록 및 동작 한다. 해당 모듈은 메인 제어 모듈로 tlb 내부의 spoolsv64.exe 실행 (또 다른 취약한 시스템을 찾아 패키지 파일을 유포함) 하고 모네로 코인을 채굴하는 공개된 XMRig 툴 (hash, hash64 파일명) 을 실행 한다. Mining Pool 주소는 다음과 같다.


접속 주소와 포트 

 -o p3.qsd2xjpzfky.site:45560 -u wvsymvtjeg

-o p1.mdfr6avyyle.online:45560 -u lqbpyceupn

-o p1.qsd2xjpzfky.site:45560 -u odiqldkee2

-o p5.mdfr6avyyle.online:45560 -u jodkrofar

-o p5.qsd2xjpzfky.site:45560 -u dkw1kaxlep


메인 제어 모듈은 악성코드 패키지 파일인 MsraReportDataCache32.tlb 파일을 압축 해제하고 공격모듈과 모네로 코인 채굴 프로그램 (TrustedHostServices.exe) 을 생성 및 실행 한다.

[그림7] 메인 제어 모듈의 주요 행위 코드


또한 이전 버전으로 추정되는 다음 파일들을 삭제하고 서비스 중지와 작업 스케줄을 삭제 한다.

 파일 삭제

dnsclientprovider_userdata.mof

NrsDataCache.tlb

SecUpdateHost.exe

ServicesHost.exe

settings7283.dat

SysprepCache.ini

vmichapagentsrv.dll


서비스 중지 및 작업 스케줄 삭제 

("schtasks.exe", " /Delete /TN \"\\Microsoft\\Windows\\UPnP\\Services\" /F");

("sc.exe", " stop vmichapagentsrv");

("sc.exe", " delete vmichapagentsrv");

("schtasks.exe", " /End /TN \"\\Microsoft\\Windows\\Tcpip\\TcpipReportingServices\"");

("schtasks.exe", " /Delete /TN \"\\Microsoft\\Windows\\Tcpip\\TcpipReportingServices\" /F");


Mongoose 기반의 자체 웹 서버 기능이 있어서, 다른 감염 시스템에게 MsraReportDataCache32.tlb 패키지파일 전송을 담당 하며 포트 26397 를 사용한다. 또한 외부로 인터넷 연결이 가능하면 원격 서버로부터 악성드 패키지 파일을 다운로드 받는다. 


[그림8] 다운로드 관련 코드


*.tlb 패키지는 다음 웹 서버 (메인 제어 모듈이 담당)를 통해 업데이트되며 다운로드 주소는 다음과 같다.


 접속 주소

 포트

rer.njaavfxcgk3.club/f79e53

ccc.njaavfxcgk3.club/a4c80e

ccc.njaavfxcgk3.club/5b8c1d

ccc.njaavfxcgk3.club/d0a01e

4431

4433

4433

4433


현재 V3에서는 다음 진단명으로 진단 하고 있다.


- 파일 진단 : Trojan/Win32.Agent.C2342864 (2018.01.08.04)

- 파일 진단 : Backdoor/Win64.Agent.C2427598 (2018.03.13.01)


Posted by 분석연구팀

최근 새로운 버전의 GandCrab 랜섬웨어가 '지원서 및 정상 유틸리티 프로그램'으로 위장하여 유포되고 있음을 자사에서 확인하였다. 자사가 수집한 GandCrab의 수집경로는 아래 [표1]과 같다. 또한, 기존 v1.0과 달리 별도의 암호화 대상 확장자가 없어 대부분의 파일들이 암호화 됨으로 더 큰 피해가 발생할 수 있다.


수집 경로

지원서 위장

(license.exe)

..\행정업무\프리랜서_계약비용\지원\이영윤\지원서\지원서\license.exe

..\documents\지원서\지원서\license.exe

..\desktop\이영윤\지원서\지원서\license.exe

skype 위장

(skype.exe)

..\pictures\이미지 링크정리\이미지 링크정리\skype.exe

..\documents\이미지 링크정리\이미지 링크정리\skype.exe

kakaotalk 위장

(kakatotalk.exe)

..\documents \이미지 링크정리\이미지 링크정리\kakaotalk.exe

..\desktop\전단지\이미지 링크정리\이미지 링크정리\kakaotalk.exe

[표1] - GandCrab v2.0 수집 경로


위 유포 경로로 보아 GandCrab은 국내에 활발히 유포되고 있으며, 유포 시 압축 파일로 전파되었을 것으로 보인다. 출처가 불 분명한 파일에 대한 실행 시, 사용자 주의가 필요하며 현재까지 확인된 v2.0 배포에 확인된 3가지 이름의 파일은 실행하지 않는 것이 필요하다. 현재 국내발견 GandCrab은 v2.0으로 기존 자사 블로그에 개시(http://asec.ahnlab.com/1091)하였던 버전과 몇가지 차이를 보이는데 그 내용은 아래와 같다.


[확장자 및 랜섬노트명 변경]

기존 버전에서는 정상 파일 암호화 시 확장자가 GDCB로 변경되고 GDCB-DECRYPT.txt 랜섬노트가 생성되었던 반면, v2.0에서는 확장자가 CRAB로 변경되고 랜섬노트 명은 CRAB-DECRYPT.txt로 변경되었다.


[그림1] - 변경 된 확장자 및 랜섬노트 명


[C&C 도메인 변경]

GandCrab은 감염 PCIP정보, 사용자 이름, OS 버전, 유저 그룹 정보 등을 C&C로 전송하는데 이 주소가 아래와 같이 변경되었다.

C&C 도메인

politiaromana.bit

malwarehunterteam.bit

gdcb.bit

[표2] - 변경 된 C&C 도메인


[암호화 제외 경로 및 파일명 변경, 암호화 대상 확장자 변경]

특정 경로와 특정 파일명에 해당하는 파일은 암호화에서 제외하는데 v2.0에서는 이때 확인하는 경로 몇 가지가 제외되고 몇 가지가 추가(빨간색 처리)되었다. 또한 제외 파일명은 랜섬노트를 제외하고는 동일하다.

암호화 제외 경로

암호화 제외 파일명

\ProgramData\

\IETldCache\

\Boot\

\Program Files\

\Tor Browser\

Ransomware

\All Users\

\Local Settings\

\Windows\

desktop.ini

autorun.inf

ntuser.dat

iconcache.db

bootsect.bak

boot.ini

ntuser.dat.log

thumbs.db

CRAB-DECRYPT.txt

[표3] - 기존 버전과 차이를 보이는 암호화 제외 경로 및 파일명


특히, 이전 버전의 GandCrab의 경우 특정 확장자 456개를 암호화 대상으로 하였으나, 이번 v2.0에서는 아래 확장자를 제외한 모든 파일을 암호화 한다.


암호화 제외 확장자 (42)

.ani, .cab, .cpl, .cur, .diagcab, .diagpkg, .dll, .drv, .hlp, .icl, .icns, .ico, .ics, .lnk, .key, .idx, .mod, .mpa, .msc, .msp, .msstyles, .msu, .nomedia, .ocx, .prf, .rom, .rtp, .scr, .shs, .spl, .sys, .theme, .themepack, .exe, .bat, .cmd, .CRAB, .crab, .GDCB, .gdcb, .gandcrab, .yassine_lemmou

[표4] - 암호화 제외 확장자


[랜섬노트 내용 변경]

GandCrab의 버전이 변경되었다는 것을 제작자가 랜섬노트에 아래와 같이 직접 명시하였다.

[그림2] - v2.0가 명시된 새 버전 GandCarb 랜섬노트


그 외의 몇 가지 기능은 여전히 존재한다

자기 파일을 랜덤 파일명으로 복사한 뒤 Run키 등록하여 시스템에서 지속 실행 될 수 있도록 하며, 현재 동작 프로세스를 확인하여 특정 프로세스가 실행 중일 때 GandCarb 프로세스를 종료하는데 이 확인 프로세스 리스트는 기존과 변화없다. 또한 확인하는 AntiVirus 관련 프로세스 목록 또한 동일하다. 이 리스트는 위에 명시 된 기존 GandCrab 게시글에서 확인 가능하다.


GandCrab 피해를 최소화하기 위해서 항상 윈도우 보안 패치 및 V3 백신 프로그램을 최신 업데이트 상태로 유지하는 것이 중요하다.


또한 신뢰할 수 없는 출처의 메일 등의 첨부 파일 실행 및 확인되지 않은 웹 페이지 방문 시 사용자의 각별한 주의와 플래시 취약점을 이용함으로 플래시 보안 업데이트도 최신으로 유지가 필요하다.

현재 V3에서는 GandCrab v2.0 랜섬웨어를 다음 진단명으로 진단 하고 있다.

- 파일 진단 : Trojan/Win32.RansomCrypt (2018.03.19.02)
- 행위 진단 : Malware/MDP.Ransom.M1171




Posted by 분석팀

현재 Magniber 랜섬웨어는 한국을 타겟으로 유포되는 랜섬웨어 중 유포 건수가 가장 높다. 광고성 웹사이트의 정상적인 네트워크를 이용하는 멀버타이징 방식이 사용됨은 변함이 없지만, 최종적으로 랜섬웨어가 사용자 시스템에서 구동되는 방식은 주기적으로 변화하고 있다. 그리고 3월 15일, 유포 스크립트의 변화로 인해 TSWbPrxy.exe가 사용되는 새로운 구동방식 발견되었다. 이러한 유포 방식은 2016년 6월 CryptXXX 랜섬웨어 유포에서도 사용된 방법으로 동일한 제작자에 의해 만들어 지는 것으로 추정된다. TSWbPrxy.exe는 특정 응용 프로그램을 실행하는 데 사용되는 MS제공 윈도우즈의 정상 프로그램이다.

<그림 1>은 Magniber 랜섬웨어 유포에 사용되는 자바 스크립트 원본이다. Magniber 랜섬웨어를 사용자 시스템에 생성하고 실행하는 역할을 수행한다.

<그림 1. Magniber 랜섬웨어 유포 스크립트 원본>

<그림 2>는 원본 복호화된 스크립트이다. 복호화된 스크립트의 빨간 박스의 실행문에 의해서 TSWbPrxy.exe를 통해 사용자 로컬에 생성된 랜섬웨어 파일이 실행된다

GetObject("new:MSTSWebProxy.MSTSWebProxy.1").StartRemoteDesktop(%filepath%, "");


<그림 2. 복호화된 Magniber 랜섬웨어 유포 스크립트>


해당 기법으로 실행되면 <그림 3>과 같이 Magniber 랜섬웨어는 TSWbPrxy.exe 의 하위 프로세스로 생성되어 랜섬웨어의 파일 암호화 행위를 수행하게 된다.


<그림 3. TSWbPrxy.exe 로 실행된 Magniber 랜섬웨어>


현재 V3에서는 Magniber 랜섬웨어를 수동, 실시간 모두 진단이 가능하며, 다음의 진단명으로 진단하고 있다.


- 파일 진단 : Trojan/Win32.Magniber (엔진 반영 버전 : 2018.03.16.02)

- 행위 진단 : Malware/MDP.DriveByDownload.M1659 (엔진 반영 버전 : 2018.02.27.00)


Posted by 분석팀

'USB 전파기능의 JS 파일에서 확인된 모네로 채굴기' 에 사용 된 악성자바스크립트에서 자기 방어 기법이 확인 되었다. 방어기법은 wscript.exe 프로세스를 강제종료 시, 스크립트 코드에 의해 시스템을 강제로 종료하는 기능이 확인되었다. 악성 스크립트가 어떻게 자기방어를 하는지 알기 위해서는 악성 스크립트 동작 방법을 이해해야 한다. 악성 스크립트가 실행되면 인자(Arguments)에 따라 USB감염, 특정 프로세스들을 강제종료하는 하위 스크립트가 실행된다. 그리고 C2에서 추가 스크립트를 전달 받으면 wscript.exe 가 다시 실행된다. 즉, 악성 자바스크립트는 총 세번의 하위 스크립트 실행이 존재하며 C2에서 전송되는 파일에 따라 추가 악성행위가 달라 질 수 있다. powershell을 통해 모네로 채굴기를 다운로드한 것이 이에 해당한다.

[그림 1] wscript.exe 프로세스 별 인자와 파일 핸들

최상위 프로세스인 wscript.exe는 물론 하위 랜덤명의 wscript.exe 프로세스는 %appdata%[random] 폴더에 생성된 파일에 대한 핸들을 가지고 있다. 이 를 통해 각 스크립트가 정상 동작함을 확인 할 수 있다.

그리고, 랜덤명의 하위 프로세스는 while(ture) 문으로 지속적으로 USB감염 행위와, Process 종료를 수행하며 shutdown 기능을 가진 zBTf 함수를 호출한다.

[그림 2] wscript.exe 프로세스 별 기능

아래 [그림 3]은 zBTf 함수 코드로 특정 파일의 핸들을 얻어, 파일 닫기, 시스템을 강제로 종료한다는 의미이다. 악성 스크립트가 정상적으로 수행 시, 'ylijoukud' 파일의 핸들은 최상위 wscript.exe가 갖고 있어 다른 프로세스가 파일에 대한 핸들을 얻으려고 하여도 실패하게 된다. 따라서, 일반적으로는 시스템 강제종료 행위가 발생되지 않는다. 파일 핸들은 [그림 1]을 통해 확인 할 수 있다.

[그림 3] 난독화가 풀린 자바스크립트 코드 내 shutdown 코드

그러나, 강제적으로 wscript.exe를 종료(kill) 하게 되면 이 파일이 갖고 있던 핸들이 놓아지고, 하위 프로세스가 핸들을 얻어 시스템 강제종료 코드가 실행된다.

[그림 4] shutdown 코드가 실행되는 화면

하위 프로세스를 종료하여도 최상위 wscript.exe가 하위프로세스를 재생성 하고, 최상위 wscript.exe를 종료하면 시스템을 강제종료시켜 자기 방어를 한다. 이러한 자기 방어를 통해 지속적인 감염행위가 발생하게 된다.

아래 방법을 통해 사용자가 시스템 강제종료 없이 수동 치료가 가능하다.

1. 시작프로그램에 생성된 바로가기(*.lnk) 파일 삭제 

2. %appdata%랜덤명 경로에 생성된 악성 JS 파일 삭제

3. 하위 프로세스 2개 모두 종료 후 최상위 wscript.exe 종료

Posted by 분석팀

최근 USB 이동식 디스크를 통해 전파되는 자바스크립트 파일(JS) 악성코드에서 모네로 채굴관련 파일을 다운로드하는 기능이 확인되었다. 전파기능에 의해 웜(Worm) 유형의 악성코드로 분류되는 이러한 유형은 과거에도 많이 알려진 형태이며, 아래의 [그림 1]에서 처럼 난독화된 형태를 갖는다. 감염 시, USB 내부의 폴더들이 모두 숨김속성으로 변경되며, 동일이름의 바로가기’(*.LNK) 링크파일을 생성하고 사용자로 하여금 클릭을 유도한다. 폴더로 착각하여 클릭한 바로가기 링크파일에 의해 자바스크립트 파일이 실행되는 구조이다.

[그림 1] 난독화 된 악성 자바스크립트

악성 자바스크립트가 실행되면 [그림 2]와 같이 C:\Users\vmuser\AppData\Roaming\[랜덤명] 폴더에 원본 JS 파일을 사하고, 시작 프로그램에 바로가기링크파일(*.LNK)을 생성한다. "mbxbw64.exe" 파일은 JS파일을 실행하기 위한 윈도우 정상 "wscript.exe" 파일이다.

[그림 2] C:\Users\vmuser\AppData\Roaming\[랜덤명] 생성된 파일들


재부팅 후에도 자동으로 실행되기 위해 시작프로그램에 Start 이름의 바로가기 링크파일을 생성한다. 실행대상이 JS 파일임을 알 수 있다.

[그림 3] 시작프로그램에 생성된 바로가기 파일


악성코드는 감염된 사용자 PC 정보를 전송하는 악성행위를 한다전파 방법은 USB가 존재할 경우, 폴더들을 바로가기 링크파일로 모두 변경하고, 최상위 경로에 ".Trashes" 폴더를 만들어 변경한 폴더의 원본 폴더 전체(하위파일 포함)을 백업하여 둔다여기까지는 기존에 알려진 행위와 동일하다. 주목해야 할 악성 행위는 Powershell.exe을 이용하여 miner를 다운로드 받는 것이다.


분석팀 악성코드 자동분석 시스템(RAPIT)을 통해 보면, 아래 Process Tree 에서 "powershell.exe"가 동작한 것을 확인할 수 있다.

[그림 4] RAPIT 프로세스 그래프


[그림 5] RAPIT (프로세스 트리)


다운로드한 파일 "xmr.zip" 내부에는 아래와 같이 모네로 채굴기능의 파일들이 존재함을 알 수 있다.

[그림 6] xmr.zip 파일


현재 V3에서 해당 파일들을 다음 진단명으로 진단하고 있다.

(1) JS/Bondat (2018.03.08.05) - MD5: A81B4D4971F2FCB739B384E33E6053E6

(2) Trojan/Win64.BitCoinMiner (2017.08.30.04) - MD5: d55a997592340e6a10dbfc1a33c18466


Posted by 분석팀

금일 안랩 시큐리티 대응 센터(ASEC)는 불특정 다수의 사용자에게 스팸메일을 통해 인터넷 바로가기 파일(확장자: URL)이 다수 유포된 것을 확인하였다.


 

[그림-1] 스팸 메일 내용

해당 메일은 상기 [그림-1]과 같이 ZIP으로 압축된 파일을 첨부하여 유포되었으며, 압축을 해제할 경우 아래의 [그림-2]와 같이 인터넷 바로가기파일이 존재함을 확인 할 수 있다

 

[그림-2] 첨부 파일 압축 해제 시

[그림-3] 정상적인 인터넷 바로가기 아이콘 및 구조

정상적으로 생성된 인터넷 바로가기의 아이콘은 상기 [그림-3]과 같이 사용자의 기본 사용 브라우저 아이콘을 갖고 있으나, 악의적으로 제작된 인터넷 바로가기는 [그림-4]와 같이 shell32.dll 아이콘을 사용하여 폴더 형태 아이콘으로 사용자로 하여금 클릭을 유도하고 있다.

[그림-4] 악의적으로 제작된 인터넷 바로가기 아이콘 및 구조

해당 파일을 클릭할 경우, 내부에 제작자가 유도한 URL로 접속하는 기능이 있으나 현재는 접속은 이루어 지지 않아 어떠한 파일이 다운로드 되는지 확인되지 않았다. 발신자가 불분명한 의심스러운 이메일에 첨부된 파일은 열어보지 않도록 각별한 주의가 요구된다.

현재 V3에서 이러한 URL 파일을 다음의 진단명으로 진단하고 있다.

- URL/Downloader (V3 엔진버전: 2018.03.06.08)

- URL/Downloader.S1 (V3 엔진버전: 2018.03.07.00)

- URL/Downloader.S2 (V3 엔진버전: 2018.03.07.02)

 

 금일 추가 변형이 접수 되었으며, V3는 이러한 유형을 URL/Downloader.S2로 진단하고 있다

[그림 -5] 추가 접수된 인터넷 바로가기 파일 구조

악의적인 목적으로 변형이 지속적으로 제작될 것으로 보여 사용자의 주의가 필요하다.

Posted by JYP

이력서를 가장한 모네로 코인 채굴 악성코드(이하 마이너)가 지난 11월부터 이메일을 통해 불특정 다수에게 꾸준히 유포되고 있다. 이에 따라 아래 본문에서 언급할 내용의 메일을 수신한 사용자는 코인 마이너가 담긴 첨부파일을 실행하지 않도록 각별한 주의가 필요하다.

 

모네로 코인 마이너는 [그림 1]과 같은 메일 내용에 첨부 파일 형태로 유포된 것으로 추정된다.

 


[그림 1] 메일 본문 중 일부

 

마이너 악성코드가 첨부된 압축 파일은 .egg 확장자를 사용하며, 압축된 파일 목록은 [그림 2]와 같다.

 

[그림 2] 압축 파일 목록

 

압축된 파일의 종류에는 바로 가기(*.lnk) 파일과 마이너(facebook.exe) 파일 두 종류가 있는데, 이 중 바로 가기 파일의 경우 이전 ASEC 블로그(http://asec.ahnlab.com/1083, 랜섬웨어에서 비트코인 실행으로 변경된 LNK(바로 가기)파일 주의)에서 다룬 바 있다.

 

마이너(facebook.exe) 파일은 파일 속성에 숨김 속성이 부여되어 있어 윈도우 기본 폴더 구성 옵션을 사용하는 일반 사용자는 [그림 3]과 같이 압축 해제 시 마이너 파일의 존재 여부를 확인할 수 없다. 이러한 특징은 사용자가 이력서 바로 가기 파일을 실행하도록 유도함으로써 최종적으로 사용자 PC에 마이너 악성코드를 감염 시키고자 하는 공격자의 의도를 파악할 수 있다.

 

[그림 3] 압축 해제 된 폴더

 

[그림 4] 이력서(사진첨부)_180220.doc.lnk의 바로 가기 대상

 

실행된 마이너의 주요 특징으로는 비교적 최근에 컴파일된 점, 윈도우 정상 프로세스에 채굴 프로그램을 인젝션하여 동작하는 것이 특징이다.

 

[그림 5] 모네로 악성코드의 전체적인 동작 과정

 

분석 당시 유포되었던 마이너는 2018/2/20일에 제작되었으며, 이 컴파일 시간은 지난 11월 이후로도 공격자는 꾸준히 마이너를 제작해오고 있다는 것을 알 수 있다.

 

[그림 6] facebook.exe의 컴파일 시간

 

여기서 주목할 점은 [그림 5]의 전체 동작 과정에서 윈도우 관련 정상 파일의 복사본인 svhost.exe에 인젝션되는 악성 PE가 지난 11월에 제작된 것으로 보아 공격자는 최근까지 파일의 외형만 바꾼 채로 마이너 악성코드를 그대로 사용하고 있는 것을 확인할 수 있다.

 

[그림 7] 인젝션되는 악성 PE의 컴파일 시간

 

마이너(facebook.exe)가 실행되면 vbc.exe(visual basic command line compiler)의 복사본인 svhost.exeXMRig(모네로 채굴 프로그램)를 포함한 악성 PE를 인젝션한다.

 

이후 인젝션된 svhost.exe는 로컬 시스템의 운영체제 환경에 따라 특정 정상 프로세스에 모네로 채굴 프로그램을 인젝션하여 동작한다.

 

모네로 채굴 프로그램은 UPX로 실행 압축되어 있는 형태로 악성 PE에 포함되어 있다.

 

[그림 8] UPX로 실행 압축된 XMRig(모네로 채굴 프로그램)

 

[그림 9] 실행되는 XMRig의 버전 정보

 

채굴 프로그램을 정상 프로세스에 인젝션 하면서 악성코드 제작자는 자신의 모네로 코인 월렛 주소 정보를 실행 인자로 전달하여 동작시키는데, 전달된 인자 정보는 ASEC 내부에서 사용하는 자동 분석 인프라인 라피트(Rapit)에서도 확인할 수 있다.

 

[그림 10] ASEC 자동 분석 인프라 Rapit의 프로세스 트리 정보

 

마이너 실행 인자 값 의미

-o

마이닝 서버의 URL

-u

공격자의 모네로 코인 월렛 정보

-p

마이닝 서버의 패스워드

-v

알고리즘

-t

사용자 cpu 코어 수에 따라 바뀌는 값

[1] XMRig 실행 인자 정보

 

또한, 공격자는 사용자의 PC에서 마이너를 지속적으로 실행시키기 위해서 특이한 기법을 사용하고 있는데, 해당 기법은 [그림 10]의 프로세스 트리 정보에서 채굴 프로그램(wuapp.exe)이 동작하는 중에 사용자가 작업 관리자(taskmgr.exe)를 실행하면 wuapp.exe의 부모 프로세스인 svhost.exe에서는 현재 프로세스 목록 중 작업 관리자 프로세스의 존재 여부를 확인하여, 작업 관리자가 실행 중일 경우에 일시적으로 채굴 프로그램(wuapp.exe)을 종료한다.

 

, svhost.exe taskmgr.exe 프로세스에 대한 감시 기능이 있어 taskmgr.exe 프로세스가 실행 중일 경우에는 채굴 프로그램(wuapp.exe)을 실행시키지 않는다.

 

이후 작업 관리자 프로세스가 종료되면 다시 정상 프로세스(wuapp.exe)에 채굴 프로그램을 인젝션 하여 마이너 행위를 수행한다. 이러한 과정은 부모 프로세스인 svhost.exe가 종료될 때까지 수행된다.

 

따라서, 확실한 치료를 위해 사용자는 마이너가 인젝션된 부모 프로세스(svhost.exe)와 자식 프로세스(wuapp.exe)를 찾아 함께 종료 해야한다. 운영체제 환경에 따라 모네로 채굴 프로그램(XMRig)가 인젝션되는 정상 프로세스는 [ 2]와 같다.

 

운영체제 환경

인젝션 되는 정상 프로세스

32Bit 환경 OS

C:\Windows\notepad.exe

C:\Windows\explorer.exe

64Bit Windows XP

C:\Windows\SysWOW64\wuapp.exe

C:\Windows\SysWOW64\svchost.exe

Windows Vista 이상의 64Bit 환경 OS

C:\Windows\System32\wuapp.exe

C:\Windows\System32\svchost.exe

[2] 운영체제 환경에 따라 인젝션되는 정상 프로세스 종류

 

현재 V3 제품에서는 본문 내용과 같은 마이너 악성코드가 탐지될 경우에 V3의 행위 진단에 의해서 부모 프로세스도 함께 종료된다.

 

V3 제품군에서는 모네로 마이너 악성코드를 다음의 진단명으로 탐지 및 차단하고 있다.

 

파일 진단 - Trojan/Win32.CoinMiner.C2414884

(엔진 반영 일자 : 2018.03.03.00)

(MD5 : ec02c65f24ac8faa2179bffe8f49d331)

행위 진단 - Malware/MDP.CoinMiner.M1845


Posted by 분석팀