목차
- 개요
- 주요 목표
- 영향을 받는 산업
- 지리적 초점
- 감염 사슬
- 초기 발견
- 미끼 문서를 살펴보겠습니다.
- 기술 분석
- 1단계 – LNK 파일을 통한 초기 감염
- 2단계 – PowerShell 다운로더 분석
- 3단계 – .NET 드로퍼 – Document.exe 분석
- 4단계 – 미끼 전달 및 SheetAgent RAT 분석
- 인프라 및 속성
- 맺음말
- SEQRITE 보호
- 침해 지표(IOC)
- MITRE ATT&CK 매핑
- 작성자
개요
The Seqrite APT 연구팀은 전 세계 조직과 개인을 대상으로 하는 위협 캠페인을 지속적으로 모니터링하고 있습니다. 최근 위협 탐지 활동 중, 인도 정부 공무원 채용 지원자를 노리는 정교한 캠페인을 발견했습니다. 공격자는 인도 내각 사무국에서 진행 중인 고위직 공무원 채용 공고를 미끼로 삼아 잠재적 피해자들을 유인했습니다.
이 악성코드는 감염 과정에 사용되는 여러 파일(악성 LNK 바로가기, PowerShell 스크립트, 실행 파일 등)이 포함된 ZIP 파일을 통해 유포됩니다. 공격자는 감염 과정의 일부로 정식 ControlR RMM 도구와 Google 서비스도 악용합니다.
이 블로그에서는 SheetAgent RAT으로 명명한 최종 페이로드에 대한 완전한 기술 분석을 진행합니다. 여기에는 Google Drive 및 Google Sheets와의 통신에 사용된 토큰과 키가 포함됩니다. 또한 여러 패널을 호스팅하는 캠페인 인프라도 살펴볼 것입니다. 마지막으로, 관찰된 기술을 MITRE ATT&CK 프레임워크에 매핑하고 이러한 결과를 바탕으로 캠페인 배후의 위협 행위자를 추정해 보겠습니다.
주요 목표
영향을 받는 산업
- 정부/공공부문
- 교육 및 학계
- 기술 및 소프트웨어
지리적 초점
- India
감염 사슬

초기 발견
The Seqrite 저희 팀은 인도를 대상으로 하는 위협을 추적해 왔으며, 최근 인도 정부와 채용 업계를 특별히 표적으로 삼는 악성코드 캠페인을 발견했습니다. 위협 탐지 활동 중, 'Approved Documents 2026.pdf.zip'이라는 이름의 ZIP 압축 파일을 발견했습니다. 처음에는 문서 검증 파일처럼 보였지만, 압축 파일 내용을 분석한 결과 서로 다른 유형의 파일 세 개를 발견했습니다.

해당 압축 파일에는 Document.exe, Document-24062026-Y6352634.lnk 및 JT-agenda.ps1 파일이 포함되어 있었습니다.
초기 감염은 LNK 파일에서 시작되는데, 이 파일은 합법적인 문서처럼 보이도록 Microsoft Edge 브라우저 아이콘으로 위장되어 있습니다. 또한 LNK 파일은 PowerShell 스크립트(JT-agenda.ps1)를 실행하고, 이 스크립트는 다시 실행 파일(Document.exe)을 실행하는 것을 확인했습니다. Document.exe에 대해서는 다음 섹션에서 자세히 분석하겠습니다.
이 섹션에서는 캠페인에 사용된 미끼 문서를 살펴보겠습니다. 이 문서는 감염 2단계에서 공격자의 명령 및 제어(C2) 서버에서 다운로드되며, 악성코드가 백그라운드에서 실행되는 동안 피해자의 주의를 분산시키기 위한 것입니다.
미끼 문서를 살펴보겠습니다.

이 캠페인에 사용된 미끼 문서는 공격자의 IP 주소(38[.]242[.]157[.]89)로 연결되는 의심스러운 도메인에 호스팅되어 있습니다. 이 문서는 정부 일자리 및 진로 관련 공지를 게재하는 유명 인도 신문의 '고용 뉴스'를 스캔한 것처럼 보입니다. 헤더에는 공식 웹사이트 주소인 www.employmentnews.gov.in이 표시되어 있으며, 발행일은 2026년 6월 13일부터 19일까지입니다.

이 위장 광고는 인도 정부 내각 사무국에서 채용하는 선임 현장 담당관(기술) 직책에 대한 공고입니다. 자격 기준, 학력 요건, 연령 제한, 채용 인원, GATE 점수 요건, 지원 방법 및 지원 마감일과 같은 자세한 정보가 포함되어 있습니다.
다음 섹션에서는 캠페인에 사용된 파일의 기술적 측면을 분석하고 분석 과정에서 확인된 전술, 기술 및 절차(TTP)를 기반으로 위협 행위자를 식별합니다.
기술 분석
기술적 분석은 네 단계로 나누어 진행합니다. 먼저 악성 LNK 파일을 분석하고, 그 다음 PowerShell 스크립트를 분석합니다. 이어서 .NET 로더(Document.exe)를 검사하고, 마지막으로 드롭된 파일인 Document.lnk와 SheetAgent(agent.exe)를 분석합니다.
1단계 – LNK 파일을 통한 초기 감염
Approved Documents 2026.pdf.zip 파일의 압축을 푼 후, 피해자에게는 Document-24062026-Y6352634.lnk 파일 하나만 보이는 것을 확인했습니다. 나머지 두 파일인 Document.exe와 JT-agenda.ps1은 숨김 파일 속성이 설정되어 있어 Windows 파일 탐색기의 기본 설정에서는 보이지 않았습니다.

LNK 파일을 분석한 결과, 설명이 "ControlR 에이전트 설치"로 설정되어 있는 것을 확인했는데, 이는 ControlR 에이전트가 설치되는 감염 후반 단계와 일치합니다. 앞서 언급했듯이, 공격자들은 파일이 정상적인 것처럼 보이게 하기 위해 기본 LNK 아이콘을 Microsoft Edge 브라우저 아이콘으로 바꿔놓았습니다.
LNK 파일에 포함된 명령어를 살펴보니, powershell.exe를 호출하여 JT-agenda.ps1 스크립트를 실행하는 것을 확인했습니다. 해당 스크립트는 숨김 모드 및 비대화형 모드로 실행됩니다.
2단계 – PowerShell 다운로더 분석

LNK 파일은 감염의 두 번째 단계인 JT-agenda.ps1 스크립트를 실행합니다. 스크립트를 분석한 결과, 다음과 같은 내용이 포함되어 있음을 확인했습니다. powershell.exe -EncodedCommand 매개변수를 통해 긴 Base64 인코딩된 명령어를 제공합니다.

내장된 명령어를 해독한 결과, 해당 스크립트는 demo.controlr.app 서버에서 ControlR 에이전트 설치 프로그램을 다운로드하여 피해자의 임시 디렉터리에 저장하는 것을 확인했습니다. 다운로드가 완료되면, 미리 정의된 설치 매개변수 세트를 사용하여 설치 프로그램이 실행되고, 피해자의 컴퓨터가 공격자의 ControlR 인스턴스에 자동으로 등록됩니다.
해당 명령어에는 세 가지 중요한 등록 매개변수가 포함되어 있습니다.
임차인 ID (d5eab065-bbe2-4178-9574-1cbac7e40c64)
키 시크릿 (o3EdUNCztAZN8JOdSsTmezkOYz6tqnJgAHryon2ysg5vVhVDGNPJlKwUJCu826JRbmEMt-EqLKN1QbFwvBLHZw)
키 ID (319fe2d0-027e-4435-8b29-52af76a1972b)

다운로드한 실행 파일을 분석한 결과, 해당 파일은 Bitbound에서 디지털 서명한 정식 ControlR 설치 프로그램임을 확인했습니다. 공격자들은 이 정식 원격 관리 소프트웨어를 악용하여 피해자의 시스템에 지속적인 원격 접근 권한을 확보합니다.
분석 결과, ControlR 설치 프로그램을 실행할 경우 피해자의 시스템이 공격자의 ControlR 인스턴스에 등록되어 지속적인 원격 접근이 가능해질 수 있습니다. 등록이 완료되면 공격자는 시스템을 원격으로 제어하고, 명령을 실행하고, 파일을 전송하고, 피해자의 활동을 모니터링할 수 있습니다.
ControlR 에이전트를 설치한 후 PowerShell 스크립트는 이전에 압축 해제한 Document.exe 파일을 실행하며, 이 파일은 다음 단계에서 분석합니다.
3단계 – .NET 드로퍼 – Document.exe 분석
감염의 세 번째 단계는 실행으로 시작됩니다. Document.exe이는 PowerShell 스크립트에 의해 실행됩니다.

Detect It Easy(DIE)를 이용한 Document.exe의 초기 분석 결과, 해당 파일은 32비트 .NET 실행 파일인 것으로 나타났습니다. 이후 dnSpy를 사용하여 해당 바이너리의 기능을 추가적으로 분석했습니다.

Document.exe는 실행 후 %APPDATA%\Microsoft\WinSyncDefender\라는 디렉터리를 생성합니다. 이 폴더 이름은 정상적인 Windows 구성 요소와 매우 유사하며, 감염의 후반 단계에 필요한 파일을 저장하는 데 사용됩니다.

해당 바이너리는 자체 내에서 두 개의 내장 리소스를 추출합니다. 하나는 최종 페이로드 역할을 하는 agent.exe이고, 다른 하나는 미끼 문서를 표시하는 데 사용되는 Document.lnk입니다. 이 리소스들은 실행 파일 내부에 내장되어 있으며 런타임 중에 새로 생성된 디렉터리에 기록됩니다.
분석 결과, 해당 악성코드는 두 가지 서로 다른 방법을 사용하여 피해자가 시스템에 로그인할 때마다 최종 페이로드가 실행되도록 지속성을 확보하는 것으로 확인되었습니다.

주요 지속성 메커니즘은 정상적인 Windows 서비스와 유사하게 보이는 WindowsDefenderSyncService라는 Windows 예약 작업을 이용하는 것입니다. 이 악성 프로그램은 사용자가 로그인할 때마다 agent.exe를 실행하고 이후 3분마다 실행하도록 구성된 작업을 동적으로 생성합니다. 작업을 등록하기 위해 악성 프로그램은 임시 XML 구성 파일을 생성하고 schtasks.exe를 사용하여 이를 가져옵니다.
예약된 작업을 생성할 수 없는 경우, 악성 프로그램은 Windows 시작 폴더를 이용하는 두 번째 지속성 메커니즘을 사용합니다. 이 메커니즘을 통해 숨겨진 agent.exe 파일을 가리키는 WindowsDefenderSync.lnk라는 바로가기를 생성하여 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\ 폴더에 배치합니다. 결과적으로 사용자가 로그인할 때마다 악성 프로그램이 자동으로 실행됩니다.

이 악성 프로그램은 WScript.Shell을 사용하여 LNK 파일을 생성하는 임시 VBScript를 생성합니다. 바로가기 아이콘은 정상적인 서비스처럼 보이도록 "Windows Netlogon 시스템 동기화 서비스"라는 설명으로 지정됩니다. 바로가기 아이콘이 생성되면 wscript.exe를 통해 VBScript가 실행된 후 삭제됩니다.
다음으로, .NET 실행 파일이 드롭하는 agent.exe와 Document.lnk 두 파일을 분석하여 그 기능을 이해해 보겠습니다.
4단계 – 미끼 전달 및 시트에이전트 분석
agent.exe와 Document.lnk라는 두 파일은 감염 과정의 최종 단계를 나타내며, 각각 다른 목적을 가지고 있습니다. 먼저 Document.lnk 파일의 내용을 분석해 보겠습니다.

Document.lnk 파일은 피해자에게 위장 문서를 표시하는 역할을 합니다. 이 파일은 powershell.exe를 실행하여 명령 및 제어 서버(38[.]242[.]157[.]89)에서 위장 PDF 파일을 다운로드하고 사용자의 임시 디렉터리에 document.pdf라는 이름으로 저장합니다. 그런 다음 피해자의 화면에 해당 PDF 파일을 즉시 엽니다. 위장 문서 분석에서 논의된 바와 같이, 이 PDF 파일은 인도 정부 공무원 채용 공고로 위장하여 인도 정부 공무원 구직자를 대상으로 설계되었습니다.

.NET 로더가 드롭하는 두 번째 파일은 agent.exe이며, 이를 SheetAgent라고 명명했습니다. 로더는 피해자 시스템에 압축을 푼 후 파일 이름을 WindowsDefenderSyncService.exe로 변경하고 실행합니다. 이 실행 파일은 공격자의 백업 명령 및 제어 채널 역할을 하는 맞춤형 .NET 기반 원격 액세스 트로이목마(RAT)입니다.

SheetAgent는 먼저 Google Sheets에 인증하는 단계를 거칩니다. 이 악성코드는 프로젝트 ID, 서비스 계정 이메일 주소, 개인 키 ID, 그리고 전체 RSA 개인 키를 포함한 Google 서비스 계정 자격 증명을 바이너리에 직접 하드코딩합니다. 이러한 자격 증명을 사용하여 Google Sheets 및 Google Drive API에 접근할 수 있는 권한을 가진 SheetsService 객체를 생성합니다. 인증이 완료되면 공격자가 제어하는 Google Sheets 문서에 연결하는데, 이 문서는 악성코드의 백업 명령 및 제어(C2) 서버 역할을 합니다.
분석 결과, 해당 악성 프로그램은 바이너리에 직접 내장된 고정된 Google Sheets 레이아웃에 의존하는 것으로 나타났습니다. 각 열에는 악성 프로그램의 명령 및 제어(C2) 채널 역할을 하는 특정 기능이 할당되어 있습니다.
| 단 | 기술설명 |
| A | 피해자의 컴퓨터 이름을 저장합니다. |
| B | 현재 타임스탬프를 기록합니다. |
| C | 공격자가 실행한 명령이 포함되어 있습니다. |
| D | 실행된 명령의 출력을 저장합니다. |
| E | 피해자의 공용 IP 주소를 저장합니다. |
| F | 에이전트의 현재 상태(예: 온라인 또는 오류)를 저장합니다. |
| H | 알림에 사용됩니다. |
| J | URL 모니터링 목록을 읽습니다. |
악성 프로그램은 Google Sheets 문서를 사용하여 감염된 모든 시스템을 추적합니다. 처음 실행될 때 이 프로그램은 다음을 확인합니다. 열 A 피해자의 컴퓨터 이름을 입력합니다. 시스템이 이미 목록에 있으면 악성 프로그램은 같은 행을 계속 사용합니다. 그렇지 않으면 스프레드시트에서 사용 가능한 다음 행을 사용하여 피해자를 등록합니다. 이 행은 감염 기간 내내 사용되며, 악성 프로그램은 공격자가 Google Sheets에 작성한 명령어를 지속적으로 읽어 피해자의 컴퓨터에서 실행하고 실행 결과를 다시 같은 행에 기록합니다.
분석 결과 agent.exe에는 일련의 분석 방지 기법이 포함되어 있는 것으로 나타났습니다.

해당 악성코드는 IsRunningInVirtualMachine() 함수를 통해 여러 검사를 결합합니다. 이 악성코드는 총 14가지의 서로 다른 가상화 탐지 기법을 수행합니다.
이 프로그램은 WMI를 사용하여 시스템 제조업체 및 BIOS 정보를 확인하고, 가상화 관련 디스크 드라이브 및 그래픽 어댑터를 찾고, VMware 및 VirtualBox 프로세스를 검색하고, 가상화 관련 레지스트리 키를 검사하고, 가상 머신과 연결된 MAC 주소 접두사를 확인하고, VM별 드라이버 및 설치 디렉터리를 확인합니다.
이 악성 프로그램은 분석 환경에서 흔히 사용되는 사용자 이름을 찾고, Any.Run 및 Triage와 같은 샌드박스 관련 아티팩트를 검색하며, 가상화 관련 장치 및 서비스를 탐지합니다.
이러한 검사 중 하나에서 분석 환경이 감지되면 악성 프로그램은 실행을 계속하는 대신 정리 루틴으로 전환합니다.

정리 루틴은 %TEMP% 디렉터리에 cleanup.bat이라는 임시 배치 파일을 생성합니다. 잠시 후, 스크립트는 악성코드 실행 파일을 강제로 삭제하고, 구성 파일(service.json)을 제거하고, 배치 파일 자체를 삭제한 후 종료됩니다.
인프라 및 속성
조사 과정에서 우리는 공격자들이 사용한 인프라도 살펴보았습니다. 그 결과, 공격자들은 악성코드를 배포하고, 위장 문서를 호스팅하며, 감염된 시스템과 통신하기 위해 자체 서버와 합법적인 클라우드 서비스를 혼합하여 사용한 것을 발견했습니다.
조사 과정에서 저희는 SheetAgent RAT(agent.exe)에 내장된 하드코딩된 Google 서비스 계정 자격 증명을 사용하여 악성코드가 사용하는 Google Workspace 리소스에 인증했습니다. 이를 통해 서비스 계정을 통해 접근 가능한 Google Drive 콘텐츠를 분석할 수 있었습니다.
서비스 계정(service@sheet12-500308.iam.gserviceaccount.com)은 Google Cloud 프로젝트 sheet12-500308에 속하며 Google Sheets와 Google Drive 모두에 접근할 수 있는 권한을 가지고 있습니다. 해당 계정을 조사하는 과정에서 루트 디렉터리에 R-MSI-00-15-5d-9b-ea-f9와 Data라는 두 개의 폴더가 있는 것을 확인했습니다. 하지만 조사 당시 두 폴더 모두 비어 있었고, 그 안에 추가 파일이나 기타 흔적은 발견되지 않았습니다.
조사 과정에서 저희는 이번 캠페인에 사용된 Google Workspace 인프라와 연결된 Gmail 계정 otp.applyanyjob@gmail.com을 확인했습니다. 해당 계정은 데이터 폴더의 소유자로 등록되어 있었습니다.
또한 IP 주소 38[.]242[.]157[.]89가 미끼 문서를 호스팅하는 것 외에도 다른 용도로 사용되고 있음을 발견했습니다. 동일한 서버에서 서로 다른 포트를 사용하여 여러 웹 기반 관리 패널도 호스팅하고 있었습니다.

포트 9000과 7000에서 웹 기반 관리 패널이 실행되고 있는 것을 확인했습니다. 포트 9000에는 SecureMonitor라는 패널이, 포트 7000에는 PrivateRat이라는 대시보드가 실행되고 있었습니다. 두 인터페이스 모두 사용자 이름과 비밀번호 인증이 필요했습니다. 또한 PrivateRat 로그인 페이지에는 개발자 이름이 HeartMelt로 표시되어 있었습니다..

또한 8000번 포트에서 실행되는 또 다른 웹 기반 관리 패널을 확인했습니다. 다른 인터페이스와 마찬가지로 접근 권한을 얻기 전에 인증이 필요했습니다.
조사 결과, 본 캠페인은 APT36과 연관되어 있을 가능성이 높다고 판단됩니다. 이 캠페인은 인도 정부 공무원 채용 지원자를 대상으로 하며, ControlR 및 Google Sheets와 같은 합법적인 서비스를 악용하여 접근 권한을 획득하고 유지합니다. 또한, 이전 APT36 캠페인에서 관찰된 수법과 매우 유사한 다단계 감염 경로, 명령 및 제어 채널, 그리고 지속성 확보 메커니즘을 사용합니다.
유사한 활동을 조사하던 중 Zscaler ThreatLabz에서 발표한 보고서를 발견했는데, 그 보고서에는 다음과 같은 내용이 담겨 있었습니다. 운동 구글 시트를 명령 및 제어에 사용하는 것, .NET 기반 악성코드, 그리고 유사한 지속성 메커니즘을 포함하여 많은 동일한 기술을 공유했습니다.
맺음말
조작 섀도우리크루트 이는 인도 정부 공무원 채용 광고를 악용하여 정부 공무원 시험 준비생들을 대상으로 하는 다단계 악성코드 공격 캠페인입니다. 이 캠페인은 정식 소프트웨어인 ControlR을 이용하여 원격으로 접근하고, Google Sheets를 백업 명령 및 제어 채널로 사용하는 맞춤형 .NET 기반 악성코드를 이용합니다.
악성코드 인프라 외에도, SecureMonitor, PrivateRat 및 기타 관리 인터페이스를 포함한 여러 웹 기반 관리 패널이 동일 서버에서 호스팅되는 것을 발견했습니다. PrivateRat 패널에는 HeartMelt라는 개발자 이름도 표시되어 있었습니다.. 우리의 연구 결과를 바탕으로, 우리는 이 캠페인이 다음과 연관되어 있다고 중간 정도의 확신을 가지고 평가합니다. APT36.
SEQRITE 보호
Lnk.트로이목마.로더.50884.GC
스크립트.트로이목마.드롭퍼.50886.GC
Lnk.Trojan.Pantera.50898.SL
Lnk.트로이.판테라.50901.GC
트로이 목마.에이전트.S39585887
침해 지표(IOC)
사진이름파일 해시(SHA-256)
| 승인 문서 2026.pdf.zip | 2b33b5185e93e1655eb27dbaa025d7ee088627db3d640fe4709be705646b189c |
| Document.exe | ee9dd2a180aea75af5c0eda16b83681c0a5fed451bfad6d5b3af85c3b62fa210 |
| Document-24062026-Y6352634.lnk | 434243e615b93a1b948c26ad55902bd78f9fa18e42375c15790634375c1ad3f4 |
| JT-의제.ps1 | 70fe7576f20f5dd6a3d872753c922f1394d91487f5eabb417b240b83c22e31b2 |
| ControlR.Agent.Installer.exe | cf3f1bceb83fa3acefbabae4bdc275347cfe03dd7fc770052a33baef204a89f7 |
| MicrosoftSyncService.exe | b928e523b51187b932e48a65d36ce3d0c39ee9d409d493b90f98cf3d1e0e73b0 |
| Document.lnk | c4859db541b2bd0d266bbc44fafb5a767c862a57a3633a949dfaeebdf88ed529 |
| 파일.pdf | fd2ac3a761f66dc6954014532795f9108f65739f23e4b294d4563673b7996881 |
URL이
| hxxp://38[.]242[.]157[.]89/file.pdf |
| 38[.]242[.]157[.]89:9000/login |
| 38[.]242[.]157[.]89:7000/login |
| 38[.]242[.]157[.]89:8000/login |
MITRE ATT&CK 매핑
술책기술 ID기술명
| 초기 액세스 | T1566.001 | 피싱: 스피어피싱 첨부 파일 |
| 실행 | T1204.002 | 사용자 실행 |
| 실행 | T1059.001 | 명령 및 스크립팅 해석기 |
| 실행 | T1106 | 네이티브 API |
| 고집 | T1547.001 | 부팅 또는 로그온 자동 시작 실행 |
| 고집 | T1053.005 | 예정된 작업 |
| 권한 에스컬레이션 | T1548.004 | 학대 고도 제어 메커니즘 |
| 방어 회피 | T1036.005 | 위장 |
| 방어 회피 | T1140 | 데이터 난독화 해제/디코딩 |
| 방어 회피 | T1027.011 | 난독화된 파일 또는 정보 |
| 방어 회피 | T1564.001 | 아티팩트 숨기기 |
| 방어 회피 | T1070.004 | 표시기 제거 |
| 방어 회피 | T1497.001 | 가상화/샌드박스 회피 |
| 발견 | T1082 | 시스템 정보 검색 |
| 발견 | T1614.001 | 시스템 위치 검색 |
| 여과 | T1041 | C2 채널을 통한 유출 |
작성자
프리야 파텔
카르틱 지바니
슈루티루파 바네르지이



