Erebus?

: 그리스 신화에서 나오는 태초의 신 중 하나. 어둠이나 암흑의 신.

또는 죽음의 신 하데스의 지하 세계 일부로 묘사 되기도 함.

어둠의 다크니스.. 같이 멋져(?) 보인다고 이 이름을 선택한 걸까.





Erebus 랜섬웨어의 특징

- $90 USD(현재 환율로 10만 1655원)를 요구하는 저가형 랜섬웨어.

- 화면에 아무런 표시를 띄우지 않고 높은 권한으로 랜섬웨어 실행하는 UAC* 우회를 사용함

* UAC (User Account Control, 사용자 계정 컨트롤)

: 관리자가 권한 수준을 높여 주지 않는 한 응용 프로그램들은 일반 사용자 권한으로 제한 시킴.

오른쪽 클릭하면 "관리자 권한으로 실행" 보이는 것이 UAC의 예.





UAC 우회 기법

1. 에레보스 인스톨러가 실행될 때, UAC 우회 기법을 이용하여 피해자가 모르게 높은 권한으로 실행되게 함.

2. 같은 폴더에 랜덤으로 파일명 생성해서 스스로 복제함.

3. 레지스트리 수정해서 .msc 확장자를 하이재킹함.


# 탈취된 레지스트리 키

HKEY_CLASSES_ROOT\.msc

HKCU\Software\Classes\mscfile

HKCU\Software\Classes\mscfile\shell

HKCU\Software\Classes\mscfile\shell\open

HKCU\Software\Classes\mscfile\shell\open\command

HKCU\Software\Classes\mscfile\shell\open\command\ %UserProfile%\[random].exe


4. 이벤트 뷰어(eventvwr.exe)를 실행하면 .msc 파일이 자동으로 열려서 Erebus를 실행함.

5. 높은 권한으로 이벤트 뷰어를 실행하면 Erebus파일도 같은 권한으로 실행됨.

6. 이렇게 UAC를 우회하도록 함.




암호화 과정

1. 피해자의 IP주소와 국가를 알아내기 위해 http://ipecho.net/plain과 http://ipinfo.io/country에 연결됨.

2. TOR 클라이언트를 다운로드해서 사이트 커맨드/제어 서버에 연결함

3. 피해자 컴퓨터 스캔해서 특정 파일들을 찾아내어 AES 암호로 잠궈 버림.


# 타겟이 되는 파일 리스트

.accdb, .arw, .bay, .cdr, .cer, .crt, .crw, .dbf, .dcr, .der, .dng, .doc, .docm, .docx, .dwg, .dxf, .dxg, 

.eps, .erf, .indd, .jpe, .jpg, .kdc, .mdb, .mdf, .mef, .mrw, .nef, .nrw, .odb, .odm, .odp, .ods, .odt, 

.orf, .pdd, .pef, .pem, .pfx, .png, .ppt, .pptm, .pptx, .psd, .pst, .ptx, .raf, .raw, .rtf, .rwl, .srf, .srw, 

.txt, .wpd, .wps, .xlk, .xls, .xlsb, .xlsm, .xlsx 


4. 파일을 암호화 할 때, ROT-23로 확장자를 암호화 해버림. (test.jpg -> test.msj)

5. 이 때 에레보스는 Windows Volume Shadow의 복사본을 지워서 파일을 복구할 수 없게 함.


#복사본 지우는 명령어 (복구 기능 무력화)

 cmd.exe /C vssadmin delete shadows /all /quiet && exit


# 암호화된 파일



6. 암호화 끝나면 유니크ID, 암호화된 파일 리스트가 들어있는 README.HTML를 보여주고, 경고 팝업창 띄움.

* Unique ID: 지불 사이트에 로그인 할 수 있는 ID



# 경고 팝업창



#랜섬 노트



# 지불 사이트 화면



# 에레보스 랜섬웨어 관련 파일들 리스트

%UserProfile%\AppData\Local\Temp\tor\

%UserProfile%\AppData\Local\Temp\tor\Data\

%UserProfile%\AppData\Local\Temp\tor\Data\Tor\

%UserProfile%\AppData\Local\Temp\tor\Data\Tor\geoip

%UserProfile%\AppData\Local\Temp\tor\Data\Tor\geoip6

%UserProfile%\AppData\Local\Temp\tor\Tor\

%UserProfile%\AppData\Local\Temp\tor\Tor\libeay32.dll

%UserProfile%\AppData\Local\Temp\tor\Tor\libevent-2-0-5.dll

%UserProfile%\AppData\Local\Temp\tor\Tor\libevent_core-2-0-5.dll

%UserProfile%\AppData\Local\Temp\tor\Tor\libevent_extra-2-0-5.dll

%UserProfile%\AppData\Local\Temp\tor\Tor\libgcc_s_sjlj-1.dll

%UserProfile%\AppData\Local\Temp\tor\Tor\libssp-0.dll

%UserProfile%\AppData\Local\Temp\tor\Tor\ssleay32.dll

%UserProfile%\AppData\Local\Temp\tor\Tor\tor-gencert.exe

%UserProfile%\AppData\Local\Temp\tor\Tor\tor.exe

%UserProfile%\AppData\Local\Temp\tor\Tor\zlib1.dll

%UserProfile%\AppData\Local\Temp\tor.zip

%UserProfile%\AppData\Roaming\tor\

%UserProfile%\AppData\Roaming\tor\cached-certs

%UserProfile%\AppData\Roaming\tor\cached-microdesc-consensus

%UserProfile%\AppData\Roaming\tor\cached-microdescs.new

%UserProfile%\AppData\Roaming\tor\lock

%UserProfile%\AppData\Roaming\tor\state

%UserProfile%\Desktop\test\xor-test.pdf

%UserProfile%\Desktop\README.html

%UserProfile%\Documents\README.html

%UserProfile%\[random].exe


#해시

 SHA256: ed3a685ca65de70b79faf95bbd94c343e73a150e83184f67e0bdb35b11d05791














Reference

에레보스. WIkipedia. 2017. https://ko.wikipedia.org/wiki/%EC%97%90%EB%A0%88%EB%B3%B4%EC%8A%A4 (Accessed 2017-06-13).

Abrams, Lawrence. 2017. Erebus Ransomware Utilizes a UAC Bypass and Request a $90 Ransom Payment. Bleepingcomputer.com 7 February. https://www.bleepingcomputer.com/news/security/erebus-ransomware-utilizes-a-uac-bypass-and-request-a-90-ransom-payment/ (Accessed 2017-06-13)

Cloud computing

 : 인터넷을 기반으로 한 컴퓨팅. 

 사용자에게 네트워크, 서버, 저장소, 어플리케이션, 서비스 등의 다양한 컴퓨팅 자원들을 제공하는데 

 이러한 것들은 구름처럼 사용자의 눈에 보이지 않는다. 그래서 Cloud라는 개념이 생긴 듯.

- 인프라 투자 비용↓, 값싼 이용료, 고성능, 편리함

- 접근성, 이용성, 확장성 good.




<NIST(미국 표준 기술 연구소)가 정의한 기본 특징>

1. On-demand self-service (요구에 의한 셀프 서비스)

: 필요한 만큼 알아서 서비스 사용

2. Broad network access (광범위 네트워크 접속)

: 모바일, 타블렛, 개인PC, 회사 등 여러 종류 기기에서 네트워크를 통해 사용 가능

3. Resource pooling (자원을 공동 이용)

: 어디든 상관없이 각자 원하는 대로 컴퓨팅 자원을 공동으로 이용하고 공유

4. Rapid elasticity (빠릿한 탄력성) 

: 양이 적든 많든 언제든지 자유자재로 수요에 맞게 공급

4. Measured service (안정된 서비스)

: 자원을 감시하고, 조절하고, 보고하며 자동으로 최적화 하여 투명한 서비스를 제공







Cloud service

 : 인터넷에 데이터, 프로그램 등 저장해서 필요할 때, 언제 어디서든 설치 없이 사용할 수 있도록 클라우드 컴퓨팅을 제공하는 서비스.

     - 간단하고 편리하게 공유, 전달, 저장, 실행



<Service models>

 : NIST가 정의한 클라우드 컴퓨팅의 3가지 서비스 모델


1. IaaS 

(Infrastructure as a Service)

: 컴퓨터, 서버, 저장소 등의 기본적인 인프라를 클라우드 서비스


2. PaaS 

(Platform as a Service)

: 데이터베이스, 프로그래밍 도구, 웹서버 등 개발 환경을 서비스


3. SaaS 

(Software as a Service)

: 개별적인 어플리케이션을 클라우드 서비스



= 클라우드 서비스 제공자

직접 운영

IaaS 

PaaS 

SaaS 

 컴퓨터, 모바일 등 사용자 기기

컴퓨터

 컴퓨터

 컴퓨터

 OS (Window, Linux)

 OS

 OS

 OS

 Platform (Apache, MySQL, PHP)

Platform

Platform

Platform

 Software

Software

 Software

 Software


※  반드시 PaaS가 IaaS를 포함하는 것도, SaaS가 IaaS 와 PaaS를 다 포함하고 있는 것도 아님.

   그냥 SaaS 모델의 Software 서비스만 이용할 수도 있다.












Reference

Peter Mell Timothy Grance. The NIST Definition of Cloud Computing.

Wikipedia. Cloud computing. 클라우드 컴퓨팅


extern

  다른 파일에 선언된 전역 변수 사용

  초기화 하지마.

 

 

static

  공유 못하게 할 때 사용

 

 

사용자 정의 헤더 파일

  각 파일에 공통으로 필요한 코드 모음

  하나의 함수를 여러 파일에서 사용하는 경우

  하나의 전역 변수를 여러 파일에서 공유

 

  <point.h 파일>

#ifndef _POINT_H_

#define _POINT_H_

typedef struct

{

int x; int y;

} Point;

#endif

 


 

  <line.h 파일>

#include “point.h”

typedef struct

{

Point first;

Point second;

} Line;

 



  <main.c 파일>

#include<stdio.h>

#include “point.h”

#include “line.h”

int main(void)

{

Line a = {{1,2}, {5,6}};

Point b;

b.x = (a.first.x + a.second.x) / 2;

b.y = (a.first.y + a.second.y) / 2;

printf(“선의 가운데 점의 좌표 (%d %d)\n”, b.x, b.y);

return 0;

}

 

'Language > C' 카테고리의 다른 글

13. Header & Macro  (0) 2017.06.12
12. File  (0) 2017.06.12
11. Struct  (0) 2017.06.12
10. Memory allocation  (0) 2017.06.12
09. Variable Pointers  (0) 2017.06.12

+ Recent posts