
1. Abstract
2022년 말 등장한 AxLocker Ransomware는 일반적인 Ransomware와 다르게 파일을 암호화한 후 확장자는 변경하지 않는다는 특징을 가진다. 본 포스팅에서는 개인 PC 정보 및 여러 정보를 탈취하는 AxLocker Ransomware의 주요 행위에 대해서 설명한다. 상세한 행위를 분석하기 위해 DnSPY를 사용한 동적 분석을 진행하였으며, 구체적인 정보 탈취 목록 및 과정을 도출하였다.
2. 샘플 및 분석환경 정보

샘플에 대한 Hash 정보 및 추후 정보를 탈취하는 Discord Server 주소는 Figure 1과 같다.

3. 상세 분석(정적 분석)
Detect It Easy(DIE)를 사용하여 확인한 컴파일 유형 및 TimeStamp는 Figure ~과 같다. C/C++ 언어로 작성된 것이 아니라 C#(. NET)으로 작성된 것을 알 수 있으며, TimeStamp의 경우에는 정상적이지 않은 값으로 분석되는 것을 확인할 수 있다.

다음으로, PEStudio를 활용하여 Import된 함수를 통해 해당 악성코드 행위를 간략하게 파악하였다. 우선적으로 System.Net.Http의 Namespace에 포함된 함수들이 다수 사용되었으며, Cryptography관련 함수들도 다수 사용되어 특정 파일이나 내용의 암호화를 수행하고 정보들을 Http 통신으로 탈취하는 행위를 할 가능성이 높은 것으로 판단되었다.


4. 상세 분석(동적 분석)
AxLocker Ransomware의 전반적인 악성 행위 과정은 아래 그림과 같다. 실행 초기, 자신의 파일 속성을 숨김으로 변경하고 암호화 대상 파일을 암호화한다. 이후 Discord 토큰, PC 및 사용자 관련 정보를 탈취한 후 해당 정보를 Discord 서버로 전송하고 랜섬노트를 로드다.

4.1 파일 속성 변경
본 샘플이 실행될 경우 초기 자신의 파일 속성을 숨김으로 변경하여 숨김 파일로 지정한다.

4.2 (암호화 대상) 파일 암호화
해당 샘플은 C드라이브만 타겟으로 하여 암호화를 진행한다.

이후 특정 디렉토리를 제외한 모든 디렉토리를 탐색한다. 탐색에 제외되는 디렉토리는 Figure 8,9와 같다.


탐색 제외 대상 디렉토리를 돌며, 모든 파일을 암호화하는 것이 아닌 암호화 대상 확장자를 가지는 파일만 암호화를 진행한다. 암호화 대상 확장자는 Figure 10과 같다.

탐색 제외 디렉토리가 아니며, 암호화 대상 확장자일 경우 암호화 루틴을 실행하여 암호화를 진행한다. 암호화 과정은 아래와 같은 과정으로 진행된다.
우선, 하드코딩된 password 값(WnZr4u7xh60A2W4Rz)에 SHA256 해시 알고리즘을 적용하여 AES 암호화에 사용될 키 값을 생성한다.


생성된 AES 키 값을 토대로 암호화 대상 파일들의 암호화를 진행한다. File.Open() 함수를 통해 암호화 대상 파일을 파일스크림값으로 읽어온 후 암호화한 값을 array2에 저장한 후 파일 스트림을 종료한다.

이후, 새로운 파일스트림을 통해 암호화한 값(array2)을 암호화 대상 파일에 기록하고 콘솔로 Encrypted 목록을 출력한다. 정상적으로 암호화된 파일은 encryptedFiles 리스트에 저장된다.

Vmware Tools\manifest.txt의 암호화 전 후 변화는 Figure 15와 같다. 암호화 전에는 encoding 등 Vmware 설정과 관련된 정보로 기록되어 있지만 암호화 후 전혀 알 수 없는 값으로 기록되어 있는 것을 확인할 수 있다.

4.3 Discord 토큰, PC 및 사용자 관련 정보 탈취
Discord 토큰 관련 정보가 얻는 경로를 획득하기 위해 Roaming, Local 경로를 로드하고 추가로 각 경로에 Discord, discordcanary, discordptb, Opera Software\Opera Stable 결합한다. 최종적으로 로드되는 경로는 Figure 17과 같다.


이후, 로드한 경로(Figure 17)의 하위 경로에 Local Storage\leveldb로 접근하고 ldb 확장자를 가지는 파일이 존재하는지 확인한다. ldb 파일이 존재할 경우 정규식을 활용하여 Discord Token(MFA가 적용되지 않은 것, MFA 적용된 것) 패턴과 일치하는 문자열이 있는지 확인한다.

Discord Token 패턴과 일치하는 문자열이 존재할 경우 탈취 대상 정보를 수집하는 List에 추가한다. 해당 샘플은 이뿐만 아니라 Computer Name, User Name, UUID, IP 정보의 탈취도 진행하는데 UUID는 "wmic csproduct get uuid" CMD 명령어를 통해 획득하고 IP의 경우 "https://api.ipify.org" URL에 GET 요청을 통해 대상 PC의 IP 정보를 획득한다. 이외 Computer Name 및 User Name은 단순한 환경변수 값을 불러오는 함수를 통해 획득한다.



위 과정을 통해 탈취한 정보들은 Discord 서버로 POST 요청을 보내 탈취한 정보를 전송한다.

4.4 랜섬노트
랜섬노트는 Figure 23과 같이 Personal ID가 존재하고 복구를 하기 위한 이메일이 존재하는 것을 확인할 수 있다. Personal ID는 모든 알파벳(대문자) 및 숫자 사이에서 랜덤하게 샘플링하여 842개의 길이를 가진다. 또한, 동일한 방법으로 20개의 길이를 가지는 리스트는 추후 winlog.txt에 기록될 Decryption Key이다.


Decryption Key는 최종적으로 winlog.txt에 기록되는데 이전에 획득한 값이 그대로 사용되는 것이 아니라 암호화 과정을 거쳐 저장된다. 하드코딩된(this.hash = rNoRd8mIyt5DvhW8uzsV) 문자열에 MD5 해시함수를 적용하여 TripleDES의 Key 값을 생성하고 Decryption Key와 TripleDES 암호화를 적용하여 winlog에 기록한다.

5. 결론
AxLocker Ransomware는 정적분석과 동일하게 특정 파일에 대한 암호화를 진행하고 사용자 및 PC, Discord 관련정보를 탈취하는 Ransomware이다. 하지만, 타 랜섬웨어와는 다르게 확장자를 변경하지 않는 것을 확인할 수 있었으며, 랜섬노트는 바탕화면을 변경하는 것이 아는 Form(UI)형태로 나타내는 것을 확인할 수 있다.
'Malware' 카테고리의 다른 글
[Malware Analysis] Raccoon Stealer 2.0(v2) - (2) (0) | 2024.03.02 |
---|---|
[Malware Analysis] Raccoon Stealer 2.0(v2) - (1) (1) | 2024.02.27 |
[Paper Review] Feature Selection for Malware Detection Based on Reinforcement Learning (0) | 2023.12.14 |

1. Abstract
2022년 말 등장한 AxLocker Ransomware는 일반적인 Ransomware와 다르게 파일을 암호화한 후 확장자는 변경하지 않는다는 특징을 가진다. 본 포스팅에서는 개인 PC 정보 및 여러 정보를 탈취하는 AxLocker Ransomware의 주요 행위에 대해서 설명한다. 상세한 행위를 분석하기 위해 DnSPY를 사용한 동적 분석을 진행하였으며, 구체적인 정보 탈취 목록 및 과정을 도출하였다.
2. 샘플 및 분석환경 정보

샘플에 대한 Hash 정보 및 추후 정보를 탈취하는 Discord Server 주소는 Figure 1과 같다.

3. 상세 분석(정적 분석)
Detect It Easy(DIE)를 사용하여 확인한 컴파일 유형 및 TimeStamp는 Figure ~과 같다. C/C++ 언어로 작성된 것이 아니라 C#(. NET)으로 작성된 것을 알 수 있으며, TimeStamp의 경우에는 정상적이지 않은 값으로 분석되는 것을 확인할 수 있다.

다음으로, PEStudio를 활용하여 Import된 함수를 통해 해당 악성코드 행위를 간략하게 파악하였다. 우선적으로 System.Net.Http의 Namespace에 포함된 함수들이 다수 사용되었으며, Cryptography관련 함수들도 다수 사용되어 특정 파일이나 내용의 암호화를 수행하고 정보들을 Http 통신으로 탈취하는 행위를 할 가능성이 높은 것으로 판단되었다.


4. 상세 분석(동적 분석)
AxLocker Ransomware의 전반적인 악성 행위 과정은 아래 그림과 같다. 실행 초기, 자신의 파일 속성을 숨김으로 변경하고 암호화 대상 파일을 암호화한다. 이후 Discord 토큰, PC 및 사용자 관련 정보를 탈취한 후 해당 정보를 Discord 서버로 전송하고 랜섬노트를 로드다.

4.1 파일 속성 변경
본 샘플이 실행될 경우 초기 자신의 파일 속성을 숨김으로 변경하여 숨김 파일로 지정한다.

4.2 (암호화 대상) 파일 암호화
해당 샘플은 C드라이브만 타겟으로 하여 암호화를 진행한다.

이후 특정 디렉토리를 제외한 모든 디렉토리를 탐색한다. 탐색에 제외되는 디렉토리는 Figure 8,9와 같다.


탐색 제외 대상 디렉토리를 돌며, 모든 파일을 암호화하는 것이 아닌 암호화 대상 확장자를 가지는 파일만 암호화를 진행한다. 암호화 대상 확장자는 Figure 10과 같다.

탐색 제외 디렉토리가 아니며, 암호화 대상 확장자일 경우 암호화 루틴을 실행하여 암호화를 진행한다. 암호화 과정은 아래와 같은 과정으로 진행된다.
우선, 하드코딩된 password 값(WnZr4u7xh60A2W4Rz)에 SHA256 해시 알고리즘을 적용하여 AES 암호화에 사용될 키 값을 생성한다.


생성된 AES 키 값을 토대로 암호화 대상 파일들의 암호화를 진행한다. File.Open() 함수를 통해 암호화 대상 파일을 파일스크림값으로 읽어온 후 암호화한 값을 array2에 저장한 후 파일 스트림을 종료한다.

이후, 새로운 파일스트림을 통해 암호화한 값(array2)을 암호화 대상 파일에 기록하고 콘솔로 Encrypted 목록을 출력한다. 정상적으로 암호화된 파일은 encryptedFiles 리스트에 저장된다.

Vmware Tools\manifest.txt의 암호화 전 후 변화는 Figure 15와 같다. 암호화 전에는 encoding 등 Vmware 설정과 관련된 정보로 기록되어 있지만 암호화 후 전혀 알 수 없는 값으로 기록되어 있는 것을 확인할 수 있다.

4.3 Discord 토큰, PC 및 사용자 관련 정보 탈취
Discord 토큰 관련 정보가 얻는 경로를 획득하기 위해 Roaming, Local 경로를 로드하고 추가로 각 경로에 Discord, discordcanary, discordptb, Opera Software\Opera Stable 결합한다. 최종적으로 로드되는 경로는 Figure 17과 같다.


이후, 로드한 경로(Figure 17)의 하위 경로에 Local Storage\leveldb로 접근하고 ldb 확장자를 가지는 파일이 존재하는지 확인한다. ldb 파일이 존재할 경우 정규식을 활용하여 Discord Token(MFA가 적용되지 않은 것, MFA 적용된 것) 패턴과 일치하는 문자열이 있는지 확인한다.

Discord Token 패턴과 일치하는 문자열이 존재할 경우 탈취 대상 정보를 수집하는 List에 추가한다. 해당 샘플은 이뿐만 아니라 Computer Name, User Name, UUID, IP 정보의 탈취도 진행하는데 UUID는 "wmic csproduct get uuid" CMD 명령어를 통해 획득하고 IP의 경우 "https://api.ipify.org" URL에 GET 요청을 통해 대상 PC의 IP 정보를 획득한다. 이외 Computer Name 및 User Name은 단순한 환경변수 값을 불러오는 함수를 통해 획득한다.



위 과정을 통해 탈취한 정보들은 Discord 서버로 POST 요청을 보내 탈취한 정보를 전송한다.

4.4 랜섬노트
랜섬노트는 Figure 23과 같이 Personal ID가 존재하고 복구를 하기 위한 이메일이 존재하는 것을 확인할 수 있다. Personal ID는 모든 알파벳(대문자) 및 숫자 사이에서 랜덤하게 샘플링하여 842개의 길이를 가진다. 또한, 동일한 방법으로 20개의 길이를 가지는 리스트는 추후 winlog.txt에 기록될 Decryption Key이다.


Decryption Key는 최종적으로 winlog.txt에 기록되는데 이전에 획득한 값이 그대로 사용되는 것이 아니라 암호화 과정을 거쳐 저장된다. 하드코딩된(this.hash = rNoRd8mIyt5DvhW8uzsV) 문자열에 MD5 해시함수를 적용하여 TripleDES의 Key 값을 생성하고 Decryption Key와 TripleDES 암호화를 적용하여 winlog에 기록한다.

5. 결론
AxLocker Ransomware는 정적분석과 동일하게 특정 파일에 대한 암호화를 진행하고 사용자 및 PC, Discord 관련정보를 탈취하는 Ransomware이다. 하지만, 타 랜섬웨어와는 다르게 확장자를 변경하지 않는 것을 확인할 수 있었으며, 랜섬노트는 바탕화면을 변경하는 것이 아는 Form(UI)형태로 나타내는 것을 확인할 수 있다.
'Malware' 카테고리의 다른 글
[Malware Analysis] Raccoon Stealer 2.0(v2) - (2) (0) | 2024.03.02 |
---|---|
[Malware Analysis] Raccoon Stealer 2.0(v2) - (1) (1) | 2024.02.27 |
[Paper Review] Feature Selection for Malware Detection Based on Reinforcement Learning (0) | 2023.12.14 |