Home > 전체기사

관리 소홀한 MS-SQL 서버 대상 집중 공격하는 Netcat 악성코드 출현

  |  입력 : 2023-03-09 10:31
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기 네이버 블로그 보내기
공격 대상 시스템에 원격 쉘 제공해 시스템 제어권 획득 가능
무차별 대입 공격과 사전 공격으로부터 데이터베이스 서버 보호해야


[보안뉴스 김영명 기자] 최근 부적절하게 관리되고 있는 MS-SQL 서버를 대상으로 넷캣(Netcat) 악성코드가 유포되고 있는 것이 확인됐다. Netcat은 TCP/UDP 프로토콜로 연결된 네트워크상에서 특정 대상과 데이터를 송수신하게 해주는 유틸리티다. 리눅스뿐만 아니라 윈도 환경에서도 사용 가능하며, 다양한 기능들을 제공해 네트워크 관리자뿐만 아니라 공격자들도 여러 가지 방법으로 사용하고 있다.

[이미지=utoimage]


안랩 ASEC 분석팀에 따르면, 악성코드 관점에서 Netcat의 특징은 원격 쉘(Remote Shell)로서 사용 가능하다는 점이다. 원격 쉘은 공격 대상이 되는 시스템에 대한 쉘을 제공해 공격자가 공격 대상 시스템에 대한 제어를 획득할 수 있게 해준다. 예를 들어 윈도 환경에서는 명령 프롬프트를 통해 외부에 존재하는 공격자가 원하는 명령을 공격 대상 시스템에서 실행할 수 있다.

원격 쉘은 통신 방식에 따라 바인드 쉘(Bind Shell) 및 리버스 쉘(Reverse Shell)로 나뉜다. 바인드 쉘은 감염 시스템에서 특정 포트를 오픈하고 대기하며, 공격자가 해당 포트로 접속할 때 쉘을 제공하는 형태다. 또한, 리버스 쉘은 공격자의 시스템에서 특정 포트를 오픈하고 있다가 감염 시스템에서 해당 포트로 접속하는 형태다.

바인드 쉘은 간단하다는 장점이 있지만, 외부에서 연결하는 형태이다 보니 방화벽과 같은 보안 제품에서 쉽게 탐지가 가능하다. 또한, 사설망(NAT: Network Address Translation) 환경에서 동작할 경우 외부에서 접속이 불가능한 단점이 있다. 리버스 쉘은 최초 통신 과정에서 감염 시스템이 외부로 연결하는 형태이다 보니 이러한 문제점 없어 대부분의 공격에서는 리버스 쉘이 사용되고 있다.

무엇보다 Netcat(nc.exe) 악성코드를 이용해 바인드 쉘 및 리버스 쉘을 설치하는 명령이 가능하다는 점이다. 바인드 쉘을 예로 들자면 감염 시스템에서 특정 포트를 오픈하고 있다가 공격자가 접속할 경우 전달받은 패킷을 cmd 즉 명령 프롬프트에 전달하고 반대로 명령 프롬프트를 통해 실행된 명령의 출력 결과를 공격자의 주소로 다시 보내준다. 리버스 쉘은 최초 통신 방향만 다를 뿐 이후 과정은 동일하다.

▲Netcat을 이용해 원격에서 메모장 실행(바인드 쉘)[자료=안랩 ASEC 분석팀]


안랩 ASEC 분석팀에서는 부적절하게 관리되고 있는 MS-SQL 서버를 대상으로 하는 공격을 모니터링하고 있다고 밝혔다. 부적절하게 관리되고 있는 MS-SQL 서버라고 한다면 주로 외부에 노출돼 있으면서 계정정보를 단순하게 설정해 무차별 대입 공격이나 사전 공격에 취약한 환경을 말한다. 만약 공격자가 로그인에 성공할 경우 시스템에 대한 제어는 공격자에게 넘어가게 되며 악성코드를 설치하거나 악의적인 명령을 실행할 수 있다.

참고로 MS-SQL은 윈도 서버에서만 설치되는 것이 아니며, 데스크톱 환경에도 설치될 수 있다. 예를 들어 특정 ERP 및 업무용 솔루션을 설치할 경우 함께 설치되는 경우도 있기 때문에 MS-SQL 서버에 대한 공격은 윈도 서버뿐만 아니라 윈도 데스크톱 환경도 대상이 될 수 있다는 특징이 있다.

이번에 확인된 공격은 대량의 공격 캠페인과 달리 구체적인 공격 대상에 대해 공격이 성공할 때까지 다양한 도구들을 이용해 지속적인 시도를 한 것으로 알려졌다. 공격자는 ‘D:\DB\’ 경로에 다수의 악성코드들을 생성하고 실행했다. 사용되는 도구들 중에는 중국 개발자가 제작해 깃허브에 공개한 도구들이 대부분이다. 구체적인 공격자를 특정하기에는 부족한 정보이지만 최소한 공격자들이 중국어에 익숙하다는 특징은 확인할 수 있다.

▲설치된 악성코드 목록[자료=안랩 ASEC 분석팀]


공격자는 처음에는 코발트 스트라이크(CobaltStrike)들을 사용해 감염 시스템에 대한 제어를 획득하려고 시도했다. 하지만, V3 제품에 의해 코발트 스트라이크의 실행이 차단됨에 따라 정상적으로 동작하지 않았으며, 이후 다수의 코발트 스트라이크들을 추가로 제작해 공격했다. 공격자가 사용한 코발트 스트라이크는 HTTPS Stager로서 명령제어(C&C) 서버에서 실제 백도어인 비컨(beacon)을 다운로드해 메모리 상에서 실행하는 것으로 분석됐다.

▲코발트 스트라이크 설정[자료=안랩 ASEC 분석팀]


Stager가 다운로드한 코발트 스트라이크 비컨에 대해 SentinelOne 사의 CobaltStrikeParser 툴로 추출한 결과를 보면, 코발트 스트라이크 설치에 실패한 공격자는 이후 Netcat을 이용해 리버스 쉘을 설치하려고 시도했다. 어떻게 보면 훨씬 편하게 사용할 수 있는 도구인 코발트 스트라이크 대신 Netcat을 이용한 이유는 V3에 의해 지속적으로 차단돼 감염 시스템에 대한 제어 획득이 불가능해졌기 때문으로 추정된다.

설치된 악성코드들 중에는 RasmanPotato라고 하는 권한 상승 도구도 존재한다. RasmanPotato는 깃허브에 공개된 오픈소스 도구로서 RasMan 서비스를 이용해 권한을 상승시켜 주는 악성코드다.

▲RasmanPotato 오픈소스 도구[자료=안랩 ASEC 분석팀]


Potato 유형의 악성코드들로는 JuicyPotato, BadPotato, SweetPotato 등 다양한 종류가 있는데, 모두 현재 실행 중인 프로세스 계정의 토큰들 중 특정 권한을 악용하는 방식으로 권한을 상승시켜 주는 기능을 수행한다. Potato 악성코드들은 웹쉘이나 MS-SQL 서버를 대상으로 하는 공격에 주로 사용된다. 이는 해당 프로세스들이 취약점이나 부적절한 설정에 의해 공격자의 명령을 실행할 수 있다고 하더라도 기본 설정으로 낮은 권한을 갖고 실행 중임에 따라 해당 프로세스의 권한으로 실행되는 악성코드 또한 추가적인 악성 행위를 수행하는데 한계가 존재하기 때문이다.

RasmanPotato를 설치한 이후에는 정상적으로 권한 상승이 이루어졌는지 여부를 확인하기 위해 공격자가 다음과 같은 명령을 실행해 현재 프로세스의 권한을 확인하는 로그도 ‘> d:/db/rasman.exe –c whoami’로 확인된다.

SharpDecryptPwd는 계정 정보를 수집해 보여주는 커맨드 라인 도구다. 만약 감염 시스템에 Navicat, TeamViewer, FileZilla, WinSCP, Xmanager(Xshell, Xftp)와 같은 프로그램들이 설치돼 있고 사용자가 자주 사용하는 계정 정보를 저장해 설정 파일에 해당 정보들이 저장돼 있을 경우 이를 복호화해 보여줄 수 있다.

▲SharpDecryptPwd 커맨드 라인 도구[자료=안랩 ASEC 분석팀]


공격자는 Netcat으로 제어를 획득한 이후에는 Stowaway라고 하는 프록시 도구를 설치했다. 공격자들은 주로 외부에서 직접 접근하기 어려운 내부망 환경에 접근하기 위해 프록시 도구들을 설치하는 경향이 있다. 공격자는 감염 시스템이 속한 네트워크 존재하는 다른 시스템들을 추가로 공격할 목적으로 Sowaway를 설치한 것으로 보인다는 게 안랩 ASEC 분석팀의 설명이다.

공격자는 Netcat with LOLBins 기법을 사용했다. 공격자는 코발트 스트라이크 설치에 실패한 이후 Netcat을 설치해 감염 시스템을 제어하려고 시도했다. 구체적으로 리버스 쉘 방식으로 Netcat을 실행했으며, 정상적으로 실행될 경우 공격자는 cmd 즉 명령 프롬프트를 통해 악의적인 명령을 실행할 수 있게 된다.

▲MS-SQL 프로세스에 의해 실행된 Netcat(리버스 쉘)[자료=안랩 ASEC 분석팀]


하지만 공격자가 실행한 Netcat 명령은 차단돼 정상적으로 동작하지 않았다. 공격자는 이후 C&C 서버와의 통신한 다음, 쉘 즉 cmd 대신 ftp를 실행시키는 형태로 Netcat을 동작시켰다. 일반적으로 Netcat의 e 옵션에는 cmd가 사용되는데, 원격 쉘로서 동작하기 위해서는 C&C 서버와의 통신을 쉘의 기능을 담당하는 프로그램으로 전달해야 하기 때문이다.

구체적인 패킷은 확인되지 않지만 공격자는 LOLBins(Living Off the Land Binaries and Scripts) 기법으로서 FTP를 사용한 것으로 추정된다. LOLBins는 운영체제에 기본적으로 존재하는 도구로, 다른 악성코드를 실행하거나 다운로드하는 등 악의적인 행위로 사용할 수 있는 도구들을 말한다. 최근 보안제품에서는 파일 기반의 진단 외에도 행위를 기반으로 하는 진단 기능을 제공하는데, 단순한 형태로 실행될 경우에는 그만큼 쉽게 탐지될 수 있다. 이에 따라 공격자들은 LOLBins를 악용해 악성코드를 실행하거나 다운로드를 통해 이러한 행위 기반의 보안 제품을 우회할 수 있다.

최근 부적절하게 관리되고 있는 MS-SQL 서버를 대상으로 Netcat을 이용한 공격 사례가 확인됐다. 공격자는 감염 시스템에 대한 제어를 획득하기 위해 코발트 스트라이크뿐만 아니라 Netcat을 공격에 사용했으며, 이외에도 권한 상승 및 정보 탈취, 프록시 도구 등 다양한 악성코드들을 추가로 설치한 것으로 드러났다.

MS-SQL 서버를 대상으로 하는 공격에는 대표적으로 부적절하게 계정 정보를 관리하고 있는 시스템들에 대한 무차별 대입 공격(Brute Forcing)과 사전 공격(Dictionary Attack)이 있다. 관리자들은 계정의 비밀번호를 추측하기 어려운 형태로 사용하고 주기적으로 변경해 무차별 대입 공격과 사전 공격으로부터 데이터베이스 서버를 보호해야 한다.

이와 관련 안랩 ASEC 분석팀은 “안티 바이러스 솔루션을 최신 버전으로 업데이트해 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다”고 당부했다. 또한, “외부에 공개돼 접근 가능한 데이터베이스 서버에 대해 방화벽과 같은 보안제품을 이용해 외부 공격자로부터의 접근을 통제해야 한다”고 덧붙였다.
[김영명 기자(boan@boannews.com)]

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

  •  
  • 0
  • 페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기 네이버 블로그 보내기

  •  SNS에서도 보안뉴스를 받아보세요!! 
아스트론시큐리티 파워비즈 2023년2월23일 시작 시큐아이 위즈디엔에스 2018
설문조사
오픈AI가 개발한 인공지능 챗봇 챗GPT가 GPT4 버전까지 나오면서 디지털 혁신의 촉매재 역할을 하고 있습니다. 보안 분야에서도 챗GPT로 인해 보안위협이 가속화될 것이라는 전망과 함께 보안업무에 효과적으로 활용된다면 보안대응 역량 향상에도 크게 기여할 것이라는 의견도 제기됩니다. 이에 대한 여러분들의 생각은 어떠신가요?
챗GPT 악용으로 인해 보안위협이 더욱 고도화되고 증가할 것
챗GPT를 악용하는데 한계가 있어 보안위협이 소폭 늘어나는 추세에 그칠 것
챗GPT 활용에 따라 보안대응 업무에 적지 않은 도움이 될 것
챗GPT의 적극적인 도입 및 적용 통해 보안대응 역량이 획기적으로 향상될 것
보안위협 또는 보안대응과 관련해서는 큰 영향이 없을 것
기타(댓글로)