메뉴 건너뛰기

Hello :0

1. 개요

2016년 초부터 등장 했던 랜섬웨어가 잠잠해지는 듯하더니 지속적으로 메일로 유포되고 있다.

 

1.png

지속적으로 내용과 보내는 사람을 변경해서 메일을 보내준다.

 

2.png

과거 수법과 동일하게 zip으로 만들어진 압축 파일 안에는 wsf 스크립트 파일이 존재한다.

 

3.png

4.png

해당 파일을 실행할 비트코인을 요구하는 창을 띄우고 바탕화면도 변경시킨다. 각각 의 폴더안에는 "_HELP_instructions.html"의 형태의 파일과 zepto 확장자의 파일만 덩그라니, 남아 있다.

 

2. 스크립트 파일 확인

5.png

wsf 파일을 열어 보면 난독화된 js 코드가 존재함을 알 수 있다.

 

6.png

js 스크립트만 따로 추출을 해주어서 한번 정리를 해준다.

 

7.png

document.write와 textarea를 사용하여 변수 c의 내용을 확인한다.

 

8.png

위의 방법으로 난독화가 풀린 731줄 가량의 또다른 js 스크립트소스를 획득 할 수 있다.

 

9.png

이스크립트 함수의 핵심을 문서에는 안나와있지만 bar 함수안에 eval명령어가 있고, c문자열 변수를 eval로 실행하는 것이다.

 

10.png

11.png

한줄씩 타고 내려오면서 alert노가다를하면 위와 같은 도메인 정보를 획득 할 수 있다. 

 

12.png

13.png

14.png

다운받은 파일은 난독화 해제 후 위의 경로에 저장.

 

3. 파일분석

15.png

먼저 파일에 대한 정보를 확시나 얻을 수 있을까해서 peid 돌려 보았지만 딱히...

 

16.png

bintext를 이용해 문자열 확인 해봐도 딱히....

 

17.png

일단 파일을 실행했을때 하는 행위를 파악하기 위해 실행해본다. 

해당 악성코드는 "321" 파라미터로 받아야 정상적으로 작동한다.

 

18.png

네트워크 접속 여부 확인 가능

 

19.png

c&c와 통신을 통해 키를 받을 것으로 추정한다.

 

21.png

procmon으로 파일을 찾고 zepto 확장자로 암호화하여 저장한다.

 

24.png

파일을 ollydbg로 트레이싱을 해나가다 보니 A70000에서 00400000로 1byte씩 복사하는 것을 확인 가능.

해당 A70000부분은 pe 파일 형태로 구성되어 있다.

 

25.png

A70000에서 문자열을 쫙 긇어 hxd로 파일을 만들어 준다.

 

26.png

난독화가 풀린듯하다. 처음 파일에서는 확인 할 수 없었던 익숙한 확장자들이 보인다.

위의 종류에 대한 확장자에 대해 암호화를 한다.

 

27.png

28.png

새로운 파일로 다시 실행하면 시스템의 언어 확인 후 Sleep를 이용해 잠시 쉰다. Timeout =43000.ms (43초후실행)

 

29.png

30.png

그다음으로 암호화 관련 키생성과 관련된 함수들을 호출 한다.

 

31.png

실행할때마다 다르게 키가 생성된다. 위의 사진은 암호화에 사용될 키값

 

33.png

디버깅을 해보면 어떤 윈도우 버전을 쓰는지에 대해 확인 한다.

 

34.png

url들의 파라미터를 입력하는 것을 확인 할 수 있다.
"id=D41D8CD98F00B204&act=getkey&affid=1&lang=ko&corp=0&serv=0&os=Windows+XP&sp=3&x64=0&v=2" 

 

35.png

36.png

파일 실행 했을때 확인 되었던 도메인들에 대해 접속하는 것 처럼 외부 접속 확인.

 

37.png

 

38.png

 

xfequCH=%C6%F3%B9%F0%914K%88%D9%9E%E2%DD%86h%0E%B9%8A%5D%29%9B%B5_%10%E4%85

%F2D%82W%92B%D8%CD%ED%F2&HvValcY=%2Cyv%5C%FDni%1Et%8Eu%9D%98%A7%A9%9Ay%82%E7

%91%1CK%A0%F2%A3%1A%BCA%60%CFn%D5%AE%9B%D6%D8%05%E5%B3%D1D5%D4%C4%19%0E

%98%1A%BC%B8&Kb

시스템에서 가져온 정보들의 이용해 C&C서버로 요청한다.
 

39.png

40.png

새로운 쓰레드를 생성하고 쓰레드에서 암호화를 진행한다. FindFirstFileW를 이용해서 디렉터리를 검색한다.

 

41.png

42.png

메모리에 저장되어 있는 디렉터리들 확인.

 

43.png

44.png

위의 루프문을 돌면서 암호화 할 파일 확장자들에 대한 정보를 가져온다.

 

45.png

46.png

FindNextFileW를 이용해서 쭈욱 스캔~

 

47.png

그리고 우리의 파일들은 암호화가 된다.

 

48.png

49.png

50.png

Createfilew를 이용하여 비트코인 요청 페이지를 만든다.

 

51.png

생성된 html 파일

 

53.png

54.png

55.png

다음으로는 파탕화면을 변경하기 위한 부분이다. 바탕화면을 변경하기 위해 RegOpenKeyEXA를 호출한다.

 

56.png58.png

57.png

다음으로는 위의 사진 처름 레지스트리를 설정한후 RegSetValueExA를 이용해 레지스트리 값을 변경한다.

 

60.png

61.png

62.png

SystemParameterInFoW를 호출 하여 배경화면을 갱신.

 

63.png

위와 같이 배경화면이 변경된다.

 

64.png

65.png

ShellExecuteW명령어로 바탕화면에 만들어진 html과 bmp 파일을 실행시킨다.

 

66.png

67.png

악성코드가 실행되면, 원본 파일은 위의 경로로 이름을 sys1C.tmp로 변경하여 이동 시킨다.

 

68.png 69.png

옮겨진 파일을 cmd명령어를 이용해서 삭제.