보안 이슈
HOME > 알림터 > 보안 이슈
취약한 MS-SQL 서버에 설치되는 악성코드 주의!

취약한 MS-SQL 서버에 설치되는 악성코드 주의!

안랩 분석팀이 최근 MS-SQL 서버 대상 공격을 모니터링하던 중 타깃컴퍼니(TargetCompany) 랜섬웨어 그룹이 말록스(Mallox) 랜섬웨어를 설치한 정황을 확인했다. 타깃컴퍼니 랜섬웨어 그룹은 부적절하게 관리되는 MS-SQL 서버를 대상으로 렘코스 RAT(Remcos RAT) 및 원격 화면 제어 악성코드와 말록스 랜섬웨어를 설치하는 것으로 알려졌다. 이번 글에서는 타깃컴퍼니 그룹의 MS-SQL 서버 공격 사례를 집중적으로 살펴본다.



이번 사례에서 사용된 공격 방식은 무차별 대입 및 사전 공격인 것으로 추정된다. 공격자는 SA 계정에 로그인한 후 렘코스 RAT(Remcos RAT)을 설치하고, 공격 수행 시점으로부터 4시간 후 원격 화면 제어 악성코드를 추가로 설치했다. 또 다른 시스템에서는 공격을 개시한 지 29시간이 지난 후 말록스 랜섬웨어를 추가 설치해 감염 대상 시스템 암호화를 시도했다.


먼저, 렘코스 RAT(Remote Access Trojan)은 다른 RAT 악성코드와 같이 키로깅, 스크린샷 캡쳐, 웹 캠 및 마이크 제어뿐만 아니라 시스템에 존재하는 웹 브라우저의 히스토리 및 비밀번호 추출 등 악의적으로 사용 가능한 기능들을 지원하기 때문에 많은 공격자가 사용한다.


[그림 1] 과거 버전의 렘코스가 지원하는 기능들


렘코스 RAT은 스팸 메일의 첨부 파일이나 크랙을 위장하는 방식으로 유포되는 경우도 많지만, 부적절하게 관리되는 MS-SQL 서버를 공격할 때도 감염 대상 시스템을 제어하려는 목적으로 침투 테스팅 툴인 코발트 스트라이크(Cobalt Strike)와 함께 자주 사용된다. 작년 5월에는 보안 제품의 탐지를 우회하기 위해 MS-SQL 서버를 장악한 후, 파워쉘(Power Shell) 대신 SQLPS(SQL Server PowerShell) 유틸리티를 악용하기도 했다.


이번에도 공격자는 악성코드를 설치하는 과정에서 SQLPS 툴을 사용했다.


[그림 2] SQLPS를 통해 설치되는 렘코스 RAT


공격에 사용된 렘코스 RAT은 4.9.3 라이트(Light) 버전이다. 라이트 버전은 프로(Pro) 버전과 달리 키로깅이나 스크린샷 캡처 등의 기능을 지원하지 않는다. [그림 3]은 렘코스 RAT에서 실행 중 복호화된 설정 데이터를 보여준다.


[그림 3] 렘코스 RAT 실행 중 복호화된 설정 데이터


설정

데이터

Host:Port:Password

80.66.75[.]238:3388:1

Assigned name

RemoteHost

Connect interval

1

Mutex

Rmc-8P1R4F

Keylog flag

Disabled

Keylog path

Application path

Keylog file

logs.dat

Screenshot flag

Disabled

Screenshot time

10

Screenshot path

AppData

Screenshot file

Screenshots

Audio record time

5

Audio folder

MicRecords

Copy folder

Remcos

Keylog folder

remcos

[표 1] 렘코스 RAT의 설정 데이터 일부


공격자는 렘코스 RAT을 통해 추가 악성코드를 설치했는데, 처음 설치된 것은 애니데스크(AnyDesk)와 추가한 사용자 계정으로 감염 대상 시스템을 제어할 수 있는 악성코드였다. 이는 공격에 사용한 렘코스가 라이트 버전인 것을 감안해, 원격 제어를 보다 더 원활하게 하기 위함인 것으로 보인다.


앞서 언급한 것처럼, 공격자가 최초로 공격을 수행한 후 렘코스 RAT에 의해 처음 설치되는 원격 화면 제어 악성코드다. 이 악성코드는 먼저 C&C 서버의 “creds” 주소에 접속해 문자열을 다운로드한다. 당시 공격자는 “ID;PW” 포맷의 문자열을 다운로드할 수 있었을 것으로 추정된다. 공격자는 해당 문자열의 ID와 비밀번호로 사용자 계정을 추가하고, 관리자 그룹으로 등록한다.


URL

설명

https://{C&C서버}/creds

추가할 사용자 계정 문자열 다운로드 (ID;PW 포맷)

https://{C&C서버}/secret

AnyDesk 설치 시 지정할 비밀번호 문자열 다운로드

https://{C&C서버}/desk

AnyDesk 설치 파일 다운로드 (MSI)

https://{C&C서버}/gate/{AnyDesk_ID}

설치한 AnyDesk의 ID 전송

[표 2] C&C 서버와의 통신 방식


이후 “secret” 주소에 접속해 문자열을 다운로드하는데, 이는 애니데스크 설치 이후 지정할 비밀번호다. 또한, Program Files 경로에서 “\AnyDeskMSI\AnyDeskMSI.exe” 파일이 존재하는지 확인한다. 애니데스크가 설치돼 있지 않은 경우 “desk” 주소에서 MSI(Microsoft Intune) 포맷의 애니데스크 설치 파일을 다운로드하고 설치한다. 여기까지의 과정이 끝나면, C&C 서버에서 다운로드한 비밀번호를 애니데스크에 설정하고, 설치한 애니데스크의 ID를 구한다. 그런 다음, 공격자는 이 ID를 “gate” 주소에 전달한다.


[그림 4] Pipe를 통해 애니데스크 프로세스에 인자를 전달하는 방식


인자

설명

–start-service

AnyDesk 서비스 시작

–set-password

AnyDesk에 비밀번호 설정

–restart-service

AnyDesk 서비스 재시작

–get-id

설치된 AnyDesk의 ID 구하기

[표 3] 애니데스크 설치 과정에서 사용되는 인자


공격자는 C&C 서버로 전달받은 애니데스크의 ID를 이용해 감염 대상 시스템에 접근하고, “secret”으로 전달한 비밀번호로 인증해 감염 대상 시스템을 제어할 수 있었을 것으로 보인다. 또한, 추가한 계정 정보로 감염 대상 시스템에 RDP(Remote Desktop Protocol), 즉, 원격 데스크톱으로 로그인해 원격 화면 제어도 가능했을 것이다.


[그림 5] 애니데스크로 감염 대상 시스템에 로그인하는 과정


그 다음으로, 말록스 랜섬웨어는 트리고나(Trigona), 블루스카이(BlueSky) 랜섬웨어와 같이, 부적절하게 관리되는 MS-SQL 서버를 공격하는 대표적인 랜섬웨어 중 하나다.


개요

설명

암호화 알고리즘

AES-256 / SHA-256,AES-128-CTR [5]

암호화 확장자

“.rmallox”

랜섬 노트 이름

“HOW TO BACK FILES.txt”

우선순위 암호화 확장자

“.bak”, “.zip”, “.rar”, “.7z”, “.gz”, “.sql”, “.mdf”, “.hdd”, “.vhd”, “.vdi”, “.vmx”, “.vmdk”, “.nvram”, “.vmem”, “.vmsn”, “.vmsd”, “.vmss”, “.lck”, “.vhdx”, “.vhd”, “.dbf”, “.ora”, “.oraenv”, “.dmp”, “.ibd”, “.mdb”, “.smd”, “.mdb”

암호화 제외 경로

“msocache”, “$windows.~ws”, “system volume information”, “intel”, “appdata”, “perflogs”, “programdata”, “google”, “application data”, “tor browser”, “boot”, “$windows.~bt”, “mozilla”, “boot”, “windows.old”, “Windows Microsoft.NET”, “WindowsPowerShell”, “Windows NT”, “Windows”, “Common Files”, “Microsoft Security Client”, “Internet Explorer”, “Reference”, “Assemblies”, “Windows Defender”, “Microsoft ASP.NET”, “Core Runtime”, “Package”, “Store”, “Microsoft Help Viewer”, “Microsoft MPI”, “Windows Kits”, “Microsoft.NET”, “Windows Mail”, “Microsoft Security Client”, “Package Store”, “Microsoft Analysis Services”, “Windows Portable Devices”, “Windows Photo Viewer”, “Windows Sidebar”

암호화 제외 파일

“desktop.ini”, “ntuser.dat”, “thumbs.db”, “iconcache.db”, “ntuser.ini”, “ntldr”, “bootfont.bin”, “ntuser.dat.log”, “bootsect.bak”, “boot.ini”, “autorun.inf”, “debugLog.txt”, “TargetInfo.txt”

암호화 제외 확장자

“.msstyles”, “.icl”, “.idx”, “.avast”, “.rtp”, “.mallox”, “.sys”, “.nomedia”, “.dll”, “.hta”, “.cur”, “.lock”, “.cpl”, “.Globeimposter-Alpha865qqz”, “.ics”, “.hlp”, “.com”, “.spl”, “.msi”, “.key”, “.mpa”, “.rom”, “.drv”, “.bat”, “.386”, “.adv”, “.diangcab”, “.mod”, “.scr”, “.theme”, “.ocx”, “.prf”, “.cab”, “.diagcfg”, “.msu”, “.cmd”, “.ico”, “.msc”, “.ani”, “.icns”, “.diagpkg”, “.deskthemepack”, “.wpx”, “.msp”, “.bin”, “.themepack”, “.shs”, “.nls”, “.exe”, “.lnk”, “.ps1”, “.rmallox”

종료 대상 프로세스

참고 자료에 정리

종료 대상 서비스

참고 자료에 정리

C&C 주소

hxxp://91.215.85[.]142/QWEwqdsvsf/ap.php

기타

볼륨 쉐도우 삭제. 종료 기능 비활성화.

[표 4] 말록스 랜섬웨어


말록스 랜섬웨어는 다음 명령들을 사용해 볼륨 쉐도우 복사본(Volume Shadow Copy)를 삭제하고, 윈도우 복구 관련 기능을 비활성화한다.


> cmd.exe /c bcdedit /set {current} bootstatuspolicy ignoreallfailures
> cmd.exe /c bcdedit /set {current} recoveryenabled no
> vssadmin.exe delete shadows /all /quiet


그리고 데이터베이스나 가상화, 백업 솔루션 등 파일 암호화에 방해되는 프로세스 및 서비스를 강제로종료한다. 말록스는 이 외에도 다음과 같은 레지스트리 키를 설정해 종료, 재부팅, 로그아웃 버튼을 비활성화하고 로그온 화면에서 종료 기능을 비활성화하는 등 암호화 과정에서 사용자가 시스템의 전원을 끄거나 재부팅하는 것을 방해한다.


설정 대상 레지스트리

설명

HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown / value / 0x00000001
HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideRestart / value / 0x00000001
HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideSignOut / value / 0x00000001

종료, 재부팅, 로그아웃 버튼 비활성화

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System / shutdownwithoutlogon / 0x00000000

로그온 화면에서 종료 기능 비활성화

HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services / MaxConnectionTime / 0x00000000
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services / MaxDisconnectionTime / 0x00000000
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services / MaxIdleTime / 0x00000000

원격 데스크톱 연결 제한

[ 5] 레지스트리 수정


말록스는 공유 폴더에 접근해 자신을 전파하는 기능을 지원하며, 감염 대상 시스템의 기본적인 정보를수집하고, C&C 서버에 전송한다.


[ 6] C&C 서버에 전송하는 데이터


여기까지의 과정이 끝나면 다음과 같은 랜섬노트를 생성하고, 시스템의 파일을 암호화한다.


[ 7] 말록스의 랜섬노트


결론

이처럼 최근 취약한 MS-SQL 서버에 렘코스 RAT, 원격 화면 제어 악성코드뿐만 아니라 말록스 랜섬웨어를 설치하는 공격 사례가 지속적으로 확인되고 있다. 말록스 랜섬웨어 공격자들은 수익을 위해 감염 대상 시스템을 암호화하고, 민감한 정보를 탈취해 협박하는 방식을 사용한다. 이 외에도 자격 증명 정보 탈취 및 측면 이동을 위한 다양한 수법을 사용하기 때문에 기업 내부망 전체가 장악돼 민감한 정보가 탈취되고, 네트워크 내 시스템이 암호화될 수 있다.


이번 사례에서도 MS-SQL 서버를 공격하는 과정에서 무차별 대입 공격(Brute Forcing)과 사전 공격(Dictionary Attack)이 사용된 점을 고려하면, 계정의 비밀번호를 추측하기 어려운 형태로 사용하고, 주기적으로 변경해 이들 공격으로부터 데이터베이스(DB) 서버를 안전하게 보호해야 한다.


또한, V3를 최신 버전으로 업데이트해 악성코드 감염을 사전에 차단할 수 있도록 신경 써야 한다. 그리고 외부에 공개돼 접근 가능한 데이터베이스 서버에 대해 방화벽과 같은 보안 제품을 이용해 외부 공격자의 접근을 통제해야 한다. 이런 조치가 선행되지 않는다면, 공격자 및 악성코드 감염은 지속적으로 이루어질 수밖에 없다.


자세한 내용은 ASEC 블로그를 통해 확인할 수 있다.

ASEC 블로그 바로가기

AhnLab 2024-04-23

2,146