본문 바로가기

Analysis

63. Rhysida Ransomware (0.1)

최근, Rhysida 랜섬웨어가 활발히 활동중인 것을 확인하였다. 본 글에서는 입수한 Rhysida-0.1 에 대해 분석한다.

Rhysida 랜섬웨어의 로고

 

- sha256 : 8061bb999a0f5d3165742283001a7a68e7905718c928172343bf8456b69f268d

 

입수한 샘플의 경우 64 비트 실행파일이다.

샘플 정보

 

 

Rhysida 랜섬웨어는 가장 처음 난수를 설정하고, getcwd() 함수를 이용해 현재 위치를 파악한다. 이후 자체적으로 관리하는 옵션 값이 무엇이 할당되었는지를 확인한다.

첫 설정
옵션 확인

 

옵션은 d, sr, nobg, md5, S 의 총 5개로 이루어진다. 각각 옵션은 설정될 경우 아래와 같은 역할을 수행한다.

-d : 암호화 디렉토리 이름 지정, 생략될 경우 문자로 식별되는 모든 드라이브가 대상이 됨
-sr: 파일 암호화 후 자체 제거
-nobg: 바탕화면 변경 비활성화
-S: 시스템 계정을 이용해 PC 시작시 실행되는 예약된 작업(스케쥴) 생성
-md5: 암호화 되기 전 각 파일의 md5 계산, (md5는 계산되지만 현재는 사용되지 않음)

 

이후, prng, rsa 등을 통해 파일 암호화에 사용될 키를 생성한다.

암호화 키 생성

 

암호화 알고리즘에는 chacha20 알고리즘이 사용된다.

chacha20 알고리즘

 

 

암호화 키 생성 후에는 실제 암호화 작업을 시작한다. 암호화 작업은 내부적으로 이벤트를 생성해 수행되기 때문에 쓰레드 단위로 이루어진다. 따라서, 암호화 속도가 빠르다.

메인 암호화 이벤트 생성

 

먼저 암호화를 수행할 디렉토리를 찾는다. 가장 상위 디렉토리를 찾기 위해 C:\ 부터 시작해서 D:\, E:\ 식으로 알파벳을 하나씩 늘려가며 상위 디렉토리를 모두 찾는다.

상위 디렉토리 탐색

 

 

디렉토리 탐색 중 제외 디렉토리가 나올 경우에는 암호화를 수행하지 않도록 설정한다. 또한, 디렉토리를 한 번 찾을 때마다 10초의 sleep을 통해 샌드박스 등이 수행하는 분석에 회피를 의도한다.

제외 디렉토리는 아래와 같다.

$Recycle.Bin, Boot, ProgramData, Recovery, Document and Settings, System Volume Information, PerfLogs, Windows, Program Files, $RECYCLE.BIN, Program Files (x86)

 

제외 디렉토리 체크
제외 디렉토리

 

암호화는 다음과 같은 순서로 이루어진다.

1. 파일 확인

2. 파일 확장자가 제외 확장자에 포함되는지 확인

3. 파일 암호화

각 파일 암호화마다 10초의 sleep 시간이 존재하며, 해당 sleep은 샌드박스 등을 통한 분석 회피를 위함으로 생각된다.

파일 암호화시 암호화가 제외되는 확장자는 아래와 같다.

.bat, .bin, .cab, .cmd, .com, .cur, .diagcab, .diagcfg, .diagpkg, .drv, .dll, .exe, .hlp, .hta, .ico, .msi, .ocx, .ps1, .psm1, .scr, .sys, .ini, .Thumbs, .db, .url

기본적으로 OS 구동에 필요한 필수 파일 및 Rhysida 랜섬웨어에서 사용하는 파워쉘 악성코드의 동작을 위해 파워쉘 확장자가 포함된 것을 볼 수 있다.

 

또한, 암호화 루틴 내부에 "Rhysida-0.1" 로 버전을 가리키는 문자열이 포함된 것을 볼 수 있다.

 

파일 암호화 루틴
Rhysida-0.1 문자열
제외 확장자

 

파일 암호화 이후 가장 처음 설정되었던 옵션에 따라 몇가지 cmd 명령을 수행한다. 각각 네트워크 체크, 파워쉘을 통한 스케쥴 등록/삭제, 파일 자체 삭제 등을 수행한다. 명령어는 아래와 같다.

- 네트워크 체크: cmd.exe /c start ping 127.0.0.1 -n 2 > nul && del /f /q
- 파일 자가 삭제: cmd.exe /c start powershell.exe -WindowStyle Hidden -Command Sleep -Milliseconds 500; Remove-Item -Force -Path "%BINARY_NAME%” -ErrorAction SilentlyContinue;
- 스케쥴 등록: cmd.exe /c start powershell.exe -WindowStyle Hidden -Command “Sleep -Milliseconds 1000; schtasks /end /tn Rhsd; schtasks /delete /tn Rhsd /f; schtasks /create /sc ONSTART /tn Rhsd /tr \”
- 스케쥴 삭제: cmd.exe /c start powershell.exe -WindowStyle Hidden -Command "Sleep -Milliseconds 1000; schtasks /delete /tn Rhsd /f;"

 

cmd 명령어 1
cmd 명령어 2
cmd 명령어 3

 

 

파일 암호화를 성공적으로 끝내고나면 cmd 명령어를 이용해 볼륨 섀도우 카피본을 삭제함으로써 파일의 복구를 불가능하게 만든다.

볼륨 섀도우 카피 삭제

 

 

볼륨 섀도우 카피본 삭제까지 끝내고나면 랜섬노트를 생성한다. 랜섬노트의 내용은 아래와 같으며 랜섬노트를 배경화면으로도 등록한다. 배경화면 등록을 위해 레지스트리 키의 값들을 변경한다.

랜섬노트 생성
배경화면 등록
생성된 랜섬노트
바뀐 배경화면

 

파일은 암호화될 경우 [원본파일명].rhysida 로 확장자를 변경한다.

암호화 후 확장자 변경

반응형