壓倒
Ye0L
壓倒
Total
Home
Today
  • ByO (59)
    • 악성코드분석🍳 (10)
      • Android (2)
      • Windows (8)
    • 백준⌨ (1)
    • 개발💻 (14)
      • Python (14)
      • C (0)
    • AI (2)
      • ML (2)
      • DL (0)
    • Dreamhack (23)
      • Web hacking (20)
      • Reversing (3)
    • CTF (5)
      • Forensic (5)
    • Study (4)
      • Linux (2)
      • Web (2)

블로그 메뉴

  • 홈
  • 방명록
  • 깃허브😀
  • 티스토리 홈

공지사항

인기 글

태그

  • [DigitalForensic]with CTF
  • ClientSide: XSS
  • CSRF
  • 크롤링
  • 리버싱
  • PYTHON
  • Raccoon Stealer v2
  • Background:Web Browser
  • Background: Cookie & Session
  • APK 구조
  • web hacking
  • reversing
  • File Download Vulnerability
  • Raccoon Stealer
  • 드림핵
  • forensic
  • dreamhack
  • 악성코드분석
  • selenium
  • Crawling

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
壓倒

Ye0L

악성코드분석🍳/Windows

Raccoon Stealer v2(2.0) 악성코드 분석(1)

2022. 12. 27. 10:25

Raccoon Stealer 2.0(v2)


[그림 1] Raccoon Stealer v2(출처 : The Hacker News)

1. 개요


Raccoon Stear v1 은 2019년 4월 경 언더그라운드 포럼에서 서비스형 멀웨어(MaaS, Malware-as-a-Service)로 판매되며 발견된 악성코드이다. 2019년 이후 꾸준하게 등장하였으나 2022년 7월 Racoon Stealer v2 변종이 발견되었다. 해당 변종은 C++ → C 로 작성되었다.

2. 샘플 및 분석 환경 정보


악성코드명Raccoon Stealer v2(2.0)
해시값(MD5)a5925dd8ecea442fb8f46fd9447f6c87
Time Stamp2022/07/01 09:57:11 UTC
분석 환경Windows10 64bits
IDA 버전7.6
디버거x64 dbg

3. 상세 분석


○ 도식도

도식도

○ 함수명 및 Dll 동적 로드

위해 악성 행위에 필요한 DLL, String, 함수명을 동적으로 로드한다

동적 로드

○ Base64, RC4 알고리즘을 사용한 문자열 복호화(키 값 확인)

Base64을 통해 1차 디코딩을 진행하고 이후 RC4알고리즘을 사용하여 문자열 복호화를 진행한다. RC4 알고리즘에 사용되는 복호화 키 값은 c4376f037b1703b305ca5fb81f6ffc21로 하드코딩되어있다.

RC4 알고리즘 중 일부
Base64 알고리즘

여러 문자열들이 복호화 루틴을 통해 도출되며 C2서버 또한 해당 루틴을 통해 복호화된다.

💡
C2 서버 목록
복호화 전복호화 후
dP0JHyu7K2VGp4wRRmzPQR8SwCU=http://5.252.23.112/
dP0JHyu7K2Rdu4gWW3DOXB4NxyU=http://45.153.230.5/

○ 뮤텍스 생성

CCOYS///hdr 이름으로 된 뮤텍스를 생성한다.

💡
뮤텍스 생성 코드
💡
뮤텍스 생성하는 이유 일반적으로 특정 PC가 해당 악성코드에 감염되어 현재 실행 중인 상태라면 굳이 악성코드를 중복으로 실행할 필요가 없다. 이렇게 중복으로 실행되는 것을 방지하기 위해 뮤텍스를 생성한다.

○ 프로세스 목록 탐색

현재 권한이 관리자 권한인지 확인하여 관리자 권한일 경우 프로세스 목록을 획득한다.

프로세스 목록 획득 루틴

관리자 권한 확인 방식은 다음과 같이 동작한다.

현재 프로세스에 대한 토큰을 통해 권한 상승 형태에 대한 정보를 획득한 후 SID 값을 비교한다.

SID 값 비교

System(S-1-5-18) 과 SID 값이 동일할 경우 리턴값이 1이되어 프로세스 목록 검색 루틴이 동작하게 된다.

프로세스 목록 검색

○ C&C 서버 접속 시 같이 전송하는 Content-Type, MachineID, configID 획득

서버 접속 시 사용할 Contetnt-Type 값을 로드하는 과정이다. 해당 과정은 별도의 복호화 루틴이 존재하지 않고 하드코딩되어있다.

User-agent 로드 코드

“HKLM\\SOFTWARE\\Microsoft\\Cryptograpy” 레지스트리 키를 검사한 후 하드웨어 ID 값을 얻는다.

레지스트리를 통한 하드웨어 ID 값 획득 코드

○ C&C 서버 접속

이전에 복호화하였던 2개의 C&C 서버를 인자로 하여 연결을 시도한다.

C&C 서버 접속 코드(1)
C&C 서버 접속 코드(2)

○ 공유 폴더 경로 획득

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

공유 폴더 경로 획득 코드

○ 인터넷 연결이 성공적으로 이루어질 시 악성 행위에 필요한 Dll 파일 다운

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

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

dll_download 함수 내부는 다음과 같다.(해당 내용은 C&C 서버가 다운되어 실제 확인하지는 못하였지만 코드 분석을 통해 대략적인 추측을 진행할 수 있었다.)

C&C 서버로부터 읽은 값에 Libs 문자열이 존재하는지 확인한다.

Libs 문자열 검사

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

.dll 문자열 추가 및 file_create_write() 함

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

DLL 파일 생성 및 데이터 기록

○ 2개의 .dll 파일 경로 추가 및 공유폴더를 현재 경로로 변경

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

공유 폴더 경로에 Dll 경로 추가

○ 환경변수 재설정

PATH 경로 내 환경변수 설정 값을 검색하고 C:\\Users\\사용자명\\AppData\\Locallow 경로를 환경 변수로 설정한다.

환경변수 재설정

이후 루틴은 다음 포스팅에 남겨놓겠습니다❗

오류, 잘못된 점 또는 궁금한 점이 있으시다면 댓글 남겨주세요❗


Uploaded by N2T

'악성코드분석🍳 > Windows' 카테고리의 다른 글

Raccoon Stealer v2(2.0) 악성코드 분석(2)  (0) 2022.12.27
x64 dbg 설치 및 플러그인 적용(악성코드분석, 리버싱)  (1) 2022.12.20
악성코드 분석을 위한 사이트  (1) 2022.11.18
VMware(Windows 10 - 64bits) 악성 코드 분석 환경 구축(3)  (0) 2022.10.12
VMware(Windows 10 - 64bits) 악성 코드 분석 환경 구축(2)  (0) 2022.10.11
    '악성코드분석🍳/Windows' 카테고리의 다른 글
    • Raccoon Stealer v2(2.0) 악성코드 분석(2)
    • x64 dbg 설치 및 플러그인 적용(악성코드분석, 리버싱)
    • 악성코드 분석을 위한 사이트
    • VMware(Windows 10 - 64bits) 악성 코드 분석 환경 구축(3)
    壓倒
    壓倒
    악성코드 분석, 개발, 백준 등 나의 일지

    티스토리툴바