보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

원격 접속 도구(RAT)의 두 얼굴

2022.03.02

41,600






01. 원격 접속 도구의 양면성

COVID-19 발생 이후 전염병 확산을 방지하기 위해 근무 형태가 다양화되면서 개인이나 기업 등 다양한 산업 분야에서 원격 접속프로그램 사용이 활발해지고 있다. 2020년 6월 하나은행 해킹으로 대량의 개인 및 금융정보 수집에 Gh0st RAT 악성코드가 사용되었으며, 2020년 미국 CISA에서 발표한 ‘Malware Analysis Report (AR20-232A)’에 따르면 북한추정 공격그룹인 히든코브라(HIDDEN COBRA)에서 방위산업업체를 공격하기 위해 원격접속 악성코드인 블라인딩캔(BLINDINGCAN)을 제작해 유포하는 등 원격접속 프로그램을 통한 공격사례라 급증하고 있다.정보보안 업체 Positive Technologies의 분석 결과에 따르면 기업을 대상으로 한 RAT 공격 시도가 2021년 2분기 17%에서 2021년 3분기 36%로 급상승한 것으로 확인되었다. 그렇다면 RAT는 어떤 기능들을 가지고 있는 프로그램이길래 이처럼 다양한 해킹사고에서 사용되고 있는 것일까?

일반적으로 원격 접속 도구(RAT)는 Remote Access Tool, Remote Administrator Tool의 약어로 많이 쓰이고 있으나 최근 악성 파일에서 RAT은 Remote Access Trojan의 약어로 사용되는 추세이다. 그러므로 해당 문서의 RAT은 Remote Access Trojan으로 정의하고 진행하려 한다. RAT은 감염된 시스템의 백도어(Backdoor) 생성을 위해 쓰이는 경우가 많으며 정상 프로그램에 공격자가 제작한 악성코드를 삽입하여 재 유포 하거나 이메일, 파일 공유 사이트 등 다양한 방법으로 유포를 시도하는 것이 특징이다.


[그림 1] 정상 프로그램과 악성코드 동작 시나리오


기본적으로 원격 접속을 통한 PC 제어는 동일한 행위이나 비정상 메커니즘의 경우 악성코드가 정상 프로그램에 삽입되거나 위장한 방식을 이용하여 유포되며 악성코드 실행 이후 공격자와 직접 통신 등 정상 메커니즘과의 차이가 발생한다. [그림 1]과 같은 차이가 발생하는 원인에 대해서 지금부터 알아보려 한다.


02. 원격 접속 도구

원격 접속 도구와 RAT(Remote Access Trojan)의 차이를 보기 전에 원격 접속 도구를 먼저 짚고 넘어가려 한다. 원거리의 PC 또는 서버 제어, 원격 지원 등 현재 사용자가 물리적으로 접근이 힘든 PC에 접근하기 위해 원격 접속 도구를 이용한다. 원격 접속 도구는 매우 다양하게 존재하고 있어 모두를 비교하기는 어려우나 가장 널리 사용 중인 원격 데스크톱(RDP), 팀뷰어(TeamViewer), 크롬 원격 데스크톱(Chrome Remote Desktop)을 이용하여 사용할 수 있는 기능들을 소개하고자 한다.

1) 원격 데스크톱 (RDP)

윈도우 기반 데스크톱, 서버에 기본적으로 설치된 원격 접속 도구로 널리 사용되고 있다. 기본적으로 3389(RDP) 포트를 이용하여 통신을 시도하며 사용자가 원하는 포트로 변경이 가능한 장점이 있다. 또한, 연결된 화면을 전체화면으로 이용할 때 물리 PC에서 사용하듯이 윈도우 조합키 및 단축키 사용이 가능해져 원격 접속으로 인한 큰 불편함 없이 사용할 수 있다. 원격 접속된 PC의 화면은 연결 성공과 동시에 잠기기 때문에 해당 PC의 원격 접속을 이용한 사용 여부를 확인할 수 있다.


[그림 2] 원격 데스크톱을 이용한 원격접속 화면


2) 팀뷰어(TeamViewer)

TeamViewer는 원격 데스크톱 지원, 원격 액세스, 온라인 협업 지원을 목적으로 2005년 최초 출시되어 지금까지 약 25억대 이상의 기기에 설치 및 사용되고 있다. 설치·무설치 모드를 동시에 지원하며 랜덤으로 생성된 사용자 ID·PW를 기반으로 접속할 수 있다.


[그림 3] TeamViewer 메인 화면


TeamViewer로 원격 접속 시 화면 위쪽에 사용 가능한 명령 모음을 확인 가능하며 윈도우 원격 데스크톱과 비교하여 클라이언트 원격 업데이트, 시스템 재부팅 이후 세션 자동 활성화, 화면녹화 등 다양한 기능이 존재하고 있다.


[그림 4] TeamViewer에서 사용 가능한 명령어 목록



[그림 5] 현재 PC에 접속한 사용자 정보


TeamViewer는 원격 접속 시 기본적으로 5938(TCP/UDP) 포트를 이용하여 통신을 시도하며 5938 포트를 통한 원격접속이 불가능한 경우 443(TCP), 80(TCP) 순서대로 접속을 시도한다. 접속 성공 후 원격 접속한 PC 화면 확인 시 접속한 사람의 정보를 확인 가능하며, 원격제어 허용 · 거부 및 강제 연결종료 메뉴를 포함하고 있다.


3) 크롬 원격 데스크톱(Chrome Remote Desktop)

Chrome Remote Desktop은 Google Chrome 및 Chromium 기반으로 제작된 브라우저 플러그인 및 웹으로 제어할 수 있는 원격 프로그램으로 Google 계정을 소유하면서 Chromium 기반으로 제작된 브라우저가 설치된 PC에서 사용할 수 있다. 별도의 ID·PW 없이 Google 계정에 등록되며 로그인 시도 시 PIN 번호를 요청한다. 이후 화면은 일반적인 원격화면과 동일하며 화면 조정 및 최대 500MB 크기의 파일 업로드 및 다운로드 기능을 지원하는 것이 특징이다.


[그림 6] Chrome Remote Desktop 메인 메뉴 및 사용 가능한 기능


Chrome Remote Desktop은 기본적으로 443(HTTPS/TCP) 포트를 이용하며 접속한 원격 PC의 상태 확인을 위한 3478(TCP/UDP) 포트를 추가로 이용한다. 또한, 다른 원격 프로그램과 마찬가지로 사용자에게 현재 원격 접속 여부를 알려주며 접속한 Google 계정명을 알려줘 실제 접속한 사용자 파악에 용이하다.


[그림 7] 현재 PC에 접속한 사용자 정보


03. RAT (Remote Access Trojan)

RAT(Remote Access Trojan)은 일반적인 원격 접속 도구와는 다르게 정보 탈취, PC 모니터링 등 악의적인 목적으로 사용되는 악성코드이다. 정상 프로그램 내 삽입, 이메일, 첨부 파일로 위장 등 악성코드를 유포하는 방식과 동일한 방식으로 유포하며 해당 프로그램이 실행될 경우 내부의 RAT 악성코드가 실행되어 공격자가 해당 PC에 접근이 가능해진다.

일반적으로 악성 행위를 하는 RAT은 사용자 몰래 설치되며 접속자가 누구인지 피해자 입장에서는 확인 불가능하다. 또한, 해당 PC를 장악하고 있으므로 보통 [표 1]과 같은 행위를 수행할 수 있다.

순번

행위

1

키로거 또는 기타 스파이웨어를 통한 사용자 모니터링

2

금융정보 또는 ID·PW와 같은 민감 정보에 접근

3

웹캠, 마이크 활성화를 통한 녹화·녹음

4

화면 캡쳐

5

바이러스 및 기타 악성 프로그램 배포

6

드라이브 포맷

7

파일 또는 파일 시스템 삭제, 다운로드 또는 변경


[표 1] RAT이 수행 가능한 행위 목록


대부분의 RAT의 경우 [표 1]과 같은 행위를 사용할 수 있으나 종류에 따라 추가적인 기능이 존재할 수 있다. RAT이 수행할 수 있는 행위를 알아보기 위해 현재도 활발하게 사용 중인 Gh0st RAT과 njRAT을 분석하여 사용할 수 있는 악성 행위 및 기능들에 대해 알아보려 한다.


1) Gh0st RAT

국내·외를 막론하고 공격에 가장 많이 쓰인 RAT 중 하나로 중국의 ‘C. Rufus Security Team’에서 개발되었으며 오픈소스로 제작된 원격 제어 악성코드이다. GitHub에도 Gh0st RAT 소스가 공개되어 누구나 빌드, 사용이 가능한 것이 특징이다. 

순번

파일명

MD5

1

Gh0st.exe

7ec750c6d62271b3e46f98e0b45d18ff

2

Server.exe

3e88b16e374bcadaeeb28e3e71bc4f51


[표 2] 분석에 사용된 Gh0st RAT 파일 정보


공격자 PC에서 gh0st.exe 실행 시 제어 가능한 PC 목록 및 실행 파일 생성 메뉴가 확인되며 실행 파일 실행 시 피해자 PC 목록에 등록되어 원격 제어가 가능해진다. Settings, Build 메뉴를 이용하여 공격자가 원하는 IP·Port로 변경이 가능하며 해당 실행 파일은 기본적으로 서비스에 등록되어 사용되기 때문에 등록될 때 서비스명, 설명 역시 변경이 가능하다.


[그림 8] Gh0st RAT의 Sessions, Build 메뉴


Connection 페이지는 감염된 피해자 PC 목록을 확인하는 페이지로 Build 페이지에서 생성한 파일이 피해자 PC에 설치되면 공격자 PC에서 [표 3]과 같은 기능을 사용하여 제어가 가능하다.


[그림 9] 접속한 피해자 PC 목록 및 사용 가능한 기능

기능

파일 관리(F)

화면 제어(C)

키로거(K)

원격 터미널(T)

시스템 관리(M)

실시간 화면(V)

음성 녹음(W)

세션 관리(S)

기타 기능(O)

메모 설정(R)

연결 종료(D)

 


[표 3] Gh0st RAT에서 사용 가능한 기능 목록



[그림 10] 공격자 PC <-> 피해자 PC 간 양방향 파일 공유


파일 관리 기능은 현재 피해자 PC에서 사용 중인 드라이브 및 파일 확인, 파일 복사, 이름변경, 삭제 등의 기능을 수행할 수 있으며 피해자 PC 내부의 중요자료 탈취, 공격자 PC에서 악성 파일전송 등의 이동 경로로 사용할 수 있다.

화면 캡처 기능은 피해자 PC의 실시간 화면을 캡처 후 공격자 PC로 전송한다.


[그림 11] 피해자 PC 화면 스크린샷


키로거 기능은 피해자 PC에서 현재 사용자가 실행 중인 프로그램에 입력된 키 입력 값을 확인할 수 있다.


[그림 12] 피해자 PC에서 입력한 데이터


[그림 13] 피해자 PC에서 명령 프롬프트 실행 및 명령어 실행 성공


원격 터미널 기능은 피해자 PC의 명령 프롬프트를 백그라운드로 실행하여 다양한 명령 및 프로그램을 사용자 몰래 실행시킬 수 있다. 


[그림 14] 피해자 PC에 현재 실행된 프로세스 목록


시스템 관리 기능은 현재 피해자 PC에서 사용 중인 Process의 정보를 확인할 수 있으며 특정 Process를 원격으로 종료할 수 있다. 


2) njRAT (Bladabindi)

njRAT은 .NET Framework를 이용하여 제작된 RAT로 2013년 최초 발견 이후 중동의 공격자들이 많이 사용한 것으로 알려져 있다. 다양한 버전의 njRAT 소스가 GitHub에도 공개되어 있어 현재까지 공격에 사용되고 있으며 공격자는 웹하드, 파일 공유 사이트를 비롯한 파일 공유가 가능한 모든 통로를 이용하여 유포를 진행하는 것이 특징이다.


순번

파일명

MD5

1

NjRat 0.7D.exe

70ea9c044c9a766330d3fe77418244a5

2

Client.exe

441a8cc7da5dadfd654733bb9ef4fa3e


[표 4] 분석에 사용된 njRAT 파일 정보



[그림 15] njRAT Host 프로그램 최초 실행 시 포트 설정 및 연결된 피해자 목록


최초 실행 시 프로그램 이용에 필요한 포트를 선택 가능하며 Start 버튼 클릭 시 메인 화면으로 이동된다. 감염된 사용자의 목록 확인 가능하며 추가로 공격자가 사용 가능한 메뉴들이 확인된다.

기능

시스템 관리

파일 실행

화면 공유

원격 캠 활성화

음성 녹음

패스워드 정보

키로깅

채팅 활성화

피해자 PC 관리

저장된 폴더 열기

 

 


[표 5] njRAT에서 사용 가능한 기능 목록



[그림 16] njRAT 최초 실행 시 연결된 피해자 PC 정보


공격자 PC에서 피해자 PC가 연결될 때마다 접속 정보를 작업 표시줄에 팝업 형식으로 표시해준다.

njRAT 클라이언트 파일 생성은 Builder 메뉴에서 진행 가능하며 서버, 포트 및 감염된 대상의 이름을 미리 설정할 수 있다. 프로세스 보호 및 시작 프로그램, 레지스트리를 이용한 지속적인 실행, Anti VM 및 코드 난독화 등 다양한 기능을 미리 설정 후 클라이언트 파일 생성이 가능하다.


[그림 17] njRAT 클라이언트 프로그램 생성을 위한 Build 메뉴


UAC 우회를 위해 SEE_MASK_NOZONECHECKS 값을 1로 변경하여 환경변수에 저장한다. 1의 경우 인트라넷에서 다운로드 받은 파일을 의미하며 실행 시 경고창이 뜨지 않도록 우회하는 방법이다.


[그림 18] UAC 우회를 위한 환경변수 수정


코드 난독화 기능 사용 시 분석가의 분석 방해를 위해 코드를 난독화 하며 Protect Process 옵션 사용 시 악성코드의 프로세스를 시스템 필수 프로세스로 속여 강제 종료 시  CRITICAL_PROCESS_DIED 오류의 블루스크린을 발생 시킨다.


[그림 19] 코드 난독화 옵션 사용 전·후



[그림 20] Protect Process 옵션 사용 시 BSOD 발생 코드 


공격자 PC와 최초 연결 시 수집한 피해자 PC 정보 및 스크린 샷을 공격자 PC로 넘겨주게 되며 공격자 PC에서 명령어 전달 시 [명령어 길이+0x00+명령어] 형식으로 전달 후 명령어를 해석하게 된다. 피해자 PC에서는 해석된 명령어를 기반으로 [명령어 길이+ 0x00+명령어+구분자(숫자/문자 랜덤 12자리) + 결과(base64 인코딩 데이터)]로 전달 받게 된다. 현재 확인된 사용 가능한 명령어 키워드는 [표 6]과 같다.


[그림 21] njRAT 최초 통신 시 발생되는 패킷 및 명령어 전달 시도


순번

명령어 키워드

명령어 기능

1

ll

최초 세션 생성

2

inf

njRAT 설정정보 전달

3

rn

파일 실행

4

sc, scpk

원격 데스크톱

5

ret

패스워드 데이터

6

kl

키로깅

7

CH

양방향 채팅

8

un

njRAT 관리 (업데이트, 삭제, 재실행, 연결종료, 이름변경)

9

X

희생자 PC에서 수집된 정보가 저장된 폴더 열기

10

Ex

플러그인 키워드

기능

fm

파일 탐색기

proc

프로세스 탐색기

tcp

네트워크 탐색기

rg

레지스터 탐색기

rs

원격 쉘


[표 6] njRAT 통신에서 사용되는 명령어


[표 6]의 Ex 명령어는 다양한 탐색기 기능을 제공하기에 플러그인 키워드를 사용하며 공격자 PC에서 [명령어 길이+0x00+Ex+ 구분자(숫자/문자 랜덤 12자리)+플러그인 키워드]를 전송하면 피해자 PC로부터 PLG 명령어를 수신했을 경우 플러그인 키워드를 재전송하여 원하는 기능을 요청한다.


[그림 22] njRAT Ex 명령어 사용 패킷



[그림 23] njRAT 클라이언트 프로그램 위장을 위한 Assembly 메뉴


감염된 PC의 시스템 관리 메뉴 확인 시 파일(File Manager), 프로세스(Process Manager), 연결된 통신(Connection), 레지스트리(Registry), 서비스 목록 (Services) 및 명령 프롬프트(Remote Shell)를 사용할 수 있다.


[그림 24] 피해자 PC에 존재하는 파일 목록


화면공유 메뉴 확인 시 피해자 PC의 화면을 실시간으로 확인 가능하며 Mouse, Keyboard 옵션을 이용한 원격제어 및 현재 화면을 자동으로 저장하는 기능을 포함하고 있다.


[그림 25] 피해자 PC의 실시간 화면 정보


패스워드 정보 메뉴 사용 시 브라우저에 저장된 계정, 패스워드, URL, 브라우저 정보를 획득할 수 있다. 추가로 키로깅 메뉴 확인 시 입력된 프로세스 및 입력 내용을 확인할 수 있다.


[그림 26] 피해자 PC에 저장된 인증 정보 및 키로깅된 데이터


GetAsyncKeyState API를 이용하여 피해자가 마지막으로 입력한 가상키를 가져와 내부 함수를 이용하여 가독 가능한 문자열로 변환하며 Tab키, Enter 키 등 특수키 역시 이 함수를 이용하여 변환한다.


[그림 27]가상키 API를 이용한 키로깅 데이터 확보


공격자 PC의 실행 파일을 피해자 PC에서 실행 가능한 메뉴도 존재하며 저장된 폴더 메뉴의 경우 현재까지 작업 된 내용을 파일 및 폴더로 저장하여 특정 위치에 저장하며 해당 위치의 폴더를 오픈해주는 메뉴이다.


[그림 28] 공격자 PC에 저장된 피해자 PC의 데이터


클라이언트 악성코드 생성 시 옵션에 따라 다르지만 레지스트리를 이용한 지속적인 실행을 선택한 경우 HKEY_CURRENT_USERSOFTWARE[영어/숫자 랜덤 32자리] 하위 키에 데이터를 저장한 이후 실행에 사용되며 [kl] 데이터에 키로깅, 수집된 PC 정보 등 공격자가 수행한 데이터를 저장하는 용도로 사용된다.


[그림 29] 피해자 PC에서 확인되는 njRAT 관련 레지스트리 데이터


04. 마무리

지금까지 정상적인 원격 접속 도구와 악성코드인 RAT의 기능을 각각 알아보았다. 원격 접속에 대해서는 동일한 기능을 수행하나 RAT의 경우 일반적인 원격 접속 도구의 기능에 추가하여 피해자 개인정보, 키보드 입력, 화면, 녹음된 내용 등의 정보를 확보하거나 원하는 악성코드 또는 프로그램 저장 및 실행 기능을 포함하고 있어 추가적인 악성행위가 가능한 통로로 이용하고 있다. RAT의 경우 사용자가 모르게 설치되는 경우가 많아 사용자 대응방안 및 탐지방안을 제시하려 한다.

1) 사용자 대응방안

일반적으로 파일을 다운받을 수 있는 모든 경로를 이용하나 이메일의 첨부파일을 이용하거나 웹하드, 토렌트 등 파일 공유 서비스를 이용한 유포가 많아 의심스러운 이메일 수신 시 열람 금지 및 즉시 삭제, 공식 홈페이지에서 제공되지 않은 프로그램 설치 금지 등을 통한 악성코드 설치가 되지 않도록 하는 습관을 들이는 것이 중요하다.


2) RAT 탐지방안

RAT의 경우 피해자 PC에서 획득한 정보를 공격자에게 넘겨주기 위해 웹 통신을 사용하며 버전에 따라 다르지만 기본적으로 통신의 패턴이 정해져 있다. [표 7]은 RAT 악성코드 고유의 통신 패턴을 탐지하여 특정 RAT 악성코드를 탐지하는 Snort Rule이며 해당 탐지 룰을 이용하여 PC에 RAT 악성코드 감염 여부를 파악할 수 있다.


[표 7] RAT 탐지를 위한 Snort Rule


05. 참고자료

1.https://webcache.googleusercontent.com/search?q=cache:uJe7YE-ZQ4gJ:https://www.teamviewer.com/en-us/trust-center/security/+&cd=3&hl=ko&ct=clnk&gl=kr
2. https://github.com/yichinzhu/gh0st
3. https://github.com/AliBawazeEer/RAT-NjRat-0.7d-modded-source-code