macOS ClickFix Campaign: AppleScript Stealers & New Terminal Protections
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
Netskope Threat Labs는 macOS 사용자를 대상으로 한 AppleScript 기반 정보 탈취 악성 소프트웨어를 사용하는 크로스 플랫폼 ClickFix 캠페인을 식별했습니다. 이 악성 소프트웨어는 피해자들을 사회공학 페이지를 통해 속여서 Terminal에 악성 명령을 복사하고 붙여넣도록 합니다. 실행되면, 이 스크립트는 키체인 내용, 브라우저 쿠키, 확장 데이터, 암호화폐 지갑 파일을 수집한 후, HTTP POST 요청을 통해 탈취한 정보를 전송합니다. 이 캠페인은 또한 지속적인 가짜 대화 상자를 사용하여 사용자를 속여 시스템 비밀번호를 입력하게 합니다.
조사
이 보고서는 악성 랜딩 페이지가 먼저 사용자 에이전트를 통해 방문자를 필터링한 다음 macOS 시스템에 특화된 AppleScript 로더를 제공한다고 설명합니다. 실행 후, 이 악성 소프트웨어는 임시 스테이징 디렉토리를 만들고 자격 증명 및 지갑 관련 데이터를 모은 후, ditto 명령으로 수집된 파일을 압축하여 하드 코드된 명령 및 제어 주소로 업로드합니다. 연구원들은 또한 macOS Directory Services의 악용을 통해 피해자의 비밀번호를 실시간으로 확인하는 것과 넓은 범위의 표적 브라우저 및 암호화폐 지갑 애플리케이션을 문서화하였습니다.
완화
Netskope는 macOS 사용자가 가능한 한 macOS Tahoe 26.4 또는 macOS Sequoia의 최신 버전으로 업데이트할 것을 권장하며, 이는 붙여넣은 명령에 대해 기본 Terminal 경고를 도입합니다. 사용자는 신뢰할 수 없는 웹사이트에서 복사한 명령 실행을 피하고, 모든 자격 증명 프롬프트를 주의 깊게 확인하고, 가능하면 다중 인증을 활성화해야 합니다. 조직은 의심스러운 AppleScript 기반의 대화 상자 및 생소한 인프라로 향하는 비정상적인 HTTP POST 트래픽을 모니터링할 것을 권장합니다.
응답
방어자는 알 수 없는 AppleScript 파일의 실행을 탐지하고 차단하며, /tmp/xdivcmp/ 스테이징 디렉토리의 생성 여부를 주시해야 합니다. macOS 시스템에서 비정상적인 도메인이나 IP 주소로의 HTTP POST 활동에 대한 경고도 설정해야 합니다. 시스템 비밀번호를 요구하는 반복적인 대화 상자는 의심받아야 하며, 영향을 받은 엔드포인트는 신속히 격리되어 포렌식 조사를 받아야 합니다.
"graph TB %% Class definitions classDef technique fill:#ffcc99 %% Node definitions t_phish["<b>기술</b> – <b>T1566 피싱</b><br/><b>설명</b>: 피해자를 유인하기 위해 복사 – 붙여넣기 명령을 포함하는 악성 이메일 전송."] class t_phish technique t_userexec["<b>기술</b> – <b>T1204.004 사용자 실행: 악의적인 복사 및 붙여넣기</b><br/><b>설명</b>: 피해자가 터미널 세션에 악성 명령을 복사하고 붙여넣기."] class t_userexec technique t_unixshell["<b>기술</b> – <b>T1059.004 명령 및 스크립트 인터프리터: 유닉스 셸</b><br/><b>설명</b>: AppleScript 페이로드를 다운로드하고 실행하는 셸 명령 실행."] class t_unixshell technique t_obfusc["<b>기술</b> – <b>T1027 모호한 파일 또는 정보</b><br/><b>설명</b>: 셸 명령을 인코딩하여 악의적 의도를 숨김."] class t_obfusc technique t_inputcap["<b>기술</b> – <b>T1056 입력 캡처</b><br/><b>설명</b>: 지속적인 AppleScript 대화 상자가 macOS 사용자 비밀번호를 캡처."] class t_inputcap technique t_oscred["<b>기술</b> – <b>T1003 운영 체제 자격 증명 덤프</b><br/><b>설명</b>: 캡처된 비밀번호를 사용하여 macOS 키체인을 해독."] class t_oscred technique t_passmgr["<b>기술</b> – <b>T1555.005 비밀번호 저장소의 자격 증명: 비밀번호 관리자</b><br/><b>설명</b>: 설치된 비밀번호 관리자에서 저장된 보관 데이터를 추출."] class t_passmgr technique t_webbrowser["<b>기술</b> – <b>T1555.003 비밀번호 저장소의 자격 증명: 웹 브라우저</b><br/><b>설명</b>: 브라우저 저장소에서 저장된 비밀번호 및 자동 채우기 데이터 탈취."] class t_webbrowser technique t_webcookie["<b>기술</b> – <b>T1539 웹 세션 쿠키 탈취</b><br/><b>설명</b>: 12개 웹 브라우저에서 세션 쿠키 수확."] class t_webcookie technique t_altauth["<b>기술</b> – <b>T1550.004 대체 인증 재료 사용: 웹 세션 쿠키</b><br/><b>설명</b>: 도난당한 쿠키를 다시 사용하여 다중 인증 우회."] class t_altauth technique t_browserdisc["<b>기술</b> – <b>T1217 브라우저 정보 검색</b><br/><b>설명</b>: 호스트 시스템에서 브라우저 프로필 디렉토리 찾기."] class t_browserdisc technique t_staging["<b>기술</b> – <b>T1074.001 데이터 스테이징: 로컬 데이터 스테이징</b><br/><b>설명</b>: /tmp/xdivcmp에서 수집된 데이터를 집계."] class t_staging technique t_archive["<b>기술</b> – <b>T1560 수집된 데이터 아카이브</b><br/><b>설명</b>: ditto를 사용하여 스테이징 데이터를 zip 파일로 압축."] class t_archive technique t_exfil["<b>기술</b> – <b>T1041 C2 채널을 통한 데이터 반출</b><br/><b>설명</b>: 명령 및 제어 서버로 zip 아카이브를 HTTP POST로 전송."] class t_exfil technique t_filedel["<b>기술</b> – <b>T1070.004 지표 제거: 파일 삭제</b><br/><b>설명</b>: 성공적인 데이터 반출 후 스테이징 디렉토리 삭제."] class t_filedel technique t_diskwipe["<b>기술</b> – <b>T1561 디스크 와이프</b><br/><b>설명</b>: 포렌식 흔적 제거를 위해 디스크 섹터 덮어쓰기."] class t_diskwipe technique %% 흐름을 보여주는 연결 t_phish –>|로 연결됨| t_userexec t_userexec –>|로 연결됨| t_unixshell t_unixshell –>|사용함| t_obfusc t_unixshell –>|사용함| t_inputcap t_unixshell –>|사용함| t_browserdisc t_inputcap –>|활성화| t_oscred t_inputcap –>|활성화| t_passmgr t_inputcap –>|활성화| t_webbrowser t_inputcap –>|활성화| t_webcookie t_webcookie –>|활성화| t_altauth t_browserdisc –>|제공| t_staging t_staging –>|생성| t_archive t_archive –>|반출| t_exfil t_exfil –>|트리거| t_filedel t_filedel –>|트리거| t_diskwipe "
공격 흐름
탐지
macOS 브라우저 비밀번호 탐색 시도 가능성 (cmdline 경유)
보기
Dscl Authonly를 통한 macOS 자격 증명 검증 (cmdline 경유)
보기
의심스러운 Curl 실행 시도 [macOS] (cmdline 경유)
보기
IOCs (HashMd5)로 감지: macOS ClickFix 캠페인: AppleScript 정보 탈취 및 새로운 터미널 보호
보기
IOCs (SourceIP)로 감지: macOS ClickFix 캠페인: AppleScript 정보 탈취 및 새로운 터미널 보호
보기
IOCs (DestinationIP)로 감지: macOS ClickFix 캠페인: AppleScript 정보 탈취 및 새로운 터미널 보호
보기
ClickFix macOS Infostealer: Keychain 및 임시 디렉토리를 목표로 [Linux 파일 이벤트]
보기
macOS ClickFix Infostealer 탐지 [Linux 프로세스 생성]
보기
시뮬레이션 실행
필수 조건: 텔레메트리 & 기준 설정 사전 점검이 통과되어야 합니다.
-
공격 서사 & 명령:
- 정찰: 공격자는 먼저 현재 사용자의 키체인을 나열하여 저장된 항목을 식별합니다.
- 자격 증명 덤프: 사용
security dump-keychain을 이용하여, 공격자는 전체 키체인 데이터베이스를 임시 파일로 추출합니다. - 스테이징: 덤프는 숨김 스테이징 디렉토리로 복사됩니다
/tmp/.xdivcmp/(규칙의/tmp/xdivcmp/경로를 반영). - 모호화: 스테이징 디렉토리가 숨김으로 설정됨 (
chflags hidden). - 탈출 준비: 파일들이
payload.zip으로 압축되어 외부 전송 준비를 완료합니다.
-
회귀 테스트 스크립트:
#!/bin/bash set -euo pipefail # 1. 숨김 스테이징 디렉토리 생성 (규칙 경로와 일치) STAGING_DIR="/tmp/.xdivcmp" mkdir -p "$STAGING_DIR" chflags hidden "$STAGING_DIR" # 2. 키체인 덤프 (사용자 상호작용 필요; DB 복사로 시뮬레이션) KEYCHAIN_SRC="/Users/$(whoami)/Library/Keychains/login.keychain-db" KEYCHAIN_DUMP="${STAGING_DIR}/login.keychain-db.dump" # DB 복사로 덤프 시뮬레이션 (실제 공격자는 `security dump-keychain`을 사용) cp "$KEYCHAIN_SRC" "$KEYCHAIN_DUMP" # 3. 반출용 압축 zip -j "${STAGING_DIR}/payload.zip" "$KEYCHAIN_DUMP" echo "[+] ClickFix 시뮬레이션 완료 – 스테이징 아티팩트가 $STAGING_DIR에 배치됨" -
정리 명령:
#!/bin/bash set -euo pipefail STAGING_DIR="/tmp/.xdivcmp" if [[ -d "$STAGING_DIR" ]]; then rm -rf "$STAGING_DIR" echo "[+] 스테이징 디렉토리가 정리됨." else echo "[*] 찾을 수 있는 스테이징 디렉토리가 없음; 정리할 항목 없음." fi