리눅스 대상 공격에 사용되는 Nood RAT 악성코드 분석 (Gh0st RAT 변종)

리눅스 대상 공격에 사용되는 Nood RAT 악성코드 분석 (Gh0st RAT 변종)

AhnLab SEcurity intelligence Center(ASEC)에서는 최근 리눅스 버전의 Gh0st RAT 변종 악성코드인 Nood RAT이 공격에서 사용되고 있는 것을 확인하였다. 비록 윈도우 버전의 Gh0st RAT과 비교하면 적은 수량이긴 하지만 리눅스 버전의 Gh0st RAT 또한 지속적으로 수집되고 있다. Nood RAT은 과거 코드의 유사성을 기반으로 Gh0st RAT 변종으로 분류되었다. [1] 해당 악성코드는 최근 제작에 사용되는 빌더가 확인되었으며 제작자가 Nood라는 이름을 사용하였기 때문에 여기에서는 Nood RAT으로 분류한다.

Nood RAT은 2018년 경부터 다양한 취약점 공격 과정에서 사용되어 왔다. 비록 최근에는 구체적인 공격 사례는 확인되지 않지만 VirusTotal 기준 지속적으로 수집되고 있다. 여기에서는 최근 수년간 확인된 악성코드들을 정리하고 빌더와 함께 분석한다.

 

1. 개요

Gh0st RAT은 중국의 C. Rufus Security Team에서 개발한 원격 제어 악성코드이다. [2] 소스 코드가 공개되어 있기 때문에 악성코드 개발자들이 이를 참고하여 다양한 변종들을 개발하고 있으며 최근까지도 지속적으로 공격에 사용되고 있다. 비록 소스 코드가 공개되어 있지만 중국어를 사용하는 공격자들이 주로 사용하는 것이 특징이다.

ASEC에서는 과거 Gh0st RAT의 변종인 Gh0stCringe RAT 악성코드가 데이터베이스 서버(MS-SQL, MySQL 서버)를 대상으로 이 유포된 사례를 공개한 바 있으며, [3] 이후에도 Hidden 루트킷을 함께 설치하는 Gh0st RAT 변종인 HiddenGh0st가 부적절하게 관리되고 있는 MS-SQL 서버를 대상으로 한 공격에 사용되었던 사례를 다루었다. [4]

소스 코드가 공개되어 있어서 이미 다양한 리눅스 버전이 존재할 수도 있지만 여기에서 다루는 유형인 Nood RAT은 2018년경에 최초로 확인되었다. 가장 오래된 기록은 WebLogic 취약점(CVE-2017-10271) 공격을 통해 설치된 사례이며 [5] 이후 코인 마이너를 설치하는 Rocke 공격자가 공격에 함께 사용한 사례가 있다. [6] 2020년에는 Cloud Snooper APT 공격 캠페인에서도 사용된 이력이 확인되는데 공격자는 아마존 사의 클라우드 서비스인 AWS 내의 서버를 대상으로 백도어 악성코드를 설치하여 제어를 탈취하였다. [7]

 

2. Gh0st RAT 리눅스 버전 분석

Nood RAT은 다음과 같은 빌더를 통해 제작된다. 압축 파일 내부에는 릴리즈 노트와 빌더 프로그램인 “NoodMaker.exe” 그리고 백도어를 제어하는 데 사용하는 “Nood.exe”가 존재한다. NoodMaker는 제작 시 아키텍처 별로 x86 및 x64 바이너리를 생성하며 공격 대상 시스템에 맞는 바이너리를 선택해 사용할 수 있다.

Figure 1. Nood RAT 빌더 (리눅스 버전의 Gh0st RAT)

Nood RAT은 정상 프로그램으로 위장하기 위해 자신의 이름을 변경하는 기능이 존재한다. 위장할 프로세스의 이름은 악성코드 제작 과정에서 선택할 수 있다. 처음 실행되면 RC4 알고리즘을 이용해 암호화된 데이터를 복호화하는데 해당 과정을 통해 복호화된 문자열이 변경할 프로세스의 이름이다. 이외에도 설정 데이터도 동일하게 RC4 알고리즘으로 암호화되어 있으며 복호화에 사용되는 RC4 키는 “r0st@#$” 문자열이다. 참고로 Socks 프록시 및 포트 포워딩 통신에서는 “VMware#@!Station” 문자열이 대신 사용된다.

Figure 2. 프로세스 이름 위장 기능

프로세스 이름 변경 이후에는 자신을 “/tmp/CCCCCCCC” 경로에 복사하고 실행하며 여기까지의 과정이 끝나면 복사한 파일 즉 “/tmp/CCCCCCCC”를 삭제한다. 이에 따라 현재 실행 중인 악성코드는 “/tmp/CCCCCCCC” 파일이 실행된 형태이지만 파일이 존재하지 않게 되며 악성코드의 프로세스 이름도 위장한 정상 프로세스로 보이게 된다.

Figure 3. 변경된 프로세스 이름

이후 설정 데이터를 복호화하는데 설정 데이터는 크게 C&C 서버 주소들과 활성화 날짜 및 시간 그리고 C&C 연결 시도 간격으로 나누어진다. C&C 서버와 통신하면서 명령을 전달받을 수 있는 활성화 날짜는 요일별로 정할 수 있으며 활성화 시간 또한 지정 가능하다.

  • 설정 데이터 형식 : “C&C_Server_1″;”C&C_Server_2″|”Mon”;”Tue”;”Wed”;”Thu”;”Fri”;”Sat”;”Sun”;|”Time”;|”Interval”

Figure 4. 빌더 및 설정 데이터

Gh0st RAT은 처음 C&C 서버에 연결 시 감염 시스템에 대한 기본적인 정보들을 획득하여 전송한다. 전송하는 데이터는 RC4 알고리즘으로 암호화하며 암호화에 사용된 키도 현재 시간을 기준으로 생성하기 때문에 네트워크 패킷 기반의 탐지를 우회할 수 있다.

Offset Size Data
0x0000 0x0018 “Key Type 2” (Key Type 1로 암호화)
0x0018 0x0004 “Key Type 1”
0x001C 0x0208 감염 시스템 정보 (Key Type 2로 암호화)

Table 1. C&C 서버에 전달하는 데이터

C&C 서버에 전달하는 처음 0x18 크기의 데이터는 다음과 같은 형태로서 하드코딩된 4바이트 값 2개와 현재 시간을 기준으로 생성한 4바이트 값 4개로 이루어져 있다. 이 값은 RC4 알고리즘으로 암호화되어 C&C 서버에 전달되는데 이를 암호화하는데 사용하는 키는 “Key Type 1”로 이름 붙인 키를 활용하여 제작한다.

Offset Size Data
0x00 0x04 생성한 4바이트 키 #1
0x04 0x04 생성한 4바이트 키 #2
0x08 0x04 생성한 4바이트 키 #3
0x0C 0x04 0x00009F72
0x10 0x04 생성한 4바이트 키 #4
0x14 0x04 0x000002E9

Table 2. 암호화된 키 데이터

C&C 서버에서는 “Key Type 1”을 이용해 RC4 키를 제작하여 “Key Type 2”를 복호화할 수 있으며 복호화된 “Key Type 2”를 이용해 제작한 RC4 키로 0x0208 크기의 데이터를 복호화해 최종적으로 감염 시스템 정보를 구할 수 있다.

Offset Type Data
0x0000 String 로그인 배너 문자열 (“/etc/issue.net” 또는 “/etc/issue” 파일의 내용)
0x0100 Flag 로그인 배너 문자열 정보 획득 여부 (0x01 / 0x00)
0x0101 Flag 아키텍처. “/proc/version”에서 x86_64 키워드 존재 여부 (0x01 / 0x00)
0x0102 String 호스트 이름
0x0202 Flag 호스트 이름 획득 여부 (0x01 / 0x00)
0x0203 Hex IP 주소의 16진수 값
0x0207 Flag IP 주소 획득 여부 (0x01 / 0x00)

Table 3. C&C 서버에 전송하는 감염 시스템 정보

Figure 5. C&C 패널에서 보여지는 감염 시스템 정보

Nood RAT은 크게 4가지 기능을 지원하는데 원격 쉘 및 파일 관리, Socks 프록시, 포트 포워딩 기능이 그것이다. 이를 통해 공격자는 감염 시스템에서 악의적인 명령을 실행하거나 파일 업로드 및 다운로드 기능을 이용해 정보를 탈취할 수 있다. 또한 감염 시스템을 프록시로 사용하거나 포트 포워딩 기능을 통해 측면 이동 과정에서 해당 시스템을 활용할 수도 있다.

Figure 6. Nood RAT이 지원하는 명령들

 

3. 공격 사례

Nood RAT을 사용한 공격 사례는 과거 WebLogic 취약점 공격 사례와 Cloud Snooper APT 공격 사례가 있었다. 이후 최근까지도 Nood RAT 악성코드가 지속적으로 수집되고 있으며 VirusTotal에서도 업로드되고 있다. 비록 구체적인 공격 방식은 확인되지 않지만 다양한 공격자들이 감염 시스템을 제어하고 정보를 탈취하기 위한 목적으로 사용하고 있는 것으로 추정된다. 다음은 최근 수년간 확인된 Nood RAT을 분류한 표이다.

수집일 국가 이름 위장 프로세스 설정 데이터
240130 KR AliDunYun /usr/bin/ssh 43.156.118[.]72:443;43.156.118.72:443;|
1;1;1;1;1;1;1;|00-24;|1
240116 HK pki.rar /usr/bin/ssh b.niupilao[.]vip:80;|1;1;1;1;1;1;1;|00-24;|1
231028 PH x.uu [kworker/0:0] update.kworker[.]net:443;check.snapupdate[.]org:80;|
1;1;1;1;1;1;1;|00-24;|1
231027 CN nginx /usr/bin/ssh 42.51.40[.]184:56;|1;1;1;1;1;1;1;|00-24;|1
230907 RU MFWzS4YNXpQd [kworker/2:0] 13.214.222[.]35:443;|1;1;1;1;1;1;1;|00-24;|1
221013 HK hsperf kworker cloud.awsxtd[.]com:443;|1;1;1;1;1;1;1;|00-24;|3
220911 RU adyagent /usr/bin/ssh 43.140.251[.]218:8080;|1;1;1;1;1;1;1;|00-24;|1
220726 CN update /usr/bin/ssh 101.42.139[.]110:8443;101.42.139[.]110:53;|
1;1;1;1;1;1;1;|00-24;|1
220113 CN update /usr/bin/ssh 81.68.143[.]132:1234;81.68.143[.]132:8080;|
1;1;1;1;1;1;1;|00-24;|1
211213 VN bo /usr/bin/ssh bo.appleupcheck[.]com:443;
|1;1;1;1;1;1;1;|00-24;|1
210921 PK N/A /usr/sbin/xfs_srv 194.36.191[.]75:443;|1;1;1;1;1;1;1;|00-24;|1
210601 CN titan.bin /usr/bin/ssh 1.117.165[.]141:53;1.117.165[.]141:53;|
1;1;1;1;1;1;1;|00-24;|1
210403 CN N/A /sbin/auditd 23.100.88[.]61:53;|1;1;1;1;1;1;1;|00-24;|10

Table 4. Nood RAT 악성코드

 

4. 결론

Gh0st RAT은 윈도우 시스템을 대상으로 활발하게 사용되고 있는 악성코드이지만 공개된 소스 코드를 기반으로 제작된 리눅스 버전의 Gh0st RAT 또한 다양한 공격자들에 의해 지속적으로 사용되어 왔다. Gh0st RAT 변종 중 제작자가 Nood라는 이름을 붙인 리눅스 버전의 악성코드는 최근까지도 다양한 국가들에서 수집되고 있다.

Nood RAT은 C&C 서버로부터 명령을 받아 악성 파일 다운로드, 시스템 내부 파일 탈취, 명령 실행과 같은 기능을 수행할 수 있는 백도어 악성코드이다. 간단한 형태이지만 네트워크 패킷 탐지를 우회하기 위해 암호화를 사용하며 공격자의 명령을 받아 다양한 악성 행위를 수행할 수 있다.

이와 같은 보안 위협을 방지하기 위해서는 취약한 환경 설정이나 인증 정보를 검사하고, 관련 시스템들을 항상 최신 버전으로 업데이트하여 공격으로부터 보호해야 한다. 또한 V3를 최신 버전으로 업데이트하여 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다.

 

파일 진단
– Linux/Agent.86208 (2029.01.08.00)
– Backdoor/Linux.Rekoobe.86144 (2022.06.15.00)
– Backdoor/Linux.Rekoobe.86176 (2022.06.15.00)
– Backdoor/Linux.Rekoobe.83264 (2022.06.15.00)

MD5

035f83018cf96f5e1f6817ccd39fc0b6
0a35e06f53c17ab1c8e18e7e0c0821d8
35743db3dc333245ef5b69100721ced9
4f3afdcfff8f7994b7d3d3fbaa6858b4
75838e5d481da40db2e235a6d5a222ef
URL

http[:]//1[.]117[.]165[.]141[:]53/
http[:]//101[.]42[.]139[.]110[:]53/
http[:]//101[.]42[.]139[.]110[:]8443/
http[:]//23[.]100[.]88[.]61[:]53/
http[:]//42[.]51[.]40[.]184[:]56/

AhnLab TIP를 구독하시면 연관 IOC 및 상세 분석 정보를 추가적으로 확인하실 수 있습니다. 자세한 내용은 아래 배너를 클릭하여 확인해보세요.