국내 VPN 설치에서 MeshAgent 감염으로 이어지는 공격 사례 분석

AhnLab Security Emergency response Center(ASEC)에서는 과거 “국내 VPN 설치파일에 포함되어 유포 중인 SparkRAT”[1] 블로그에서 국내 VPN 프로그램의 인스톨러에 SparkRAT이 포함되어 유도된 사례를 소개한 바 있다. 해당 VPN은 주로 중국에서 원활한 인터넷 접속을 필요로 하는 사람들이 설치했던 사례가 많았으며 블로그 공개 이후 조치가 완료되었다.

하지만 최근 동일한 VPN 업체의 인스톨러에서 SparkRAT을 설치하는 악성코드가 다시 유포된 사례가 확인되었다. 악성코드 유포는 일정 기간 이후 중단되었는데, 공격 흐름의 유사성이나 공격 과정에서 SparkRAT이 사용되는 점 등을 보아 동일한 공격자의 소행으로 추정된다.

여기에서는 최근 다시 확인되고 있는 공격 사례를 다루며 과거와의 차이점을 위주로 정리한다. 닷넷으로 개발된 패커 대신 Go 언어로 개발된 드로퍼 악성코드들이 사용되었다는 점이나 추가적으로 원격 데스크탑 기능을 위해 MeshCentral의 MeshAgent를 설치하는 점이 그것이다.


1. 공격 흐름

최초 유포 방식은 과거와 동일하게 VPN 업체의 웹 사이트를 공격하여 설치 파일을 악성코드로 변경한 것으로 보인다. 이에 따라 사용자가 VPN 설치 파일을 다운로드해 실행할 경우 기존 정상 VPN 인스톨러와 함께 악성코드가 설치되었다.

Figure 1. SparkRAT이 포함된 VPN 업체의 홈페이지

다음은 악성코드 설치 과정에 대한 흐름도로서 먼저 악성 인스톨러가 생성한 다운로더 악성코드가 SparkRAT을 다운로드하였다. 공격자는 이후 SparkRAT에 악성 명령을 전달하여 감염 시스템에 MeshAgent를 추가적으로 설치하였다. 설치된 MeshAgent는 원격 제어 페이지에 접속하여 관리 대상 에이전트로 자신을 등록하기 때문에, 공격자는 MeshCental 공개 서버에서 등록된 장치들을 제어할 수 있게 된다.

Figure 2. 공격 흐름도


2. GoLang 악성코드들

과거에 이루어진 공격과의 차이점 중에는 닷넷 대신 Go 언어로 개발된 악성코드들이 다수 사용되었다는 점이 있다. 공격자는 공격 과정에서 Go 언어로 개발된 드로퍼 및 다운로더 악성코드들을 사용하였는데, SparkRAT 또한 동일하기 때문에 공격에 사용된 모든 악성코드를 GoLang 기반 악성코드로 사용하였다는 점이 특징이다.

공격에 사용된 드로퍼는 위장 인스톨러 악성코드와 MeshAgent를 설치하는 악성코드 2개이며 난독화된 GoLang 악성코드이지만 모두 유사한 형태이다. 실행 시 PE 내부에 존재하는 악성코드를 생성 및 실행하며, 위장 인스톨러의 경우에는 추가적으로 생성한 파일 “start.exe”를 작업 스케줄러에 등록하는 기능을 포함한다.

Figure 3. PE 내부에 존재하는 악성코드들

schtasks.exe /Create /ru SYSTEM /f /SC ONLOGON /rl highest /tn “system update” /tr [%LOCALAPPDATA%]/start.exe

“start.exe”는 다운로더 악성코드로서 동일하게 Go 언어로 개발되어 있다. 난독화되어 있지 않으며 외부에서 추가 악성코드를 다운로드해 실행하는 기능을 담당한다. 해당 주소에서 다운로드 되는 것은 이전 공격 사례와 동일하게 SparkRAT이다.

Figure 4. 다운로더 악성코드 루틴
Figure 5. SparkRAT을 다운로드하는 로그


3. SparkRAT

공격에 사용된 SparkRAT은 Go 언어로 개발된 RAT 악성코드이며 명령 실행, 정보 탈취, 프로세스 및 파일 제어와 같은 기본적인 기능들을 제공한다. 이외에도 윈도우뿐만 아니라 리눅스, MacOS를 함께 지원하는 특징이 있다.

Figure 6. 복호화 된 SparkRAT의 설정 데이터
Figure 7. 암호화된 SparkRAT의 HTTPS 패킷

공격자는 SparkRAT을 이용해 파워쉘 명령을 전달하여 MeshAgent를 설치하였으며, 드로퍼 악성코드는 -fullinstall 인자를 주고 MeshAgent를 실행시켜 사용자의 인지 없이 백그라운드에서 설치가 진행될 수 있도록 하였다.

Figure 8. MeshAgent를 설치하는 SparkRAT


4. MeshAgent

일반적으로 공격자들은 백도어 유형의 악성코드를 설치한 이후에도 원격 데스크탑을 지원하는 악성코드나 소프트웨어를 추가적으로 설치하는 경향이 있다. 이는 추가적인 악성 행위를 수행하는 데 있어 CLI 방식보다는 GUI 방식을 사용하는 것이 더 편의성이 있기 때문일 것이다. 이에 따라 최근 유포되고 있는 RAT (Remote Access Trojan) 악성코드들은 대부분 VNC나 RDP와 같은 원격 데스크탑 기능을 지원하는 편이다.

ASEC에서는 과거 “다양한 원격 제어 도구들을 악용하는 공격자들”이라는 포스팅을 통해 공격자들이 사용하는 다양한 원격 제어 도구들을 각각의 사례 별로 다룬 바 있다. 현재 공격에서는 공격자가 MeshAgent를 사용하였지만, 비슷하게 AnyDesk나 TeamViewer, Ammyy, Tmate[2] 그리고 NetSupport[3]와 같은 다양한 도구들이 사용될 수 있다.

SparkRAT의 경우 RAT이긴 하지만 만들어진지 오래되지 않은 악성코드이다 보니 아직까지 원격 데스크탑 기능을 지원하지 않는다. 즉 공격자는 설치된 SparkRAT을 이용해 악의적인 명령을 실행하거나 정보 수집, 추가 페이로드 다운로드 등 감염 시스템에 대한 제어를 획득한 이후이긴 하지만 이러한 한계를 극복하기 위해 추가적으로 MeshAgent를 설치한 것으로 보인다.

MeshCentral은 오픈 소스이면서 무료로 원격 제어를 제공하는 관리 도구이다. MeshCentral에서 제공하는 MeshAgent는 명령 실행이나 파일 다운로드와 같은 각종 시스템 제어 명령들뿐만 아니라 VNC, RDP와 같은 원격 데스크탑 기능을 제공한다. 물론 일반적인 사용자들은 원격에서 시스템을 관리하기 위해 이를 이용할 것이지만 이러한 기능들 때문에 충분히 악의적인 목적으로 사용할 수 있다.

Figure 9. MeshCentral 공식 홈페이지

MeshCentral의 특징이라고 한다면 다양한 아키텍처를 지원한다는 점이 있다. 사용자 또는 공격자는 MeshCentral 서버에서 각각의 아키텍처에 해당하는 MeshAgent를 선택하여 설치 명령이나 설치 파일을 다운로드할 수 있다.

Figure 10. MeshCentral이 지원하는 다양한 아키텍처

MeshAgent를 설치 명령을 실행하거나 설치 파일을 다운로드해 실행할 경우 MeshAgent는 MeshCentral 서버에 접속하여 실행 중인 시스템을 관리 대상 시스템으로 등록한다. 바꿔 말하자면 만약 공격자가 이렇게 다운로드한 MeshAgent를 공격 대상 시스템에서 실행할 경우 감염 시스템은 관리 대상이 된다.

Figure 11. MeshAgent가 설치된 장비들

MeshAgent는 원격 관리에 필요한 시스템의 기본 정보들을 전송하고 전원 및 계정 제어, 채팅이나 메시지 팝업, 파일 업로드 / 다운로드 그리고 명령 실행과 같은 기능들을 제공한다. 이외에도 원격 데스크탑을 지원하는데, 특히 RDP 및 VNC와 같은 원격 데스크탑 기능들 또한 웹 기반으로 지원이 된다. 이러한 점들은 공격자가 감염 시스템을 제어하는 목적으로 MeshAgent를 사용할 때 얻을 수 있는 장점들이라고 할 수 있으며, 이외에도 이메일 인증만으로 손쉽게 사용할 수 있다는 점도 있다.

Figure 12. MeshAgent가 지원하는 기능들

참고로 MeshCentral 서버에서 MeshAgent를 다운로드할 때 다운로드된 파일 마지막에 존재하는 시그니처 영역에는 사용자에 맞는 설정 정보가 저장되어 있다. MeshAgent는 “%PROGRAMFILES%\Mesh Agent” 경로에 자신을 설치하면서 동일 경로에 “MeshAgent.msh”라고 하는 설정 파일을 생성하는데, 해당 파일의 내용은 MeshAgent 파일 안에 존재하였던 설정 정보이다.

Figure 13. 공격자의 MeshAgent 설정 정보

MeshName=ad
MeshType=2
MeshID=0x50E8FD710C689DA3BC4019B7450F43FDFCF21AEDEB7690D5DFD07F74EE0A4E780EEB5D09831D6664E34838AAD12EECE0
ServerID=BEC956642E30BE68AB6B3ED2F40F4E784CBA349DE3EB7E116F5B22319425FB4FE4C5A6831A5CE5524C569F6F42190B24


5. 결론

ASEC에서는 과거 VPN 인스톨러에 SparkRAT이 포함된 채 유포된 사례를 공개한 바 있다. 동일한 것으로 추정되는 공격자는 최근 다시 VPN 업체의 웹사이트를 공격하여 SparkRAT을 설치하는 악성코드를 유포하였으며, MeshAgent를 함께 설치하여 감염 시스템에 대한 제어를 획득하였다.

사용자들이 홈페이지에서 악성 인스톨러를 다운로드해 설치하면 악성 인스톨러는 악성코드뿐만 아니라 기존 VPN 인스톨러도 함께 설치하여 악성코드 감염 사실을 인지하기 어렵게 한다. 사용자들은 V3를 최신 버전으로 업데이트하여 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다.

파일 진단
– Dropper/Win.Agent.C5431031 (2023.05.21.03)
– Downloader/Win.Agent.C5431029 (2023.05.21.03)
– Backdoor/Win.SparkRAT.C5431028 (2023.05.21.03)
– Dropper/Win.MeshAgent.C5431027 (2023.05.21.03)
– Trojan/Win.MeshAgent.C5431026 (2023.05.21.03)

행위 진단
– Persistence/MDP.RunKey.M1038
– Malware/MDP.Download.M1197

IOC
MD5

– 0574f906b97f2e74ae49b6e900b5c60d : 악성 인스톨러 (167775087_qy8iu7xo_*****VPNSetup.exe)
– 162e17324f63f2e1d2c32f7c842b3917 : SparkRAT 다운로더 (start.exe)
– 8fce3a48d46b9c3d252806e7292647e6 : SparkRAT (services.exe)
– 4a9369fcff5e934ab644c9aca6e42532 : MeshAgent 드로퍼 (update.exe)
– 15d24570f3844987acce866d6541ba21 : 악성 MeshAgent (go-memexec-2989748128.exe)

다운로드 주소
– hxxp://54.180.27[.]29/cc/himart/api/kodbox-main/gr.png : SparkRAT 다운로더
– hxxp://54.180.27[.]29/cc/himart/api/kodbox-main/ms-update.exe : MeshAgent 드로퍼

C&C 주소
– aggbvdfbbafdg.moeuda[.]link:443 : SparkRAT

연관 IOC 및 관련 상세 분석 정보는 안랩의 차세대 위협 인텔리전스 플랫폼 ‘AhnLab TIP’ 구독 서비스를 통해 확인 가능하다.

Categories:악성코드 정보

Tagged as:,,

5 1 vote
별점 주기
guest

0 댓글
Inline Feedbacks
View all comments