상세 컨텐츠

본문 제목

F5 BIG-IP의 원격코드 실행 취약점을 통해 유포되는 Gh0st RAT

악성코드 분석 리포트

by Hexer 2022. 6. 3. 12:17

본문

 

1. 개요

최근 F5 BIG-IP의 원격코드 실행 취약점(CVE-2022-1388)이 공개되면서, 공격자들은 대대적으로 이를 악용하기 시작했습니다. 아래 그림은 트위터에서 공유된 관련 취약점 공격 패킷 중 하나이며, 원격 실행된 명령을 통해 악성코드가 호스팅 된 IP 정보를 확인할 수가 있습니다.

[그림 1] F5 BIG-IP의 원격코드 실행 취약점(CVE-2022-1388) 공격 패킷 (출처 : https://twitter.com/1ZRR4H)

 

[그림 1]에서 확인된 IP(154.23.191[.]157:5896)에 접속해보면 패킷에서 확인되는 파일은 확인할 수 없었지만, 또 다른 악성코드가 호스팅 되어 있는 것을 발견할 수 있었습니다.

[그림 2] 악성코드 호스팅 사이트 (출처 : https://twitter.com/1ZRR4H)

 

분석 결과, 해당 악성코드(589.exe)는 원격제어 악성코드인 Gh0st RAT의 변종으로 확인되었습니다. Gh0st RAT는 인터넷에 오픈소스로 공개되어 있기 때문에 많은 공격자들이 사용하는 원격제어 악성코드 중 하나이며, 필요에 따라 커스텀 하여 사용하기도 하므로 변종도 다수 발견되고 있는 악성코드입니다. 본 보고서에서는 악성코드 호스팅 사이트에서 확보한 Gh0st RAT 샘플에 대한 분석을 진행하고, 분석 내용을 토대로 침해 시스템에서 확인할 수 있는 침해 지표에 대해 알아보도록 하겠습니다.

 

2. 분석 샘플 정보

수집된 악성코드 샘플 정보는 아래와 같습니다.

구분 내용
샘플명
589.exe
MD5 A824640862EA34979ABB4D80F2EE07B1
SHA1 529FBD21CF1EB8CDBD5CBC9C59C074CEBD8262ED
VirusTotal

[표 1] 분석 샘플 정보

 

 

3. 상세 분석

본 샘플은 내부에 DLL 형태의 PE를 인코딩하여 내장하고 있으며, 실행 시 XOR 연산을 통해 디코딩 후 이를 메모리에 로드하여 실행합니다. [그림 3]은 내장된 PE를 디코딩하는 루틴입니다. XOR Key는 초기 1Byte에 33(h), 이후 33 46 30 44 00 (h)이 Key 값으로 사용됩니다.

[그림 3] 내부 인코딩 된 PE를 디코딩하는 루틴

 

[그림 4] XOR Key

 


[그림 5] 디코딩 결과

 

 

디코딩 된 DLL은 메모리에 로드된 후, 현재 프로세스의 실행경로를 뮤텍스 명으로 사용하여 뮤텍스를 생성하며, 이를 통해 중복 실행을 방지합니다.

[그림 6] 뮤텍스 생성 및 중복 실행 방지

 

이후, 특정 레지스트리 값을 생성하여 시스템의 현재 시각을 기록합니다. 이는 감염 시스템에서 악성코드 실행시점 파악 용도로도 참조할 수 있을 것으로 판단됩니다.

레지스트리 키 : HKLM\SYSTEM\CurrentControlSet\services\BITS

레지스트리 값 : InstallTime

[그림 7] 레지스트리 값 생성

 

[그림 8] 생성된 레지스트리 값 확인

 

다음은 샘플에서 확인되는 설정 플래그입니다. 샘플 내 지속성 설정 플래그(Flag_Persistence)의 값을 확인하여 지속성 설정 여부를 결정하며, 지속성을 설정하는 방법은 서비스로 등록하는 방식(Flag_Service)과 시작프로그램으로 등록하는 방식(Flag_StartupProgram)으로 나뉩니다.

[그림 9] 샘플 내 설정 플래그

 

[그림 10] 설정 플래그 값에 따른 분기

 

[표 2]는 설정 플래그의 값에 따른 기능을 정리한 것입니다.

File Offset 설정값 설명
0x00030320
(Flag_Service)
1 윈도우 디렉토리로 원본 파일을 복사 후 서비스로 등록
0x00030324
(Flag_StartupProgram)
1 시작프로그램으로 등록. 원본 파일은 재부팅 시 삭제
0x00030328
(Flag_Persistence)
0 지속성 설정 ON

[표 2] 설정 데이터의 값에 따른 기능 설명

 

 

본 샘플은 [그림 9]에서 확인할 수 있듯이 지속성이 설정되어 있으며, 윈도우 디렉토리로 원본 파일을 복사한 뒤 이를 서비스로 등록함으로써 지속성을 확보합니다. [그림 11]은 윈도우 디렉토리로 원본 파일을 복사하는 루틴이며, 복사 시 파일명 포맷은 [a-z]{6}.exe 입니다. (랜덤한 알파벳 소문자 6자리)



[그림 11] 윈도우 디렉토리로 원본 파일을 복사

 

 

윈도우 디렉토리로 복사된 파일은 서비스로 등록되어 지속성을 확보하며, 감염 시스템에서는 [그림 12]와 같이 서비스가 생성된 것을 확인할 수 있습니다.

- 서비스 이름 : Abcdef Hijklmno Qrs

- 표시 이름 : Abcdef Hijklmno Qrstuvwx Abcd

- 실행 파일 경로 : %WINDIR%\[a-z]{6}.exe




[그림 12] 서비스 등록

 

 

서비스 등록이 완료되면, 현재 실행중인 악성코드가 위치한 드라이브의 루트 경로에 원본 파일 삭제를 위한 vbs파일을 생성하여 실행합니다. 생성되는 파일명 포맷은 [1-9]{1,}.vbs 입니다. (랜덤한 숫자.vbs)



[그림 13] 원본 파일 삭제를 위한 vbs 파일 생성 후 실행

 

 

[그림 14]는 감염 시스템에서 생성된 vbs 파일이며, 해당 vbs파일이 실행되면 원본 파일을 삭제한 뒤, 자가 삭제됩니다.

[그림 14] 드라이브 루트 경로에 생성된 vbs 파일

 

다음은 시작프로그램으로 등록하여 지속성을 확보하도록 설정되었을 경우에 동작하는 루틴입니다.  시작프로그램 경로를 알아온 뒤, 해당 경로로 원본 파일을 복사하고, 재부팅 시 원본 파일을 삭제합니다. 복사 시 파일명은 샘플 내 하드코딩 되어 존재하며, 아래와 같습니다.

- 파일명 : 1ec194dba44488ae6fd64c04eccc79f7.exe

[그림 15] 시작프로그램 등록 및 재부팅 시 원본 파일 삭제

 

감염 시스템에서는 시작프로그램 경로에 [그림 16]과 같은 파일이 생성된 것을 확인할 수 있겠습니다.

[그림 16] 시작프로그램 경로로 복사된 악성코드

 

지속성 설정이 완료되면, C2서버와 통신하기 위한 준비 과정을 수행합니다. 먼저, 내장하고 있는 인코딩 된 데이터를 Base64 및 자체 알고리즘을 통해 디코딩합니다.

[그림 17] 내장하고 있는 인코딩 된 데이터를 디코딩

 

디코딩 결과는 [그림 18]과 같으며, C2서버의 도메인을 확인할 수 있습니다.

인코딩 데이터 : bWaAZ25xZmYta2aFck8=

디코딩 결과 : nishabii[.]live (C2서버 도메인)

[그림 18] 디코딩 결과

 

위 디코딩 과정이 완료되면 C2서버로 접속을 시도하며, 정상적으로 연결 시 감염 시스템의 각종 정보들을 수집합니다.

[그림 19] 시스템 정보 수집

 

수집하는 정보에는 실행중인 보안 프로그램 목록에 대한 정보도 포함되어 있는 것을 알 수 있습니다. 감염 시스템에서 실행중인 프로세스의 이름을 [표 3]의 리스트와 비교하여 해당 프로세스가 실행 중인지 확인합니다.

360tray.exe
360sd.exe
a2guard.exe
ad-watch.exe
cleaner8.exe
vba32lder.exe
MongoosaGUI.exe
CorantiControlCenter32.exe
F-PROT.EXE
CMCTrayIcon.exe
K7TSecurity.exe
UnThreat.exe
CKSoftShiedAntivirus4.exe
AVWatchService.exe
ArcaTasksService.exe
iptray.exe
PSafeSysTray.exe
nspupsvc.exe
SpywareTerminatorShield.exe
BKavService.exe
MsMpEng.exe
Microsoft Security Essentials
SBAMSvc.exe
VIPRE
ccSvcHst.exe
QQ.exe
f-secure.exe
avp.exe
KvMonXP.exe
RavMonD.exe
Mcshield.exe
egui.exe
NOD32
kxetray.exe
knsdtray.exe
TMBMSRV.exe
avcenter.exe
ashDisp.exe
rtvscan.exe
ksafe.exe
QQPCRTP.exe
Miner.exe
AYAgent.aye
patray.exe
V3Svc.exe
avgwdsvc.exe
ccSetMgr.exe
QUHLPSVC.EXE
mssecess.exe
SavProgress.exe
fsavgui.exe
vsserv.exe
remupd.exe
FortiTray.exe
safedog.exe
parmor.exe
beikesan.exe
KSWebShield.exe
TrojanHunter.exe
GG.exe
adam.exe
AST.exe
ananwidget.exe
AVK.exe
GData
ccapp.exe
Symantec Norton
avg.exe
AVG Anti-Virus
spidernt.exe
Dr.web
Mcshield.exe
Mcafee
avgaurd.exe
Avira Antivir
F-PROT.exe
F-Prot AntiVirus
vsmon.exe
ZoneAlarm
avp.exe
Kaspersky
cpf.exe
Comodo
outpost.exe
Outpost Firewall
rfwmain.exe
kpfwtray.exe
FYFireWall.exe
MPMon.exe
pfw.exe
S.exe
1433.exe
DUB.exe
ServUDaemon.exe
BaiduSdSvc.exe

[표 3] 실행중인 보안 프로그램 확인 목록

 

 

다음은 최종적으로 정보 수집이 완료되었을 때의 수집 결과를 메모리에서 확인한 것입니다.

이는 추후 암호화 과정을 거쳐 C2서버로 전송됩니다.

[ 그림 20] 감염 시스템 정보 수집 결과 (암호화 전)

 

[그림 20]의 0x001852AC 주소를 기점으로 각 오프셋별 수집된 정보를 정리하면 [표4]와 같습니다.

Offset Size(Byte) 수집 정보
0x0004 0x9C 윈도우 버전
0x00A0 0x04 CPU 클럭 속도
0x00A4 0x04 CPU 개수
0x00B8 0x04 물리 메모리 크기 (MB)
0x00BC 0x04 IP
0x00C0 0x30 호스트 이름
0x00F4 0x04 네트워크 인터페이스 속도
0x0138 - 실행중인 보안 프로그램 목록

[표 4] 감염 시스템 정보 수집 목록

 

 

C2서버로 감염 시스템의 수집 정보 전송이 완료되면, C2서버로부터 추가 명령을 수신하여 다양한 악성행위를 수행할 수 있습니다. 명령에 따른 주요 기능을 몇가지 정리하면 다음과 같습니다.

 

 

1) 화면 캡쳐

감염 시스템의 화면을 캡쳐 하는 기능입니다.



[그림 21] 화면 캡쳐

 

 

2) 키로깅

감염 시스템의 키 입력을 모니터링하여 키로깅을 수행합니다.

[그림 22] 키로깅

 

키로깅 데이터는 XOR 인코딩(Key : 0x62)을 거쳐 시스템 디렉토리 내에 “urlg.dat” 파일에 기록됩니다. 이는 감염 시스템에서 키로깅이 수행되었을 경우의 침해지표로 활용될 수 있겠습니다.

※ 키로깅 파일 경로 : C:\Windows\System32\urlg.dat

[그림 23] 키로깅 데이터를 파일에 기록

 

3) Remote Shell

파이프를 통해 Remote Shell 기능을 구현합니다. 공격자는 원격지에서 cmd 명령을 수행할 수 있습니다.

[그림 24] Remote Shell

 

4) 파일 다운로드 및 실행

추가 파일을 다운로드하고 실행하는 기능입니다.

[그림 25] 파일 다운로드 및 실행

 

5) 자가 삭제

감염 시스템에 설치된 악성코드를 자가 삭제하는 기능입니다. 지속성을 위해 등록된 서비스와 시작프로그램 파일도 삭제되며, 현재 동작하고 있는 악성 프로세스도 종료됩니다. 악성 파일은 재부팅 시 삭제됩니다.

[그림 26] 자가 삭제

 

6) 이벤트 로그 삭제

다음은 윈도우 이벤트 로그(“Application”, “Security”, “System” )를 삭제하는 기능입니다.

[그림 27] 이벤트 로그 삭제

 

4. IOC

분석을 통해 확인된 IOC 정보를 정리하면 다음과 같습니다. 아래와 같은 사항들이 확인되는 시스템이 있다면 Gh0st RAT 변종 악성코드 감염을 의심해볼 필요가 있을 것으로 판단됩니다.

 

1)    File

File Name 설명
%WINDIR%\[a-z]{6}.exe 원본 악성코드 복사본
(지속성을 위해 서비스로 등록되는 파일)
C:\[1-9]{1,}.vbs 원본 악성코드 자가 삭제를 위한 스크립트
C:\Windows\System32\urlg.dat (64bit)
C:\Windows\SysWOW64\urlg.dat (32bit)
키로깅 데이터가 인코딩되어 저장된 파일
%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\1ec194dba44488ae6fd64c04eccc79f7.exe 원본 악성코드 복사본
(지속성을 위한 시작프로그램 등록)

 

2) SHA1

SHA1 설명
529FBD21CF1EB8CDBD5CBC9C59C074CEBD8262ED
Gh0st RAT 변종 악성코드
5667ED6AB06BFD66827FB939CE488436765F10DC 원본 악성코드 자가 삭제를 위한 스크립트

 

3) Service Name

Service Name 설명
Abcdef Hijklmno Qrs 지속성을 위해 등록된 서비스

 

4) Registry

Registry 설명
Key : HKLM\SYSTEM\CurrentControlSet\services\BITS
Value : InstallTime
악성코드 실행 시간 기록

 

5) C2 Server

C2 Server 설명
nishabii[.]live C2 Server

 

 

 

보안관제센터 MIR Team

관련글 더보기

댓글 영역