Malware

[Malware Analysis] Raccoon Stealer 2.0(v2) - (1)

Y30L 2024. 2. 27. 22:55

Figure 1. Raccoon Stealer v2(Ref : The Hacker News)

1. 개요


Raccoon Stealer v1은 2019년 4월 언더그라운드 포럼에서 서비서형 악성코드(MaaS, Malware-as-a-Service)로 판매되며 발견된 악성코드이다. 2019년 이후에도 꾸준하게 등장하였으나 2022년 7월 변종인 Raccoon Stealer 2.0(v2)가 발견되었다.

 

2. 샘플 및 분석 환경


분석 대상 샘플 및 Hash Value, Time Stamp는 아래와 같다.

Figure 2. Sample Information

 

분석 Windows 10 가상환경에서 진행하였으며 IDA Version 및 사용한 Debugger 정보는 아래와 같다.

Figure 3. Analysis Information

 

 

3. 상세 분석


해당 샘플이 수행하는 악성 행위에 대한 전체적인 Process는 아래와 같다. 해당 샘플이 실행되면 C&C 서버를 통해 악성 DLL 파일을 다운로드한 후 컴퓨터 정보, 웹 브라우저 정보와 같은 다양한 정보를 탈취한다.

Figure 4. Overview Process

 

주요 행위 및 샘플에 대한 상세 분석은 아래와 같다.

 

 

3.1 함수 및 DLL 동적 로드

공격자가 의도한 행위를 정상적으로 수행하기 위해 필요한 DLL 및 String, 함수명을 동적으로 로드한다.

Figure 5. Dynamic Load(Fnc, DLL)

 

 

3.2 Base64, RC4 알고리즘을 사용한 문자열 복호화

악성행위를 하는데 필요한 문자열은 하드코딩된 문자열을 로드하는 것이 아니라 Base64 및 RC4 알고리즘을 사용한 복호화 과정을 통해 로드한다. (하지만, RC4 알고리즘에 사용되는 복호화 키 값은 c4376f037b1703b305ca5fb81f6ffc21로 하드코딩 되어있다.)

Figure 6. Part of the RC4 algorithm

 

Figure 7. Part of the Base64

 

 

다수의 문자열이 위의 복호화루틴을 통해 도출되며 C&C 서버 또한 해당 루틴을 통해 복호화된다. C&C 서버의 복호화 전, 복호화 후 결과는 아래와 같다.

Figure 8. C&C Server Infomation

 

 

3.3 뮤텍스 생성

일반적으로 특정 PC가 해당 악성코드에 감염되어 현재 실행 중인 상태라면 굳이 악성코드를 중복으로 실행할 필요가 없기 때문에 뮤텍스를 생성하여 중복실행 유무를 확인한다. 생성되는 뮤텍스 명은 CCOYS///hdr이다.

Figure 9. Create Mutex

 

 

3.4 프로세스 목록 탐색

현재 프로세스 토큰을 통해 권한 상승 형태에 대한 정보를 획득한 후 SID값이 System SID일 경우 해당 PC의 프로세스 목록을 탐색 후 획득한다.

Figure 10. SID Value Check
Fgiure 11. Process Exploration

 

 

3.5 C&C 서버 접속

C&C 서버에 접속하기 전, 접 시 사용할 Content-Type 값을 로드한다. 해당 값은 별도의 복호화 루틴이 존재하지 않고 하드코딩되어 있다.

Figure 12. User-agent Load

 

Content-Type 값 이외에도 Machine ID, Config ID, MachineID 값을 로드한다.

Figure 13. MachineID, ConfigID Load

 

Content-Type 및 ConfigID, MachineID 값과 이전에 복호화하였던 C&C 서버에 접속을 시도한다. 접속하는 과정은 아래와 같다.

Figure 14. C&C Server Connection(1)
Figure 15. C&C Server Connectino(2)

 

 

3.6 악성 행위에 필요한 DLL 다운로드

C&C 서버와의 정상적인 연결이 이루어졌을 경우 악성행위에 필요한 DLL 파일을 다운로드한다. DLL 파일을 다운로드한 후 token: 문자열이 존재하지 않을 경우 프로그램은 종료된다.

Figure 16. Download DLL via C&C Server

 

dll_download 함수 내부는 아래와 같다. 해당 내용은 C&C 서버가 다운되어 실제로 확인하지는 못하였지만, 분석을 통해 대략적인 추측을 진행하였다. 우선, C&C 서버로부터 받은 Response 값에 libs 문자열이 존재하는지 확인한다.

Figure 17. libs String Check

 

이후 특정 변수에 .dll 문자열을 결합한다. 해당 특정 변수는 sqlite3, nss3로 추측된다.

Figure 18. .dll String Combine

 

DLL 파일을 생성하고 C&C 서버로부터 읽은 데이터를 DLL 파일에 기록하여 악성행위에 필요한 DLL 파일을 완성한다.

Figure 19. DLL File Creation

 

 

3.7 공유 폴더 경로 획득 및 경로 설정

탈취할 데이터가 존재하는 경로인 공유 폴더 경로를 획득한다.

Figure 20. SHGetFolderPath

 

nss3.dll 및 sqlite3.dll 파일을 공유폴더 뒤에 배치한 후 경로를 현재 경로로 변경한다.

Figure 21. Add a DLL to a shared folder path

 

이후, PATH 경로 내 환경변수 설정 값을 확인하고 C:\\Users\\사용자명\\AppData\\Locallow 경로를 환경변수로 설정한다.

Figure 22. Environment Path Setting

 

 

 

 

해당 루틴 이후 실제 정보 탈취 과정이 동작하게 되지만, 분량이 너무 길다고 생각하여 다음 포스팅에 이어서 하고자 한다💪💪