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

[주의] 특정 기업을 타깃으로 유포되는 WastedLocker 랜섬웨어

by 분석팀 2020. 8. 28.

지난 7월 23일에 스마트 워치 및 웨어러블 제조업체인 'Garmin' WastedLocker 이름의 랜섬웨어 공격을 받아 서비스 및 생산라인이 중단되는 이슈가 발생했었다.

 

해당 랜섬웨어의 제작자는 'Evil Corp'라는 러시안 사이버 범죄 그룹으로 알려져 있으며 이들은 특정 기업을 대상으로 APT 공격을 수행한 뒤, 침투 테스킹 도구인 Cobalt Striker를 이용하여 WastedLocker 랜섬웨어를 배포한 것으로 추정된다.

 

WastedLocker는 시스템 내의 파일을 암호화 시켜 복호화해주는 대가로 금전을 요구하는 전형적인 랜섬웨어의 특징을 가진 악성코드이다. 특히나 WastedLocker 랜섬웨어 같은 경우, 프로그램에 전달되는 특정 매개 변수 조건에 따라 암호화 범위를 컨트롤 할 수 있는 명령 인터페이스가 존재하는 것이 특징이다. 이는 공격자가 표적 공격에 의해 이미 감염된 시스템으로부터 확보된 리소스 내에서 특정 대상만 선정하여 암호화를 수행 하기 위해 만든 것으로 판단된다.

 

해당 악성코드는 크게 다음과 같은 4가지 악성 행위를 수행한다.

 

1. 특정 ADS 영역에 자가 복제본 생성 및 재귀 실행 (*위장 메커니즘)

2. 관리자 권한으로 실행되지 않은 경우, UAC BYPASS 수행 (*권한 상승 메커니즘)

3. 특정 매개 변수에 따른 암호화 프로세스 수행. (*랜섬웨어 행위)

4. 자기 자신을 삭제 (*흔적 제거 메커니즘)

 

1. 특정 ADS 영역에 자가 복제본 생성 및 재귀 실행 (*위장 메커니즘)

 

1.1 시스템 폴더에 존재하는 임의의 exe 또는 dll 파일을 임시 폴더로 복사

└ %AppData%\Roaming\[random]

시스템 폴더 내의 임의의 정상 파일을 임시 폴더로 복사  

 

1.2 임의로 복사한 파일의 ADS 영역(:bin)에 자신의 사본을 삽입.

└ %AppData%\Roaming\[random]:bin

ADS 영역 내 자신의 사본을 삽입

 

ADS 영역 내에 삽입된 사본

 

1.3 관리자 권한으로 실행된 경우, ADS 영역 내 자신의 사본을 아래와 같이 매개 변수를 주어 호출

조건 1) 매개 변수가 입력된 경우

└ %AppData%\Roaming\[random]:bin %매개변수% -r

조건 2) 매개 변수가 입력되지 않은 경우 (*디폴트 값 : -r)

└ %AppData%\Roaming\[random]:bin –r

ADS 영역 내의 자신의 사본을 호출

 

 

2. 관리자 권한으로 실행되지 않은 경우, UAC bypass 수행 (*권한 상승 메커니즘)

 

2.1 트릭 폴더 생성 후 NtFsControlFile API 사용하여 마운트 지점(c:\Windows \") 설정

└ %Temp%\[random]

Temp 경로에 랜덤명의 디렉토리 생성
마운트 지점 설정 "C:\Windows \"

 

2.2 AutoElevate가 설정된 정상 시스템 파일을 트릭 폴더로 복사

└ %system32%winsat.exe -> %Temp%\[random]\system32\winsat.exe

winsat.exe 트릭 폴더로 복사 

 

2.3 winsat.exe가 임포트 하는 정상 모듈을 트릭 폴더로 복사

└ %system32%winmm.dll -> %Temp%\[random]\system32\winmm.dll

winmm.dll 트릭 폴더로 복사

 

2.4 winmm.dll을 패치하여 DLL 하이재킹 수행

패치된 dll에서 ADS 영역 내의 자신의 사본을 호출.

패치된 winmm.dll에서 ADS 영역 내의 자신의 사본을 호출 

 

3. 매개 변수 조건에 따른 아래의 암호화 프로세스 행위 수행 (*랜섬웨어)

(Usecase Arg : -p, -f, -u, -r, -s )

-p : 지정된 파일/디렉토리를 대상으로 먼저 암호화를 수행한 후 드라이브 및 디바이스 전체를 대상으로 한번 더 암호화 수행.

└ ex) -p c:\user\vmuser\desktop

-f : 지정된 파일/디렉토리를 대상으로 암호화 수행.

└ ex) -f c:\user\documents\test.txt

-u : 인증을 위한 자격 증명(사용자이름, 패스워드)을 사용하여 지정된 네트워크 리소스의 파일을 대상으로 암호화 수행

└ ex) -u username:password \\hostname

-r: 볼륨 섀도 삭제, %system32% 경로에 자가 복제본 생성 및 ACL 재설정 후 서비스로 등록하여 실행.

└ ImagePath : C:\Windows\system32\[random].exe %매개변수% -s

-s : 서비스 루틴으로 분기하여 모든 파일(매개변수-X) 또는 지정된 파일(매개변수-O)을 대상으로 암호화 수행

 

 

<암호화 프로세스>

 

1. 디렉토리 리스닝 및 암호화 대상 파일 선정

암호화 제외 확장자 :

 

*\ntldr | \bootmgr | *\grldr | *.386 | *.adv | *.ani | *.bak | *.bat | *.bin | *.cab | *.cmd | *.com | *.cpl | *.cur | *.dat | *.diagcab | *.diagcfg | *.dll | *.drv | *.exe | *.hlp | *.hta | *.icl | *.icns | *.ics | *.idx | *.ini | *.key | *.lnk | *.mod | *.msc | *.msi | *.msp | *.msstyles | *.msu | *.nls | *.nomedia | *.ocx | *.ps1 | *.rom | *.rtp | *.scr | *.sdi | *.shs | *.sys | *.theme | *.themepack | *.wim | *.wpx

 

암호화 제외 확장자명

 

암호화 제외 디렉토리 :

 

*\$recycle.bin* | *\appdata* | *\bin* | *\boot* | *\caches* | *\dev* | *\etc* | *\initdr* | *\lib* | *\programdata* | *\run* | *\sbin* | *\sys* | *\system volume information* | *\users\all users* | *\var* | *\vmlinuz* | *\webcache* | *\windowsapps* | c:\program files (x86)* | c:\program files* | c:\programdata* | c:\recovery* | c:\windows* | c:\users\ %USERNAME%\appdata\local\temp* | c:\users\ %USERNAME%\appdata\roaming*

 

암호화 제외 디렉토리명

 

 

2. 선정된 파일에 대한 암호화 수행 및 랜섬 노트 생성

암호화 알고리즘/블록 모드 : AES-256 / CBC

암호화 키 : 내부 알고리즘에 의해 랜덤하게 생성된 256 비트 키와 128비트 IV

매번 랜덤하게 생성되는 256bit 키와 128bit IV 

 

복호화 키 : 암호화에 사용된 AES 키와, IV를 내장된 RSA 공개키(4096비트)를 이용하여 암호화 한 뒤, Base64로 최종 인코딩하여 랜섬 노트에 로깅 (*공격자의 RSA 개인키를 확보 할 수 있다면 복호화 키를 얻을 수 있음.)

4096비트 RSA 공개키 

 

RSA 암호화 후 Base64로 최종 인코딩 되어 랜섬노트에 로깅된 복호화 키 

 

암호화된 파일명 : [파일 이름].garminwasted (*garmin : 공격 대상 조직명 / wasted : 랜섬웨어 이름)

암호화된 파일명

랜섬노트명 : [파일 이름].garminwasted_info (*garmin : 공격 대상 조직명 / wasted : 랜섬웨어 이름)

랜섬노트명

4. 자기 자신을 삭제 (*흔적 제거 메커니즘)

커맨드라인의 del 명령을 이용하여 자기 자신을 삭제 

 

[분석 요약]

 

WastedLocker 랜섬웨어는 먼저 자신을 은폐하기 위해 특정 ADS 영역에 자가 복제본을 생성한 뒤 재 실행한다. 이 때 관리자 권한으로 실행되지 않은 경우, UAC BYPASS를 시도하고 프로그램으로 입력된 특정 매개 변수에 따른 암호화 프로세스 행위를 수행한다. 최종적으로 암호화 프로세스가 끝나면 자기 자신 또는 복사본을 모두 삭제하여 자신의 흔적을 제거한다.

 

 

안랩 V3 제품군에서는 유형의 악성코드를 다음과 같이 탐지하고 있다.

 

[파일 진단]

- Trojan/Win32.WastedLocker.R345840 (2020.07.24.03)

- Trojan/Win32.Ransom.C4170354 (2020.07.28.04)

 

 

V3 파일 진단 - Trojan/Win32.Ransom.C4170354 

 

[행위 진단]

- Malware/MDP.SystemManipulation.M2255 (2019.08.02.09)

 

V3 행위 진단 - Malware/MDP.SystemManipulation.M2255

 

댓글