본문 바로가기
악성코드 정보

국내 백신에 대한 새로운 무력화 시도 (GandCrab v5.0.4)

by 분석팀 2019. 1. 7.

최근 ASECGandCrab 유포 스크립트를 모니터링 중 국내 백신을 대상으로 하는 새로운 무력화 방식을 사용함을 포착하였다이전 버전에선 아래의 [그림 1]과 같이 "Uninst.exe"의 실행을 통해 제품 삭제를 시도했다면최근 발견된 유포 스크립트는 해당 방식을 제거하고 V3 서비스를 종료하려는 새로운 시도가 발견 되었다(지난 글http://asec.ahnlab.com/1171)


[그림 1.] 기존 V3Lite 언인스톨 관련 코드 (GandCrab v5.0.3)

 

동작방식에 있어서도 변화가 확인되었으며 기존에는 *.JS 자바 스크립트 파일에 의해 GandCrab 랜섬웨어 실행파일(*.EXE)이 생성 및 실행되는 구조였다면, 현재 유포되는 형태는 아래의 [그림 2]와 같이 파워쉘을 통해 파일리스(Fileless) 형태로 동작하며, 랜섬웨어 암호화 행위는 PowerShell.exe 에 의해 발생한다. 또한, 국내 사용자가 많은 백신 제품이 실행 중인 경우 15분간의 시간지연(Sleep()함수) 후에 동작하는 특징을 갖는다.


[그림 2] 감염 순서


유포된 *.JS파일은 아래의 [그림 3]과 같이 난독화 형태로 되어있으며, 내부에 PowerShell.exe를 실행하는 구조이다.


[그림 3.] 악성dll이 내포된 javascript 파일


아래와 같은 명령어를 통해 "랜덤명.log" 파일 실행한다.

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" 
-ExecutionPolicy Bypass -Command "IEX (([System.IO.File]::ReadAllText('C:\Users\(User_ID)\Desktop\(랜덤명).log')).Replace('?',''));"

랜덤명.log 파일은 아래 [그림 4]와 같이 Base64로 인코딩된 형태이며, [그림 5]는 디코딩된 파워쉘 스크립트이다.

[그림 4] 인코딩된 파워쉘 스크립트(랜덤명.log)


[그림 5] 디코딩된 파워쉘 스크립트


결과적으로 [그림 5]의 스크립트가 실행되며 해당 파워쉘 스크립트는 [그림 6]의 델파이(Delphi) 언어로 만들어진 코드를 메모리에서 실행한다.

 

[그림 6] 내부 Delphi 코드 중 일부


[그림 6] 코드 중 빨간 박스는 국내 백신 프로그램 2곳을 무력화하기 위한 기능이며, 파랑색 박스는 기존 GandCrab 랜섬웨어 감염 행위와 동일하다. , 실행 순서는 다음과 같다.

(1) V3 서비스 동작확인 ("V3 Service")

(2) 15분간 Sleep()

(3) V3 서비스 종료 시도

(4) DLL 형태의 랜섬웨어 구동

(5) 타 국내 백신 서비스 동작확인 ("ALYac_RTSrv")

(6) 타 백신 Decoy 폴더 우회시도


[그림 7] 내부 dll 코드


기존 GandCrab은 백신을 삭제하는 기능이 캡차 코드 적용으로 삭제가 불가능 해지자 백신을 종료시키는 방법으로 수단을 변경하였다. [그림 7]과 같이 “V3 Service” 이름의 서비스를 검색하여 V3가 실행 중인지 확인하며, 실행 중일 경우 15분 동안 대기(Sleep()함수) V3 제품에 대한 서비스 종료를 시도한다.


안랩 뿐 아니라 다른 국내 백신업체의 경우에도 드라이브의 특정 디렉토리에 임의 명의 Decoy폴더를 만들어 놓고 폴더 내부의 문서가 암호화가 이루어질 경우 랜섬웨어 행위로 탐지하는 Decoy방법을 사용한다.


해당 백신업체의 Decoy 진단을 우회하기 위해 각 드라이브의 루트에 폴더 명의 문자열 중 특정 문자열([2])이 발견되면 해당 폴더의 파일들에 대해 감염을 우회하는 기능이 발견되었다예를 들면 C드라이브에 “!@GNNh” Decoy폴더를 생성해 놓았다면 경로는 [1]과 같다.


Decoy폴더 경로[ C:\!@GNNh\ ]
GandCrab
우회 문자열 [ C:\!@GNNh\ ]

[1] 디코이 폴더의 예시


위 예시에서 GandCrabDecoy경로명의 첫 글자가 특수문자(!)라는 것을 가지고 9개의 특정 문자열로 Decoy를 우회하는 기법을 시도하였다. 우회 문자열은 아래 [ 2]와 같다.


번호

필터 문자열

1

:\!

2

:\@

3

:\#

4

:\$

5

:\%

6

:\^

7

:\&

8

:\=

9

:\-

[2] 국내 타 백신 Decoy폴더 탐지 문자열



안랩에서는 해당 샘플들을 아래와 같이 진단하고 있다.


파일진단 (V3 무력화 관련)



행위진단 (랜섬웨어 행위탐지)



행위진단 (권한상승 행위탐지)





댓글