A fake BlueWallet site at update-bluewallet[.]com impersonates the real Bitcoin wallet to trick Mac users into downloading and manually running an AppleScript that installs a credential-stealing implant. The malware can steal browser logins, wallets, files, and clipboard cryptocurrency addresses, then exfiltrate data and accept commands through Telegram. #BlueWallet #update-bluewallet #projects2026box #Telegram
Keypoints
- Attackers used a fake BlueWallet download site to impersonate the legitimate Bitcoin wallet and target Mac users.
- The campaign relied on social engineering, urging victims to open a downloaded AppleScript in Script Editor and press Run.
- Stage one downloaded a second-stage script to /tmp/.sysupd.sh and executed it silently in the background.
- The malware stole browser data, cryptocurrency wallet data, password manager data, cloud and SSH credentials, and selected documents.
- It hijacked the clipboard by replacing copied Bitcoin, Ethereum, or Solana addresses with attacker-controlled addresses.
- Persistence was established through a LaunchAgent in ~/Library/LaunchAgents, allowing the implant to run at login.
- Command-and-control and exfiltration were handled through Telegram Bot API channels, with support for commands like /info, /exec, /download, and /selfdestruct.
MITRE Techniques
- [T1204.002] User Execution: Malicious File â The victim had to open the downloaded AppleScript and press Run/âR for the malware to execute (âopen the installer, then press the play button or âRâ / âthe victim trusts what they are seeingâ).
- [T1059.002] AppleScript â The attack used a malicious AppleScript as the first-stage downloader and execution vehicle (âThe page does something quietly clever⌠the victim is about to seeâ / âThe AppleScript itself is remarkably shortâ).
- [T1059.004] Unix Shell â The AppleScript ran a base64-encoded shell command to fetch and execute the payload (âit runs a single base64-encoded shell commandâ).
- [T1105] Ingress Tool Transfer â Stage one downloaded the second-stage script from a remote host to /tmp/.sysupd.sh (âcurl -s ⌠-o /tmp/.sysupd.sh && chmod +x /tmp/.sysupd.shâ).
- [T1027] Obfuscated Files or Information â The script hid configuration using XOR-decoded values and base64 encoding (âIts configuration is obfuscated, but weaklyâ / âbase64-encoded shell commandâ).
- [T1036] Masquerading â The malware disguised itself as a system update file and used BlueWallet branding to appear legitimate (âthe filename .sysupd.sh is dressed up to look like a system updateâ / âstolen the name and brandingâ).
- [T1056.001] Keylogging / Input Capture: Keylogging â The malware prompted for the userâs password and validated attempts, capturing the credential (âasks the user to re-enter their passwordâ).
- [T1115] Clipboard Data â It continuously monitored the clipboard to detect and replace cryptocurrency addresses (âcontinuously inspects the clipboardâ / âoverwrites the clipboard with the attackerâs address via pbcopyâ).
- [T1547.001] Boot or Logon Autostart Execution: Launch Agent â Persistence was established by writing a LaunchAgent plist in ~/Library/LaunchAgents (âIt establishes persistence by writing a LaunchAgent plistâ).
- [T1053.005] Scheduled Task/Job: Launch Agent â The LaunchAgent was loaded so the implant would run again at every login (âloading it with launchctl so the implant runs again at every loginâ).
- [T1074.001] Local Data Staging: Local Data Staging â The malware staged stolen data into archives before exfiltration (âarchives the staged data with macOSâs own dittoâ).
- [T1029] Scheduled Transfer â It split larger archives into 49 MB chunks to fit Telegram upload limits (âit breaks larger archives into 49 MB chunksâ).
- [T1567.002] Exfiltration to Cloud Storage â Data was sent through Telegramâs infrastructure, which served as the exfiltration channel (âThe command channel rides Telegramâs Bot APIâ).
- [T1090.001] Proxy: Internal Proxy â Telegram Bot API was used as an intermediary command channel that helped blend traffic into legitimate HTTPS (âit is cheap, scalable, encrypted, and blends into ordinary HTTPS trafficâ).
- [T1057] Process Discovery â The script checked for presence of cloud/SSH-related files and app data across the system (âlook for credentials and configuration filesâ).
- [T1005] Data from Local System â It collected browser data, wallet data, notes, and documents from the local machine (âthey pull from six broad categoriesâ).
Indicators of Compromise
- [Domains ] fake BlueWallet lure and payload host â update-bluewallet[.]com, projects2026box[.]com
- [File names ] downloaded and hidden scripts â BlueWallet Installer.applescript, /tmp/.sysupd.sh
- [File hash (SHA-256) ] known sample hash for the stage-one script â 216277bdb7998b48852024fc8b5853c3dc50b3857fd22afd1320b884bcaa0a61
- [Clipboard wallet addresses ] attacker-controlled replacement addresses used for BTC/ETH/SOL hijacking â bc1qrmj4ggshddhnxx3rxwvsu8pe9ut6cgx8mx364e, 0x2B871703122064e45d77146a6D5203da3bD192FA, and 8dtdRQePrKz97FszwMEa4QvptdAAcbAFs7kBojr5Mz3v
- [Persistence path ] macOS autostart location used by the implant â ~/Library/LaunchAgents, hidden support directory
- [Credential-related paths ] files and directories searched for cloud and SSH secrets â .ssh, .aws, .gnupg, .kube
- [Browser/utility artifacts ] targeted local data sources and note databases â NoteStore.sqlite, .zsh_history, .bash_history