취약한 MySQL 서버를 대상으로 유포 중인 AsyncRAT 악성코드

ShadowServer 재단은 최근 전 세계에서 외부에 노출되어 있는 MySQL 서버의 수가 약 360만 대 존재한다는 보고서를 공개하였다. MySQL 서버는 MS-SQL 서버와 함께 대표적인 데이터베이스 서버로서 기업이나 사용자 환경에서 대량의 데이터를 관리하는 기능을 제공한다. 일반적으로 윈도우 환경에서는 MS-SQL이 대표적이지만 리눅스 환경에서는 MySQL이 아직까지 많이 사용되고 있다.

ASEC 분석팀에서는 취약한 데이터베이스 서버를 대상으로 유포되는 악성코드들을 지속해서 모니터링하고 있다. 윈도우 환경 기준으로 대부분의 공격이 MS-SQL 서버를 대상으로 발생하며 실제 자사 ASD 로그에서도 이를 확인할 수 있다. 다음과 같은 ASEC 블로그에서도 코발트 스트라이크, Remcos RAT, CoinMiner 등 다양한 공격 사례를 공개한 바 있다.

물론 상대적으로 소수이긴 하지만 윈도우 환경에서 동작 중인 MySQL 서버를 대상으로 하는 공격도 꾸준히 확인되고 있으며, 아래의 Gh0stCringe 악성코드는 MS-SQL 서버뿐만 아니라 MySQL 서버도 함께 공격한 사례가 있다.

[그림 1] Gh0stCringe RAT 생성 로그

자사 ASD 로그에 따르면 취약한 MySQL 서버를 대상으로 유포 중인 악성코드들로는 위의 Gh0stCringe를 포함한 Gh0st RAT 변종 악성코드들이 대부분을 차지하고 있다. 여기에서는 취약한 MySQL 서버를 대상으로 하는 공격 방식과 함께 최근 이러한 공격에 확인되고 있는 AsyncRAT 악성코드를 분석한다.

먼저 공격자들은 공격을 수행하기 위해 대상을 찾을 것이며 이를 위해 스캐닝을 수행할 것이다. 스캐너는 외부에 노출되어 있는 시스템들 중에서 MySQL 서버가 사용하는 3306/TCP 포트가 공개되어 있는 시스템을 찾는다. 이후 해당 시스템을 대상으로 무차별 대입 공격이나 사전 공격을 이용하면 부적절하게 계정 정보를 관리하고 있던 시스템일 경우 root 사용자 계정 정보를 획득할 수 있다.

일반적으로 MS-SQL 환경에서는 OS 명령을 실행할 수 있는 다양한 방식들이 제공된다. 대표적으로 xp_cmdshell 명령이 있으며 이외에도 OLE Stored Procedure, MS-SQL Agent Jobs, Extended Stored Procedure, CLR Stored Procedure 등의 방식이 존재한다. OS 명령 즉 cmd나 파워쉘을 이용해 사용자의 명령을 실행할 수 있다는 것은 해당 시스템에 대한 제어를 획득할 수 있다는 것을 의미한다.

다시 말하자면 데이터베이스 서버에 로그인할 수 있다면 윈도우 명령을 실행할 수 있고 나아가 해당 시스템에 대한 제어를 획득할 수 있다는 것이기 때문에 보안 정책 상 위의 기능들을 사용하기 위해서는 관리자 계정이어야 하며 이후 추가적인 보안 설정을 수정하는 작업이 필요하다.

MySQL은 MS-SQL처럼 xp_cmdshell과 같은 직접적인 OS 명령을 지원하지는 않지만 사용자 정의 함수(UDF : User Defined Function)이라고 하는 기능을 이용해 결국 공격자가 명령을 실행할 수 있다. UDF는 사용자가 원하는 기능을 DLL에 구현한 것이며 공격자는 악의적인 명령이 포함된 UDF 라이브러리 즉 DLL을 감염 시스템에 업로드한 후 MySQL 서버에 로드시킨다. 이후 정의한 명령을 실행하는 방식으로 감염 시스템에 악성 명령을 전달할 수 있다.

[그림 2] Metasploit의 UDF 공격 기능

다음은 Metasploit의 UDF 라이브러리 DLL 파일이 Export하는 함수들로서 명령 실행(sys_exec), 환경 변수 반환(sys_get)과 같은 기능들이 포함되어 있다.

[그림 3] Metasploit UDF 라이브러리가 제공하는 기능들

실제 공격 대상 시스템의 감염 로그를 보면 감염 시스템에는 AsyncRAT 악성코드 외에도 다음과 같은 악성 UDF DLL이 설치되어 있는 것이 확인된다. 이 악성코드는 간단하게 공격자로부터 전달받은 명령을 실행하는 기능이 전부이다.

[그림 4] 공격에 사용된 UDF DLL 악성코드

해당 악성코드는 과거부터 꾸준히 사용되는 악성코드로서 다수의 시스템에 감염 이력이 존재한다. 다음은 감염 로그에서 확인되는 경로명으로서 UDF가 기본적으로 설치되는 plugin 폴더에 생성된 이력을 확인할 수 있다.

%SystemDrive%\mysql 5.1\lib\plugin\djxjj.dll
%ProgramFiles%\mysql\mysql server 5.1\lib\plugin\gxpem.dll
%ProgramFiles%\mysql\mysql server 5.5\lib\plugin\nhhxt.dll
%ProgramFiles% (x86)\mysql\mysql server 5.4\lib\plugin\bggrt.dll

물론 해당 시스템이 취약한 환경이다 보니 이미 과거부터 다수의 공격자들에 의해 다양한 악성코드가 감염된 사례가 존재하기 때문에 AsyncRAT을 이용한 공격자가 직접 설치했는지와 같은 연관 관계는 확인할 수 없다.

공격에 사용된 AsyncRAT은 닷넷으로 개발된 오픈 소스 RAT 악성코드로서 C&C 서버로부터 공격자의 명령을 전달받아 원격 쉘, 키로깅, 계정 정보 탈취와 같은 다양한 악성 행위를 수행할 수 있다.

[그림 5] AsyncRAT 깃허브

AsyncRAT은 오픈 소스이다 보니 그 접근성만큼 다양한 방식으로 유포되고 있다. 최근에는 상용 소프트웨어의 크랙 프로그램을 위장하여 악성 사이트로부터 유포되는 것이 확인되고 있으며, 과거에는 스팸 메일을 통해 유포기도 했다. 이외에도 이전 ASEC 블로그에서 소개했던 디스코드를 통해 불법 음란물과 함께 유포된 사례도 존재한다.

[그림 6] 공격에 사용된 AsyncRAT의 설정 데이터

데이터베이스 서버(MS-SQL, MySQL 서버)를 대상으로 하는 공격에는 대표적으로 부적절하게 계정 정보를 관리하고 있는 시스템들에 대한 무차별 대입 공격(Brute Forcing)과 사전 공격(Dictionary Attack)이 있다. 일반적으로 이러한 방식들이 공격의 대부분을 차지하고 있는 것으로 보이지만, 이외에도 취약점이 패치되지 않은 시스템들에 대한 취약점 공격이 있을 수 있다.

이에 따라 관리자들은 계정의 비밀번호를 추측하기 어려운 형태로 사용하고 주기적으로 변경하여 무차별 대입 공격과 사전 공격으로부터 데이터베이스 서버를 보호해야 하며, 최신 버전으로 패치하여 취약점 공격을 방지해야 한다. 또한 외부에 공개되어 접근 가능한 데이터베이스 서버에 대해 방화벽과 같은 보안 제품을 이용해 외부 공격자로부터의 접근을 통제해야 한다. 위와 같은 조치가 선행되지 않을 경우 공격자 및 악성코드들에 의해 계속적인 감염이 이루어질 수 있다.

안랩 V3 제품에서는 해당 유형에 대해 다음과 같이 진단하고 있다.

[파일 진단]
– Trojan/Win32.RL_Generic.C4239825 (2020.11.26.01)
– Trojan/Win32.Inject.C500093 (2014.08.08.04)

[IOC]
MD5

AsyncRAT
– 46d552cd04ff2b41be06ba1478a97ced

UDF DLL
– f23b2905bf872b4a6495cecde290fd2d

다운로드 주소
AsyncRAT
– hxxp://154.19.203[.]208/Mini.exe

C&C
AsyncRAT

– 154.19.203[.]208:7707
– 154.19.203[.]208:8808
– 154.19.203[.]208:6606

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

Categories:악성코드 정보

Tagged as:, ,

0 0 votes
별점 주기
guest

1 댓글
Inline Feedbacks
View all comments
trackback

[…] 취약한 MySQL 서버를 대상으로 유포 중인 AsyncRAT 악성코드 […]