SmartApeSG 캠페인, Remcos RAT, NetSupport RAT, StealC, 및 Sectop RAT (ArechClient2) 배포
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
SmartApeSG 캠페인은 Remcos RAT, NetSupport RAT, StealC, 그리고 Sectop RAT을 비롯한 여러 원격 액세스 위협을 유포하기 위해 가짜 CAPTCHA 페이지와 ClickFix 스크립트를 결합하여 활용합니다. 초기 침해는 각 페이로드가 자신만의 명령 및 제어 서버에 접속하게 되는 단계별 감염 체인을 촉발합니다. 배포는 DLL 사이드 로딩을 악용하여 맬웨어를 실행하는 아카이브 파일을 통해 이루어집니다. 보고서에는 도메인, IP 주소, 파일 경로 및 파일 해시와 같은 지원 지표도 포함되어 있습니다.
조사
분석가는 ClickFix 스크립트의 트래픽을 17:11 UTC에 처음 기록했으며, Remcos RAT의 통신은 그로부터 1분 후인 17:12 UTC에 시작되었습니다. NetSupport RAT 트래픽은 그로부터 4분 후 나타났고, StealC는 대략 1시간 후에 관찰되었으며, Sectop RAT은 StealC 후 약 1시간 18분 후에 나타났습니다. 조사자들은 사용자와 시스템 디렉터리에서 파일 아티팩트를 복구하여 체인에서 사용된 특정 악성 아카이브에 연결했습니다.
완화
수호자들은 알려진 악성 도메인과 IP 주소를 차단하고, HTA 파일 실행과 사용자 프로필 경로에서의 의심스러운 아카이브 추출의 감시를 강화해야 합니다. 브라우저 및 이메일 보호를 강화하여 클릭 재킹 및 가짜 CAPTCHA 전달에 대한 노출을 줄여야 합니다. 엔드포인트 감지 규칙도 DLL 사이드 로딩 행동 및 예기치 않은 RAT 프로세스를 식별하도록 조정해야 합니다.
대응
열거된 지표 중 하나라도 발견되면 영향을 받은 호스트를 격리하고, 악성 프로세스를 중지하며 포렌식 분석을 위해 메모리 및 디스크 이미지를 수집하십시오. 환경 전반에 걸쳐 IOC를 광범위하게 조사하고, 식별된 C2 엔드포인트를 차단하도록 방화벽 규제를 업데이트하며, 잠재적으로 손상된 자격 증명을 재설정하십시오.
"graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#cccccc %% Nodes victim_visits["<b>Action</b> – 피해자가 가짜 CAPTCHA가 악성 스크립트를 주입하는 손상된 웹사이트를 방문"] class victim_visits action tech_user_exec_link["<b>Technique</b> – T1204.001 사용자 실행: 악성 링크<br/><b>설명</b>: 피해자가 코드 실행으로 이어지는 악성 링크와 상호작용"] class tech_user_exec_link technique tech_user_exec_copy["<b>Technique</b> – T1204.004 사용자 실행: 악성 복사 및 붙여넣기<br/><b>설명</b>: 악성 코드가 클립보드에 복사되고 실행을 위해 붙여넣기됨"] class tech_user_exec_copy technique clickfix_script["<b>툴</b> – 이름: ClickFix 스크립트 (악성)"] class clickfix_script malware hta_creation["<b>Action</b> – %AppData%post.hta에 악성 HTA 파일 작성됨"] class hta_creation action tech_mshta["<b>Technique</b> – T1218.005 시스템 바이너리 프록시 실행: Mshta<br/><b>설명</b>: Mshta가 HTA 파일을 실행하는 데 사용됨"] class tech_mshta technique tech_user_exec_file["<b>Technique</b> – T1204.002 사용자 실행: 악성 파일<br/><b>설명</b>: 피해자가 악성 파일을 실행함"] class tech_user_exec_file technique hta_execution["<b>프로세스</b> – mshta.exe가 post.hta를 실행"] class hta_execution process download_payload["<b>Action</b> – HTA가 원격 서버에서 압축된 페이로드 (ZIP 또는 RAR)를 다운로드"] class download_payload action tech_web_protocol["<b>Technique</b> – T1071.001 응용 프로토콜: 웹 프로토콜<br/><b>설명</b>: 데이터 전송을 위한 HTTP/HTTPS 사용"] class tech_web_protocol technique malware_remcos["<b>말웨어</b> – Remcos RAT"] class malware_remcos malware malware_netsupport["<b>말웨어</b> – NetSupport RAT"] class malware_netsupport malware malware_stealc["<b>말웨어</b> – StealC"] class malware_stealc malware malware_sectop["<b>말웨어</b> – Sectop RAT"] class malware_sectop malware tech_dll_sideloading["<b>Technique</b> – T1574.001 실행 흐름 하이재킹: DLL 사이드 로딩<br/><b>설명</b>: 악성 DLL이 합법적인 실행 파일에 로드됨"] class tech_dll_sideloading technique c2_bidirectional["<b>Technique</b> – T1102.002 웹 서비스: 양방향 통신<br/><b>설명</b>: RAT이 양방향 웹 서비스를 사용하여 C2와 통신함"] class c2_bidirectional technique c2_oneway["<b>Technique</b> – T1102.003 웹 서비스: 단방향 통신<br/><b>설명</b>: RAT이 단방향 웹 서비스를 통해 C2로 데이터를 보냄"] class c2_oneway technique cleanup_files["<b>Action</b> – 실행 후 HTA 및 임시 파일 삭제"] class cleanup_files action tech_file_deletion["<b>Technique</b> – T1070.004 지표 제거: 파일 삭제<br/><b>설명</b>: 증거를 지우기 위해 파일이 제거됨"] class tech_file_deletion technique cleanup_persistence["<b>Action</b> – 레지스트리 또는 예약 작업과 같은 지속성 아티팩트 제거"] class cleanup_persistence action tech_clear_persistence["<b>Technique</b> – T1070.009 지표 제거: 지속성 제거<br/><b>설명</b>: 지속성 메커니즘이 제거됨"] class tech_clear_persistence technique %% Connections victim_visits –>|triggers| tech_user_exec_link victim_visits –>|triggers| tech_user_exec_copy tech_user_exec_link –>|delivers| clickfix_script tech_user_exec_copy –>|delivers| clickfix_script clickfix_script –>|writes| hta_creation hta_creation –>|uses| tech_mshta hta_creation –>|uses| tech_user_exec_file tech_mshta –>|executes| hta_execution tech_user_exec_file –>|executes| hta_execution hta_execution –>|downloads| download_payload download_payload –>|uses| tech_web_protocol download_payload –>|delivers| malware_remcos download_payload –>|delivers| malware_netsupport download_payload –>|delivers| malware_stealc download_payload –>|delivers| malware_sectop malware_remcos –>|employs| tech_dll_sideloading malware_netsupport –>|employs| tech_dll_sideloading malware_stealc –>|employs| tech_dll_sideloading malware_sectop –>|employs| tech_dll_sideloading malware_remcos –>|communicates via| c2_bidirectional malware_netsupport –>|communicates via| c2_oneway malware_stealc –>|communicates via| c2_oneway malware_sectop –>|communicates via| c2_bidirectional hta_execution –>|triggers| cleanup_files cleanup_files –>|uses| tech_file_deletion cleanup_files –>|also triggers| cleanup_persistence cleanup_persistence –>|uses| tech_clear_persistence "
공격 흐름
탐지
공용 사용자 프로필에서의 의심스러운 파일 (file_event을 통해)
보기
이미지 경로에서 명시적인 COMSPEC 사용 (시스템을 통해)
보기
서비스 파일 경로에서 명시적인 COMSPEC 사용 (감사를 통해)
보기
의심스러운 명시적 COMSPEC 사용 (process_creation을 통해)
보기
의심스러운 명령 및 제어 by 비정상적인 최상위 도메인 (TLD) DNS 요청 (dns를 통해)
보기
명령줄 인수에 환경 변수 사용 (cmdline을 통해)
보기
탐지할 IOCs (DestinationIP): SmartApeSG 캠페인은 Remcos RAT, NetSupport RAT, StealC, 그리고 Sectop RAT (ArechClient2)을 푸시합니다
보기
탐지할 IOCs (HashSha256): SmartApeSG 캠페인은 Remcos RAT, NetSupport RAT, StealC, 그리고 Sectop RAT (ArechClient2)을 푸시합니다
보기
탐지할 IOCs (SourceIP): SmartApeSG 캠페인은 Remcos RAT, NetSupport RAT, StealC, 그리고 Sectop RAT (ArechClient2)을 푸시합니다
보기
SmartApeSG 캠페인 C2 서버 트래픽 탐지 [Windows 네트워크 연결]
보기
시뮬레이션 실행
전제 조건: 텔레메트리 & 기준선 사전 비행 점검이 통과해야 합니다.
합리적 설명: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 공격 기술(TTP)의 정확한 실행 방법을 설명합니다. 명령 및 내러티브는 식별된 TTP를 직접 반영해야 하며 탐지 로직에 의해 예상되는 정확한 텔레메트리를 생성하고자 합니다.
공격 내러티브 & 명령
공격자는 피해자 워크스테이션에 발판을 마련한 후 SmartApeSG 캠페인의 Remcos RAT 구성 요소를 실행합니다. RAT은 기본 C2 엔드포인트로 95.142.45.231:443 을 사용하도록 설정됩니다. 처음에는 내장된 도메인을 해결하고 나서 fresicrto.top (예비)로 이동한 다음 IP 주소에 영구 HTTPS 터널을 엽니다. 트래픽은 remcos.exe 에 의해 Windows WinHTTP API를 통해 생성되며, 이로 인해 Sysmon NetworkConnect 이벤트와 Windows 방화벽 로그 항목이 생성됩니다.
단계:
- RAT 바이너리를 떨어뜨립니다 (
remcos.exe) to%TEMP%. - 바이너리를 실행합니다 C2 인수와 함께
-c 95.142.45.231:443. - 아웃바운드 연결을 확인합니다 (에서
netstat).
이러한 행동은 T1102 (웹 서비스) C2 통신 및 T1584.001 (도메인 획득) 으로 연결되며, 도메인은 페이로드의 일부로 포함됩니다.
회귀 테스트 스크립트
# --------------------------------------------------------------
# SmartApeSG C2 시뮬레이션 – 탐지 규칙을 트리거합니다
# --------------------------------------------------------------
# 1. 최소한의 Remcos 유사 스텁 작성 (데모를 위해 PowerShell을 사용하여 TCP 열기)
$c2Ip = "95.142.45.231"
$c2Port = 443
$payloadFile = "$env:TEMPremcos_stub.exe"
# 간단한.NET 실행 파일 생성하여 TCP 연결 열기 (RAT 시뮬레이션)
Add-Type -TypeDefinition @"
using System;
using System.Net.Sockets;
public class Stub {
public static void Main(string[] args) {
try {
var client = new TcpClient();
client.Connect("$c2Ip", $c2Port);
System.Threading.Thread.Sleep(5000); // 연결 유지
client.Close();
} catch (Exception ex) {
Console.Error.WriteLine(ex.Message);
}
}
}
"@ -OutputAssembly $payloadFile -CompilerOptions "/target:exe"
# 2. 스텁 실행 (네트워크 연결 생성)
Start-Process -FilePath $payloadFile -WindowStyle Hidden
# 3. 선택 사항: DNS 활동 증명 위해 예비 도메인 확인
Resolve-DnsName -Name "fresicrto.top" -Type A | Out-Null
# 4. 관찰을 위한 일시 정지
Start-Sleep -Seconds 10
# 5. 정리 – 여전히 실행 중인 경우 스텁 종료
Get-Process -Name "remcos_stub" -ErrorAction SilentlyContinue | Stop-Process -Force
Remove-Item -Path $payloadFile -Force
정리 명령
# 스텁으로부터 남아있는 모든 연결 종료
Get-NetTCPConnection -RemotePort 443 -RemoteAddress 95.142.45.231 -State Established |
ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
# 임시 파일 제거 (스크립트에서 이미 수행했지만 깨끗한 상태를 보장)
Remove-Item -Path "$env:TEMPremcos_stub.exe" -ErrorAction SilentlyContinue