나도 모르게 시스템을 조종하는 VNC 악성코드

가상 네트워크 컴퓨팅(Virtual Network Computing: VNC)은 원격으로 다른 컴퓨터를 제어하는 화면 제어 시스템을 일컫는다. 일반적으로 사용되는 원격 데스크탑 프로토콜(Remote Desktop Protocol: RDP)과 같이 원격으로 다른 시스템에 접속해 제어하기 위한 목적으로 사용된다.

ASEC 분석팀은 최근 해킹그룹 ‘김수키(Kimsuky)’ 관련 악성코드를 모니터링 하던 중 애플시드(AppleSeed) 원격제어 악성코드에 의해 VNC 악성코드가 설치되는 정황을 포착했다. VNC 악성코드의 종류와 공격 방법에 대해 알아본다.

 

 

해킹그룹 ‘김수키(Kimsuky)’는 최초 침투 과정을 거쳐 공격 대상 시스템에 ‘애플시드(AppleSeed)’ 백도어를 설치한다. 이어서, 애플시드를 통해 추가적으로 VNC 악성코드를 설치하여 공격 대상 시스템을 그래픽 환경으로 제어한다. 설치되는 VNC 악성코드로는 크게 TinyNuke(HVNC)와 TightVNC(VNC)가 있다.

 

1. TinyNuke (HVNC)
뉴클리어 봇(Nuclear Bot)이라고도 알려진 TinyNuke는 2016년부터 확인된 뱅킹 악성코드로, HVNC(HiddenDesktop/VNC), Reverse SOCKS4 프록시, 웹 브라우저 폼 그래빙(Form Grabbing)과 같은 기능들을 포함한다. 2017년경 소스 코드가 공개되면서 다양한 공격자들이 사용하고 있으며, 그 중 HVNC 기능은 아베마리아(AveMaria), BitRAT 등 다른 악성코드들에 의해 부분적으로 차용되기도 한다.

TinyNuke가 사용하는 HVNC는 일반적인 VNC와 달리 감염된 사용자가 자신의 화면이 제어되고 있다는 사실을 인지하지 못한다. 현재 유포되고 있는 TinyNuke는 기존 다양한 기능들 중, HVNC 기능만 활성화되어 있다. [그림 1]은 HVNC 기능이 활성화될 경우의 프로세스 트리다.

 


[그림 1] HVNC 사용 시 프로세스 트리

 

프로세스 트리를 보면 ‘explorer.exe(PID : 2216)’의 자식 프로세스로 ‘explorer.exe (PID : 3140)’가 존재한다. 자식 프로세스란 프로그램 실행 중 작업을 종료하지 않은 채로 다른 작업을 수행하기 위해 생성한 새로운 프로세스를 뜻한다. 공격자는 새로운 ‘explorer.exe (PID : 3140)’를 통해 화면을 제어할 수 있으며, 공격자가 피해 PC를 제어하는 동안 생성하는 프로세스의 GUI(Graphical User Interface)는 피해 PC 화면에서는 보이지 않는다.

또 다른 특징은 리버스 VNC(Reverse VNC) 방식을 사용한다는 점이다. 일반적인 VNC 환경에서는 VNC 클라이언트를 통해 원격 제어 대상, 즉 VNC 서버에 접속을 시도한다. 하지만, TinyNuke의 HVNC는 리버스 VNC 기능을 통해 서버에서 클라이언트로 접속을 시도한다. 감염 시스템의 HVNC가 실행되면 지정된 C&C 서버에 접속하고, C&C 서버에서 공격자의 원격 제어가 가능해진다. 이는 리버스 쉘(Reverse Shell)과 같이 외부에서 내부로의 접근을 차단하는 방화벽을 우회하고, 사설 IP 환경에서도 통신을 지원하기 위한 것으로 추정된다.

 


[그림 2] 공격자의 HVNC 화면

 

참고로 TinyNuke는 서버와 클라이언트 간 HVNC 통신을 확립할 때 “AVE_MARIA” 문자열을 이용해 검증한다. HVNC 클라이언트에서 서버로 “AVE_MARIA” 문자열을 보내면 서버에서는 이름 검증하여 “AVE_MARIA”가 맞을 경우에 HVNC 통신이 가능해진다.

 


[그림 3] HVNC에서 사용되는 AVE_MARIA 문자열

 

이는 김수키 그룹에서 사용하는 HVNC에서도 동일하게 나타난다. 최근에는 [그림 4]와 같이 “LIGHT’S BOMB” 문자열을 사용하는 HVNC들이 확인되고 있다.

 


[그림 4] AVE_MARIA 대신 사용되는 “LIGHT’S BOMB” 문자열

 

2. TightVNC (VNC)
김수키 그룹에서 애플시드 백도어를 통해 유포하는 또 다른 VNC 악성코드로는 TightVNC가 있다. TightVNC는 오픈 소스 VNC 유틸리티로, 공격자는 이를 공격에 맞춤화하여 사용한다. TightVNC 역시 앞에서 다룬 리버스 VNC 기능을 지원하는 점을 특징으로 꼽을 수 있다.

TightVNC는 서버 모듈인 ‘tvnserver.exe’와 클라이언트 모듈인 ‘tvnviewer.exe’로 이루어져 있다. 일반적인 환경에서는 원격 제어 대상에 tvnserver를 설치하고 사용자 환경에서 tvnviewer를 이용해 제어 대상에 접속하게 된다. 그리고 리버스 VNC 기능을 사용할 경우, 먼저 클라이언트에서 tvnviewer를 리스닝 모드로 실행한다. 이후, 접속 대상 시스템에 서비스로 설치된 tvnserver를 이용해 컨트롤서비스(controlservice) 및 커넥트(connect) 명령으로 클라이언트의 주소를 설정하여 접속하도록 할 수 있다.

김수키 그룹에서 유포하는 것은 tvnserver이며, 감염 환경에서 서비스 설치 없이 단독으로 리버스 VNC 기능을 사용할 수 있도록 맞춤화한 형태이다. 따라서, tvnserver를 실행하기만 하면 C&C 서버에서 동작하는 tvnviewer에 접속하게 되고, 공격자는 감염 시스템에 대한 화면 제어가 가능해진다.

 


[그림 5] Tvnviewer를 이용한 리버스 VNC 통신

 

3. 결론
김수키 그룹은 애플시드를 이용해 또 다른 백도어 악성코드 미터프리터(Meterpreter)를 설치하기도 하며, 화면 제어를 위해 TinyNuke, TightVNC 및 RDP Wrapper를 이용하고 있다. 이외에도 계정 정보 탈취를 위한 미미카츠(Mimikatz) 활용 정황도 확인되고 있다.

 


[표 1] 최근 확인된 Kimsuky 그룹의 공격 도구

 

안랩은 현재 김수키 그룹의 악성코드 동향을 지속적으로 모니터링 중에 있다. 사용자는 의심스러운 메일의 첨부 파일 열람이나 신뢰할 수 없는 사이트 방문은 자제하고, 기본 보안 수칙을 철저히 준수해야 한다.

출처 : AhnLab