중국 기반 APT 공격 그룹이 사용하는 대표적인 백도어 악성코드 PlugX
시스템 제어나 정보 탈취 등 특정 기능 담당하는 플러그인으로 원하는 악성행위 가능

[보안뉴스 김영명 기자] 최근 중국 원격제어 프로그램인 Sunlogin 및 AweSun의 원격코드 실행 취약점을 악용해 PlugX 악성코드가 설치되고 있는 것이 확인됐다. Sunlogin의 원격코드 실행 취약점(CNVD-2022-10270/CNVD-2022-03672)은 익스플로잇 코드가 공개된 이후 최근까지 다양한 공격에 악용되고 있다.

[보안뉴스 / 3.9.] PlugX 악성코드, Sunlogin 및 AweSun 원격코드 실행 취약점 악용해 유포

[이미지=utoimage]

안랩 ASEC 분석팀에 따르면 과거에도 Sunlogin RCE 취약점을 통해 Sliver C2와 XMRig 코인 마이너, 그리고 Gh0st RAT 악성코드가 유포된 바 있다. Gh0st RAT도 중국에서 개발된 악성코드로, 주로 중국을 기반으로 하는 공격자들이 주로 사용하는 RAT 악성코드로 알려졌다.

AweSun도 마찬가지로 중국에서 개발된 원격제어 프로그램으로, 구체적인 취약점은 확인되지 않았지만, Sunlogin과 유사한 RCE 취약점이 공개된 것으로 추정된다는 게 ASEC 분석팀 측의 설명이다. 동일한 공격자들은 Sliver C2를 설치하는데 Sunlogin 뿐만 아니라 AweSun에 대한 RCE 취약점 공격도 함께 사용했다. 그 이후에는 동일한 취약점 공격들을 이용해 Paradise 랜섬웨어를 설치하는 사례도 확인됐다.

PlugX는 중국 기반의 APT 공격그룹들이 사용하는 대표적인 백도어 악성코드들 중 하나다. 대략 2008년경부터 유포가 시작된 것으로 알려졌으며, 최근까지도 다양한 기능들이 추가된 변종들이 공격에 사용되고 있다. PlugX를 사용했던 APT 공격그룹들로는 대표적으로 Mustang Panda, Winnti, APT3, APT41 등이 존재하며 대부분 중국을 기반으로 하는 조직이다.

PlugX는 모듈 기반의 악성코드로서 각각의 기능을 담당하는 다양한 플러그인들을 지원한다. 즉, PlugX를 사용하는 공격자는 시스템 제어나 정보 탈취 등 특정 기능을 담당하는 플러그인들을 이용해 원하는 악성 행위를 수행할 수 있다.

PlugX의 또 다른 특징은 DLL Side-Loading 방식을 이용한다는 점이다. DLL Side-Loading 방식은 정상 프로그램과 동일한 경로에 악성 DLL을 설치하고 정상 프로그램을 실행해 정상 프로그램으로 악성 DLL이 로드돼 악성 루틴을 실행시키는 방식이다. 이는 보안제품의 탐지를 우회하기 위한 것으로, 악성 행위를 수행하는 주체가 정상 프로세스가 돼 정상 프로그램의 행위로 인지될 수 있기 때문이다.

PlugX는 주로 압축파일이나 드로퍼(Dropper) 형태로 유포되는데, 최종으로 동일 경로에 정상 EXE 실행 파일과 DLL Side-Loading에 사용되는 이름을 갖는 악성 로더(Loader) DLL, 그리고 인코딩된 데이터 파일이 생성된다. 실행 파일은 동일 경로에 존재하는 로더 DLL을 로드해 실행하게 되고, 로더 DLL은 동일 경로에 위치하는 데이터 파일을 읽고 복호화해 메모리상에서 실행한다. 이러한 과정을 거쳐 최종으로 메모리상에서 동작하는 악성코드가 PlugX다.

[보안뉴스 / 3.9.] PlugX 악성코드, Sunlogin 및 AweSun 원격코드 실행 취약점 악용해 유포

▲취약점 공격을 통해 악성코드를 다운로드하는 로그[자료=안랩 ASEC 분석팀]

안랩 ASEC 분석팀에서는 취약점이 패치되지 않은 시스템이나 부적절하게 설정된 시스템들을 대상으로 하는 공격들을 모니터링하고 있다고 밝혔다. 최근 PlugX가 Sunlogin 및 AweSun의 RCE 취약점 공격을 통해 설치되고 있는 것이 확인됐다는 것. 해당 취약점 공격을 통해 실행된 파워쉘 명령이 esetservice.exe라는 이름의 파일을 생성한 것이 확인됐다. esetservice.exe는 실제 ESET 사의 HTTP Server Service 프로그램으로서 정상 파일이다.

관련 로그를 더 확인한 결과 공격자는 esetservice.exe 외에도 http_dll.dll이라고 하는 이름의 파일을 추가적으로 다운로드한 것으로 분석됐다. 두 파일의 연관 관계를 조사사한 결과, ‘esetservice.exe’ 프로그램이 추가적인 인자 없이 실행될 경우 동일 경로에 위치하는 ‘http_dll.dll’ 파일을 로드하는 기능이 존재한다는 사실이 확인됐다. 이는 전형적인 DLL Side-Loading 방식으로서, PlugX는 이러한 DLL Side-Loading 방식을 사용하는 대표적인 악성코드다.

[보안뉴스 / 3.9.] PlugX 악성코드, Sunlogin 및 AweSun 원격코드 실행 취약점 악용해 유포

▲다운로드된 추가 악성코드 및 동일 경로에 존재하는 http_dll.dll 파일을 로드하는 루틴(위부터)[자료=안랩 ASEC 분석팀]

PlugX는 정상 exe 프로그램과 로더 역할을 담당하는 DLL, 그리고 실제 악성코드가 인코딩돼 있는 데이터 파일이 한 묶음으로 유포된다. 실제 코드 분석상 ‘http_dll.dll’이 동일 경로에 존재하는 ‘lang.dat’ 파일을 읽어와 복호화한 후 실행하는 루틴이 확인됐다.

PlugX 악성코드를 분석하던 중 바이러스 토탈(VirusTotal)에서 동일한 ‘esetservice.exe’와 ‘http_dll.dll’ 파일을 공격에 사용하는 악성코드가 확인됐다. 해당 악성코드는 WinRar Sfx 포맷의 드로퍼 악성코드로, 실행 시 ‘esetservice.exe’, ‘http_dll.dll’ 그리고 ‘lang.dat’ 파일을 생성한 후 ‘esetservice.exe’를 실행해 최종으로 PlugX가 실행될 수 있도록 설치한다. 해당 드로퍼는 위에서 다룬 취약점 공격에서 확인된 것은 아니지만 PlugX의 명령제어(C&C) 서버 주소와 취약점 공격에 사용된 다운로드 주소가 같은 것으로 보아 동일 공격자의 소행으로 추정된다.

PlugX 드로퍼는 정상 프로그램들의 경로로 위장해 악성코드들을 ‘C:\ProgramData\Windows NT\Windows eset service’ 경로에 생성한다. 그리고 사용자들의 눈에 띄지 않게 하기 위해 ‘숨김’ 속성을 부여한다.

[보안뉴스 / 3.9.] PlugX 악성코드, Sunlogin 및 AweSun 원격코드 실행 취약점 악용해 유포

▲위장 경로에 생성된 PlugX 악성코드들 및 로더 함수를 실행시키도록 패치된 코드(위부터)[자료=안랩 ASEC 분석팀]

‘esetservice.exe’가 실행되면 동일 경로에 위치한 ‘http_dll.dll’을 로드하게 되고, 이에 따라 ‘http_dll.dll’의 DllMain() 함수가 실행된다. DllMain()은 ‘lang.dat’ 파일을 로드하는 기능을 담당하는 함수를 직접 실행하는 대신 다음과 같이 ‘esetservice.exe’의 코드를 수정해 ‘esetservice.exe’가 ‘http_dll.dll’을 로드한 직후 직접 ‘http_dll.dll’의 로더 루틴으로 분기하도록 패치한다.

해당 루틴은 동일 경로에 위치한 ‘lang.dat’ 파일을 로드해 메모리 상에서 실행하는 기능을 담당한다. ‘lang.dat’ 파일의 시작은 쉘코드이며 해당 코드가 실행되면서 함께 저장돼 있는 PlugX를 복호화해 메모리 상에서 실행한다.

[보안뉴스 / 3.9.] PlugX 악성코드, Sunlogin 및 AweSun 원격코드 실행 취약점 악용해 유포

▲쉘코드와 인코딩된 PlugX가 포함돼 있는 lang.dat 파일[자료=안랩 ASEC 분석팀]

PlugX는 10여 년 이상 꾸준히 업데이트된 악성코드이기 때문에 최근까지도 다양한 변종들이 확인되고 있다. 2020년 Dr. Web에서는 다양한 PlugX 변종들을 분류하고 분석한 보고서를 공개하기도 했다. 2022년에는 Security Joes사에서 가장 최근 확인된 PlugX 변종을 다뤘다. 현재 분석 대상이 되는 PlugX는 Dr. Web 보고서의 BackDoor.PlugX.38 변종과 거의 유사하며, 설정 데이터를 제외한다면 가장 최근 공개된 Security Joes의 보고서에서 다룬 PlugX와 동일할 것으로 추정된다는 게 안랩 ASEC 분석팀의 설명이다.

PlugX가 지원하는 플러그인과 각각의 기능은 △Disk(파일 조회, 읽기, 쓰기, 프로세스 실행 등) △KeyLog(키로깅) △Nethood(네트워크 공유 리소스 정보 조회) △Netstat(TCP / UDP 연결 테이블 조회 및 TCP 엔트리 설정) △Option(워크스테이션 작업) △PortMap(구현되지 않음) △Process(프로세스/모듈 조회, 프로세스 종료) △RegEdit(레지스트리 관련 조회, 생성, 삭제 등 작업) △Screen(스크린샷 캡처 및 원격 데스크톱) △Service(서비스 관련 조회, 제어, 삭제 등 작업) △Shell(원격 제어 쉘, 파이프 통신) △SQL(SQL 관련 정보 조회, 명령 실행 등 작업) △Telnet(TELNET 서버로 동작) △ClipLog(클립보드 정보 탈취) △RDP(RDP 공유 폴더를 이용한 전파) 등이다.

[보안뉴스 / 3.9.] PlugX 악성코드, Sunlogin 및 AweSun 원격코드 실행 취약점 악용해 유포

▲탈취한 클립보드 및 키로깅 데이터가 저장되는 파일들[자료=안랩 ASEC 분석팀]

최근 패치되지 않은 취약한 소프트웨어를 대상으로 다양한 악성코드들을 설치하는 사례들이 확인되고 있다. 취약점 공격을 통해 설치되는 악성코드들로는 Sliver, Paradise 랜섬웨어 및 코인 마이너 악성코드들이 있었지만, 최근에는 PlugX 백도어를 유포하는 사례도 확인된다는 게 안랩 ASEC 분석팀의 설명이다.

PlugX는 중국 기반 APT 공격그룹들이 사용하는 대표적인 백도어 악성코드들 중 하나이며 최근까지도 다양한 기능들이 추가되고 있는 등 꾸준히 공격에 사용되고 있다. 백도어인 PlugX가 설치되면 공격자는 사용자 몰래 감염 시스템에 대한 제어를 획득할 수 있으며, 이에 따라 사용자의 키 입력 정보 및 스크린샷 캡쳐를 포함한 정보 탈취, 추가 악성코드 설치와 같은 다양한 악성 행위를 수행할 수 있다.

이에 사용자들은 설치된 소프트웨어를 최신 버전으로 패치해 취약점 공격을 사전에 방지해야 한다. 또한, V3 등 안티 바이러스 제품을 최신 버전으로 업데이트해 악성코드 감염을 사전에 차단할 수 있도록 신경 써야 한다.
[김영명 기자(boan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>