1. 개요

- CISCO Talos에서 대한민국 사용자를 대상으로한 중국 배후 RAT "SugarGh0st RAT" 발견 [1]

> Gh0st RAT의 변종으로, C2 서버와 통신하며 명령을 수행

> 대한민국 사용자외에도 우즈베키스탄 외교부를 대상으로 공격 수행

 

1.1 Gh0st RAT [2]

- 红狼小组(C.Rufus Security Team)이라는 중국 그룹에 의해 개발

- 2008년 소스코드가 공개되어 여러 변종이 등장

 

2. SugarGh0st RAT

- 기존 Gh0st RAT과 차이점

① 정교한 표적 공격

② 특정 ODBC(Open Database Connectivity) 레지스트리 키를 찾음
③ 특정 파일 확장자와 함수 이름을 가진 라이브러리 파일을 로드
④ 원격 관리 작업을 용이하게 하기위한 C2 통신 프로토콜 변경 등

 

- 하드 코딩된 C2 도메인을 사용하며, 대상자에 뮤텍스를 생성하고 키로깅을 시작

> 키로깅은 %Program Files% 위치에 "WinRAR'' 폴더 생성 및 키로거 파일 "WinLog.txt" 생성

> WSAStartup() 함수를 이용해 하드코딩된 C2&Port로 연결을 설정

> 실행 후 10초마다 C2에 대한 연결 설정을 시도하며, 첫 패킷은 항상 "0x000011A40100"

> 컴퓨터 이름, OS 버전, 루트 및 기타 드라이브 정보, 특정 레지스트리 값 등을 전송

> 4바이트 16진수 명령 및 관련 데이터를 사용하여 C2 서버의 명령에 따라 원격 제어 기능을 수행

순번 명령 설명
1 0x20000001 프로세스 권한을 "SeShutdownPrivilege"로 조정하고 호스트 강제 종료
2 0x20000002 프로세스 권한을 "SeShutdownPrivilege"로 조정하고 호스트 강제 재부팅
3 0x20000003 프로세스 권한을 "SeShutdownPrivilege"로 조정하고 프로세스 강제 종료
4 0x20000004 이벤트 로그 지우기
5 0x20000005 레지스터 키 HKEY_LOCAL_MACHINE\Software\ODBC\H 생성
6 0x20000011 기본 창에서 키 누르기
7 0x20000012 기본 창에서 키 놓기
8 0x20000013 마우스 커서 위치 설정
9 0x20000014 마우스 왼쪽 버튼 클릭
10 0x20000015 마우스 왼쪽 버튼 놓기
11 0x20000016 마우스 왼쪽 버튼을 더블클릭
12 0x20000017 마우스 오른쪽 버튼 클릭
13 0x20000018 마우스 오른쪽 버튼 놓기
14 0x20000019 마우스 왼쪽 버튼을 더블클릭
15 0x21000002 피해자 컴퓨터의 논리 드라이브 정보 전송
16 0x21000003 피해자 컴퓨터 파일 시스템에서 파일 검색
17 0x21000004 피해자의 컴퓨터 파일 시스템에서 파일 삭제
18 0x21000005 파일을 %TEMP% 위치로 이동
19 0x21000006 임의의 쉘 명령을 실행
20 0x21000007 피해자 컴퓨터에 파일을 복사
21 0x21000008 피해자 컴퓨터에서 파일 이동
22 0x21000009 C2 서버로 파일 전송
23 0x2100000A 데이터를 Windows 소켓으로 전송
24 0x2100000B C2 서버로부터 파일 수신
25 0x22000001 스크린샷을 C2 서버로 전송
26 0x24000001 %ProgramFiles%/WinRAR/~temp.dat 파일 읽기(XOR 0x62로 인코딩됨)
27 0x24000002 %ProgramFiles%/WinRAR/~temp.dat 파일 삭제
28 0x23000000 C2 서버에 대한 역방향 셸 액세스를 제공
29 0x25000000 프로세스 정보를 얻고 프로세스를 종료
30 0x25000001 프로세스 정보 열거
31 0x25000002 프로세스 종료
32 0x25000003 피해자 기계 서비스 관리자에 액세스 
33 0x25000004 실행 중인 서비스의 구성 파일에 액세스
34 0x25000005 서비스 시작
35 0x25000006 서비스 종료 및 삭제
36 0x25000010 Windows 작업을 수행
37 0x25000011 창 목록 가져오기
38 0x25000012 Window에서 메시지 받기
39 0x28000000 창을 캡처하고 SendMessage API를 사용한 명령을 기반으로 일련의 창 작업 수행
40 0x28000002 "%PROGRAMFILES%\\Common Files\\DESIGNER'' 아래에 OLE 파일을 만들고 실행

 

2.1 첫 번째 공격 체인 

[사진 1] 첫 번째 공격 체인

 

① 악성 LNK 파일이 포함된 RAR 파일

② LNK 파일 실행 시 내장된 JavaScript 실행

> 드로퍼의 시작 부분인 "var onm=" 문자열 검색 후 %temp%에 로드

> LoLBin(living-off-the-land Binaries)를 사용해 JavaScript 실행 [3]

 

[사진 2] LNK 파일 내 포함된 JavaScript

 

③ JavaScript는 미끼용 문서, 암호화된 SugarGh0st 페이로드, DLL 로더 및 배치 스크립트 생성

> 드로퍼로 동작하며, 포함된 파일을 디코딩하여 %TEMP% 경로에 생성

> 미끼용 문서 오픈, %TEMP%에서 배치 스크립트 로더 실행, DLL 로더 실행 순

> 동작 완료 후 자체적으로 삭제

 

④ 배치 스크립트와 DLL 로더를 실행해 암호화된 SugarGh0st 페이로드를 해독해 실행

> "ctfmon.bat"는 DLL 로더를 실행하는 명령이 포함

> "MSADOCG.DLL"은 %TEMP%에서 암호화된 SugarGh0st 페이로드 파일 "DPLAY.LIB'' 복호화 및 메모리에서 SugarGh0st 실행

 

2.2 두 번째 공격 체인 

[사진 3] 두 번째 공격 체인

 

- JavaScript는 쉘코드를 실행하기 위해 DynamicWrapperX를 사용하며, 이후 SugarGh0st RAT를 실행

> 이외 나머지 과정은 첫 번째 공격 체인과 동일

> DynamicWrapperX는 스크립트(JScript, VBScript 등)에서 Windows API 함수 호출을 활성화하는 ActiveX 구성 요소 [4]

> 지속성을 위해 Run 레지스트리 키에 "CTFMON.exe"라는 레지스트리 하위 키를 생성

구분 설명
JavaScript 지속성  레지스트리 키 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
하위 키 CTFMON.exe
“cmd /c start C:\Users\user\AppData\Local\Temp\dllhost.exe C:\Users\user\AppData\Local\Temp\~204158968.js”
DynamicWrapperX 레지스트리 키 Software\Classes\DynamicWrapperX
하위 키 CLSID
"89565275-A714-4a43-912E-978B935EDCCC" 

 

3. 침해지표 [5]

구분
URL account[.]drive-google-com[.]tk
login[.]drive-google-com[.]tk
IP 103.148.245.235
103.108.67.191
파일 Hash 8584094f79fce97321ee82ca5da41b6830ecc6a0921bcaddb8dd337827cd7d1a
3436135bb3839521e7712882f0f6548aff78db66a1064408c49f820a0b85d980
c758eed6660786097b63ac6748236b5b6084783703ea7ee2111e8f0bcaa3652e
6dff111b6adc9e33bed20eae99bec779f1c29dd55895a71125cfbe3c90950eb2
7c87451261dfce64fda987eb395694b5330fd958466c46c931440cd9dc227505
ddac61f918ed87b49ef15d05873e7f52b919758aef713145f6a7d538c714fa2e
f3ea4611c72d57eabf381d5639c3c8d1840cb005ed811f3038410fb2e04978c1
9d9a0af09fc9065bacabf1a193cad4386b5e8e5101639e07efa82992b723f3b0
5ad182c913f0b5cb6a34126137c335110d4c9472f5c745cb7a438d108b03b27c
38c815729f34aef6af531edf3f0c3f09635686dbe7e5db5cb97eca5b2b5b7712
adb4eb33213fa81c8b6cc013a6f4a43fa8b70eb8027433cf4339b532cb6e84cf
2e543adb701afd40affcb4c51bd8246398b0210bee641ca9aeffcca893c9e4a5
7cacdc84a0d690564c8471a4f58ab192ef7d9091ab0809933f616010bbf6846a
66982ebd5ebb75633723c7057a1e948ac3aafe3ff808397eb0c55c853c82f9e6
21f19d87d2169c82efd76ddb1baa024a1e59b93f82d28f276de853fc3ef8b20e
362fde3362e307af3787b9bf0b5c71f87b659a3217e054c4d0acea8b9e6d74b0
ee5982a71268c84a5c062095ce135780b8c2ffb1f266c2799173fb0f7bfdd33e
9783c0eee31ce6c5f795ecf387025af5d55208ff2713c470af2042721ab38606
410d7dc973d188cd0d962a59f48deb1cfc73adf37857765e90194f6e878d4488
bd0a1efe07fcb4af4bec1b2881a0711f0be34044680ad8cff958a68a70d4a914
ff0f28f96bbb6c80fc3823fe71d5e07e1a05b06986e82a2fbe324d68ba5ab2ea

 

 

4. 참고

[1] https://blog.talosintelligence.com/new-sugargh0st-rat/
[2] https://github.com/sin5678/gh0st
[3] https://socprime.com/blog/what-are-lolbins/
[4] https://dynwrapx.script-coding.com/dwx/pages/dynwrapx.php?lang=en
[5] https://github.com/Cisco-Talos/IOCs/blob/main/2023/11/new-sugargh0st-rat.txt
[6] https://www.dailysecu.com/news/articleView.html?idxno=151748

+ Recent posts