도넛로더, 최신 Remcos RAT 캠페인에서 재사용
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
G DATA는 악성 배치 파일로 시작하여 PowerShell, VBScript, AutoIt을 포함한 여러 스크립트 계층을 거쳐 DonutLoader 쉘코드 페이로드를 검색하고 실행하는 새로운 Remcos RAT 캠페인을 식별했습니다. 최종적으로 로더는 합법적인 Windows 바이너리 colorcpl.exe에 최종 Remcos RAT를 주입합니다. 공격 체인 전반에 걸쳐, 공격자는 7-Zip, pCloud 저장소, 여러 LOLBins와 같은 신뢰할 수 있는 툴을 사용하여 활동을 정상적으로 보이게 합니다. 프로세스 주입을 위한 Donut 생성 쉘코드의 사용은 현대 Remcos 전달의 주목할 만한 발전을 나타내고 있습니다.
조사
연구진들은 피싱 첨부 파일 Bestellung.CMD로부터 전체 감염 경로를 추적했으며, 이는 VBScript 프록시를 실행하여 Base64로 인코딩된 PowerShell 명령을 디코딩하였습니다. 그 PowerShell 단계는 7-Zip 유틸리티와 pCloud에서 암호로 보호된 아카이브를 다운로드하여 AutoIt 인터프리터와 추가 페이로드 내용을 담고 있는 가짜 PNG를 떨군 JScript 파일을 풀었습니다. AutoIt 구성 요소는 XOR로 난독화된 데이터를 복호화하고 DonutLoader 쉘코드를 재구축하여 이를 주입하였습니다 cscript.exe to execute a VBScript proxy that decoded a Base64-encoded PowerShell command. That PowerShell stage downloaded 7-Zip utilities and a password-protected archive from pCloud, then unpacked a JScript file that dropped an AutoIt interpreter and a fake PNG carrying additional payload content. The AutoIt component decrypted XOR-obfuscated data, rebuilt the DonutLoader shellcode, and injected it into colorcpl.exe에 Remcos RAT 버전 7.2.1 Pro가 실행되었습니다.
완화
디펜더는 의심스러운 cscript.exe, SyncAppvPublishingServer.vbs의 사용 및 Base64-로 인코딩된 내용을 포함한 PowerShell IEX 명령을 모니터링해야 하며, 특히 이러한 프로세스가 배치 파일에서 시작될 경우에 해당됩니다. 탐지에는 7z.exe and 7z.dll 가 사용자 디렉터리 내에 나타나는 것과 허가되지 않은 AutoIt 바이너리를 포착해야 합니다. 프로세스 주입 및 Donut 생성 쉘코드와 일치하는 활동을 식별하기 위해 행동 기반 보호를 조정해야 합니다. colorcpl.exe and activity consistent with Donut-generated shellcode.
대응
이 활동이 탐지되면, 즉시 영향을 받은 시스템을 격리하고, 의심스러운 프로세스를 종료하고, 쉘코드 분석을 위한 메모리를 캡처해야 합니다. 조사자는 드롭된 파일과 삭제된 아티팩트를 검토하여 전체 실행 체인을 재구축하고, 식별된 명령 및 제어 인프라와의 통신을 차단해야 합니다. 완화에는 Remcos RAT의 제거 및 공격에 사용된 합법적인 유틸리티의 정리가 포함되어야 합니다.
graph TB %% 클래스 정의 classDef technique fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ff9999 classDef misc fill:#dddddd %% 노드 정의 phish_spear[“<b>행위</b> – <b>T1566.001 피싱: 스피어피싱 첨부파일</b><br/><b>파일</b>: Bestellung.CMD”]:::technique cmd_shell[“<b>기술</b> – <b>T1059.003 명령 및 스크립트 인터프리터</b><br/>Windows Command Shell”]:::technique vbscript[“<b>기술</b> – <b>T1059.005 명령 및 스크립트 인터프리터</b><br/>Visual Basic (cscript.exe + .vbs)”]:::technique syncappv_proxy[“<b>기술</b> – <b>T1216.002 시스템 스크립트 프록시 실행</b><br/>SyncAppvPublishingServer”]:::technique powershell_hidden[“<b>기술</b> – <b>T1059.001 명령 및 스크립트 인터프리터</b><br/>PowerShell (숨김, Base64 디코딩)<br/><b>서브 기술</b>: T1027.009 임베디드 페이로드, T1564.003 숨김 창”]:::technique ingress_transfer[“<b>기술</b> – <b>T1105 인그레스 도구 전송</b><br/>7z 유틸리티 및 비밀번호 보호 ZIP 다운로드<br/><b>서브 기술</b>: T1027.015 압축”]:::technique javascript_masq[“<b>기술</b> – <b>T1059.007 명령 및 스크립트 인터프리터</b><br/>JavaScript (iphdcrtj.js)<br/><b>위장</b>: T1036.008 가짜 PNG에 AutoIt 스크립트 포함”]:::technique process_injection[“<b>기술</b> – <b>T1055 프로세스 인젝션</b><br/>colorcpl.exe에 주입”]:::technique reflective_loader[“<b>기술</b> – <b>T1620 리플렉티브 코드 로딩</b><br/>DonutLoader 쉘코드 → 원격 접근 도구(Remcos RAT)”]:::technique c2_comm[“<b>기술</b> – <b>T1071 애플리케이션 계층 프로토콜</b><br/>C2 통신”]:::technique %% 연결 phish_spear –>|이어짐| cmd_shell cmd_shell –>|이어짐| vbscript vbscript –>|이어짐| syncappv_proxy syncappv_proxy –>|이어짐| powershell_hidden powershell_hidden –>|이어짐| ingress_transfer ingress_transfer –>|이어짐| javascript_masq javascript_masq –>|이어짐| process_injection process_injection –>|이어짐| reflective_loader reflective_loader –>|이어짐| c2_comm
공격 흐름
탐지
의심스러운 파워쉘 문자열 (via powershell)
보기
의심스러운 파워쉘 문자열 (via cmdline)
보기
.NET 메서드를 파워쉘에서 호출 (via powershell)
보기
탐지할 IOCs (HashSha256): 속임수 달콤한: 현대의 Remcos RAT 감염에 재로드된 DonutLoader
보기
AppvClient와의 PowerShell IEX 명령 탐지 [Windows PowerShell]
보기
LOLBins를 사용한 Remcos RAT 감염 체인 탐지 [Windows 프로세스 생성]
보기
시뮬레이션 실행
전제조건: 텔레메트리 및 기준선 사전 검사 통과 필요.
이유: 본 섹션은 적대적 기법(TTP)이 탐지 규칙을 트리거하도록 설계된 정확한 실행을 상세히 설명합니다. 명령 및 서술은 반드시 식별된 TTP를 직접 반영하며 탐지 논리에 의해 예상되는 정확한 텔레메트리를 생성해야 합니다.
-
공격 서사 및 명령:
공격자는 정적 탐지를 피하기 위해 Base64로 인코딩된 악성 PowerShell 페이로드(예: 다운로더)를 획득했습니다. 레이더 아래에서 활동하기 위해, 공격자는 Windows 시스템에 일반적으로 설치된 서명된 내장 모듈인AppvClient를 선택했습니다. 모듈을 불러온 후,Invoke-Expression (IEX)를 사용하여 페이로드를 메모리에서 디코딩하고 실행하여 파일 아티팩트를 남기지 않습니다. 이 정확한 명령어 라인 (Import-Module AppvClient; IEX <Base64String>)이 Sigma 규칙의 조건과 일치합니다. -
회귀 테스트 스크립트:
<# "PowerShell IEX와 AppvClient" 탐지 규칙을 트리거하기 위한 시뮬레이션 스크립트. #> # 1. 정당한 모듈을 가져옵니다 (서명된 바이너리 프록시 실행) Import-Module AppvClient -ErrorAction Stop # 2. 간단한 무해한 PowerShell 페이로드를 준비하고 Base64로 인코딩합니다 $payload = "Write-Host '타협 시뮬레이션 – 페이로드 실행됨.'" $bytes = [System.Text.Encoding]::Unicode.GetBytes($payload) $b64 = [System.Convert]::ToBase64String($bytes) # 3. IEX를 사용하여 메모리에서 페이로드를 실행합니다 (탐지 트리거) IEX ([System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($b64))) # 4. 선택 사항: 로그가 전송될 수 있도록 세션을 잠시 유지합니다 Start-Sleep -Seconds 5 -
정리 명령:
# 가져온 모듈을 제거하여 흔적을 줄입니다 if (Get-Module -Name AppvClient) { Remove-Module -Name AppvClient -Force } # 현재 세션의 PowerShell 기록을 지웁니다 Clear-History