MacOS Fake Dynamic Island
Youtube ads malware targeted MacOS in 2026.

I recently found a malicious YouTube ad while trying to search for an interesting video during my lunch break. Then I found some highly sophisticated macOS malware campaign distributed via malicious DMG files.
Initial Infection Vector
Delivery Method
The malware is delivered as a .dmg file distributed through the link in the youtube description, dynamichub[.]app .
Initial Execution
When we opens the DMG and runs the installer, the first-stage loader executes:

This simple command initiates a complex multi-stage attack chain.
Attack Flow

Stages
Stage 1: Initial Loader Script
File: yKfbGmNuw10mYJP0Tm8NuP95R1l5KTpNTuJylr70QQLYur10ePs9ZwLEqQrXrAS8ZU2.aspx
Key Function:
Executing Throttling:
It prevents re-executions within 15 minutes and uses an anti-analysis technique to limit sandbox detonations and reduce detection by preventing rapid, repeated executions. Therefore, the action will take longer, but it will be silent.
Machine/Victim Identification
It generates a unique work ID for tracking this specific infection. It allows attackers to correlate data from multiple payloads and is used throughout the infection chain for victim tracking.
Parallel Payload Deployment
Three payloads run at the same time in the background. Everything is sent to /dev/null to hide it, and nohup makes sure it keeps going even after the main process is done.
Stage 2A: Credentials Theft Chain
Phising Dialog

File: zJgrwl7UBf8kbWkfdeiWUSb7QAfI7KoDXO3c8d23Iv4J0sosBPFJHR1sgfBUr5V84IQlGt1wO5zwe.aspx (Javascript for Automation)
The attack technique is creates a convincing fake authentication dialog using macOS native APIs:
It works because use legitimate macOS displayDialog API. Hide the password prompted use dots, and the user conditioned to enter the password when prompted.
Then it will loop use credential validations:
It will validate the inputted password, if its correct, then it will stores as valid and exits. And if its incorrect, it will stores in invalid array, and shows error: "Incorrect password. Please try again:" . All the attempt is collected then it will send with this format:
Credential Exfiltration

File: nbnusGNdcwdxTqpbKfR5HbMugXy970s92wbaJOmIL6X7hNNyVv5SEIMoaxFvoe4t6FVl2fdmg.aspx
Exfiltration Endpoint: https://fixyourallergywithus[.]com/api/credentials
It has advanced anti-analysis features:
Proof of Work (PoW)
The server sends the client a challenge string and a difficulty level (number of leading zeros). The client must brute-force a nonce such that:
This is the same idea as Bitcoin mining, just scaled down. For a human or a single infected host, this cost is acceptable. For sandboxes, emulators, or large-scale automated crawlers, it’s painful. Every analysis run now burns CPU time, which dramatically slows bulk malware triage and forces analysts to either patch the logic or wait.
Exponential backoff with jitter
Once the client successfully completes the proof-of-work, the server issues a token. That token is then used for subsequent requests so the expensive challenge doesn’t need to be repeated every time. This keeps normal operation efficient while still preventing replay attacks, unauthorized submissions, or analysts trying to fake valid traffic without completing the full protocol.
Put together, this forms a stateful, adaptive handshake that is cheap for real clients but costly and inconvenient for analysts.
Stage 2B: Data Stealer

File: d50hjd3zlshdWpwHAGatYYWHUsTzmG5onTKAw16KK5NTbl1jvggVFgrUwXBMKRm2FdBiFpys39.aspx
Exfiltration Endpoint: https://fixyourallergywithus[.]com/api/log
This is the primary data theft module with comprehensive targeting.
Cryptocurrency Wallet
It steals 17++ wallet applications hardcoded in the malware:
Electrum
~/.electrum/wallets
Bitcoin wallet files
Electrum-LTC
~/.electrum-ltc/wallets
Litecoin wallets
Electron Cash
~/.electron-cash/wallets
Bitcoin Cash wallets
Exodus
~/Library/Application Support/Exodus
Multi-currency wallet
Ledger Live
~/Library/Application Support/Ledger Live
Hardware wallet interface
Trezor Suite
~/Library/Application Support/@trezor/suite-desktop
Hardware wallet config
Atomic Wallet
~/Library/Application Support/atomic/Local Storage/leveldb
Multi-currency wallet
Coinomi
~/Library/Application Support/Coinomi/wallets
Multi-currency mobile wallet
Guarda
~/Library/Application Support/Guarda
Multi-currency wallet
Binance
~/Library/Application Support/Binance/app-store.json
Exchange wallet config
Wasabi Wallet
~/.walletwasabi/client/Wallets
Privacy-focused Bitcoin
Bitcoin Core
~/Library/Application Support/Bitcoin/wallets
Bitcoin wallet.dat files
Dogecoin Core
~/Library/Application Support/Dogecoin/wallets
Dogecoin wallets
Litecoin Core
~/Library/Application Support/Litecoin/wallets
Litecoin wallets
DashCore
~/Library/Application Support/DashCore/wallets
Dash cryptocurrency
Monero
~/Monero/wallets
Privacy coin wallets
Tonkeeper
~/Library/Application Support/@tonkeeper/desktop/config.json
TON blockchain wallet
Browser Data Exfiltration
It targets both Chromium-based like Chrome, Brave, Edge, Opera, Vivaldi, and Firefox browsers. Extracting:
Chromium Browsers (Chrome, Brave, Edge, Opera, Vivaldi):
Login Data- Saved passwordsCookies- Session tokens, authentication cookiesHistory- Browsing historyWeb Data- Autofill data (addresses, credit cards)Bookmarks- Saved bookmarksLocal Extension Settings- Browser extension data (including MetaMask, Phantom, etc.)
Firefox Browsers:
logins.json- Saved passwordskey4.db- Encryption key for password databasecookies.sqlite- Cookie databaseplaces.sqlite- Bookmarks and historyformhistory.sqlite- Form autofill dataprefs.js- Browser preferencesextensions.json- Installed extensions listmoz-extension+++*directories - Extension local storage
MacOS Keychain Theft
Target: ~/Library/Keychains/login.keychain-db
It extract all saved password from Safari and macOS. Like wifi password, Email account password, Application password, etc.
Collection Process
Temporary Directory Creation:
Recursive File Copying:
Uses macOS NSFileManager APIs
Preserves directory structure
Handles permission errors gracefully
Archive Creation:
Creates compressed ZIP archive
Quiet mode (no output)
Preserves symlinks (
-yflag)
Exfiltration:
Evidence Destruction:
Stage 2C: Document and Notes Stealer

File: JtSrMgngIzUyMyBbvAOE5izvGIbbkgxCGsJw8ptyXzGqh3Y6kF7n3feSJfoDTFF1ziMU0dX.aspx
Exfiltration Endpoint: https://fixyourallergywithus[.]com/api/grabber
Extracting Apple Notes
File System Document Harvesting
It targeted at ~/Documents, ~/Downloads, and ~/Desktop with filtering it for file under 100KB only. I assume that because file below that size typically include:
.txtfiles with passwords/seeds.keyprivate key files.pemcertificates.jsonconfiguration files with API keys.envenvironment variable filesSmall PDFs with seed phrases
Code snippets with credentials
SSH private keys
GPG keys
Wallet backup files
Permission Bypass Attempt
The malware attempts to run:
This command wipes all TCC permissions on the system, including Full Disk Access, Files and Folders access, screen recording, microphone, and camera permissions. If it were to succeed, macOS would forget which apps were previously restricted, potentially allowing the malware to re-request access or operate before protections are re-established.
Stage 2D: Pesistence

File: jKY8I8tI9kkB7gurNIqpVbs7TqddHmXN7fTgD5lyP4eYKh372WMKeQtQtehpBRzrAfOGUak.aspx
Downloaded Backdoor: NRtjmyszAQorbqwFH4MD7EcZAT0fUOjDMv2GKh6QEytpN4xxNEYGPeTyUnXcIdRIzUjGyuArvBNadbE.aspx
Process
Hardware-based Naming
The malware fingerprints the machine by extracting the macOS Hardware UUID and hashing it with MD5. This produces a deterministic but opaque identifier unique to that device. That hash is reused everywhere: directory name, script filename, LaunchAgent label. This makes the infection host-specific, avoids hardcoded filenames, and breaks simple IOC-based detection since no two victims look the same on disk.
Hidden Directory Creation
Combined with the hash-based name, the directory blends in as something that looks like an internal app identifier rather than malware. Nothing stands out unless you already know what to look for.
Backdoor Download
It’s marked executable and staged quietly, with no user interaction. At this point, the system is already compromised, but persistence hasn’t kicked in yet.
LaunchAgent Persistence
Creates LaunchAgent with the following configuration:
Persistence is achieved via a per-user LaunchAgent, not a system daemon, meaning no root access is required. The plist is again named with the HWID hash and configured to execute the backdoor using osascript with JavaScript (JXA). RunAtLoad ensures execution at login, KeepAlive respawns the process if killed, and ThrottleInterval prevents excessive restart loops that might draw attention. All stdout and stderr are redirected to /dev/null, eliminating local execution artifacts.
LaunchAgent Activation
Backdoor Functionality
C2 Polling Loop
Remote Code Execution
The backdoor supports three execution types:
Bash Script
Apple Script
Javascript for Automation (JXA)
Task Execution Flow
Backdoor polls C2 server
Server responds with task:
{"url": "[payload_url]", "type": "bash", "id": 12345}Backdoor downloads payload from URL
Executes payload with appropriate interpreter
Confirms successful execution to C2
Continues polling for next task
MITRE ATT&CK Mapping
Some MITRE ATT&CK techniques associated with this malware include:
T1566.001
Phishing: Spearphishing Attachment
Malicious DMG file distribution
T1204.002
User Execution: Malicious File
Victim opens DMG and runs installer
T1059.004
Command and Scripting: Unix Shell
Bash scripts for initial execution
T1059.002
Command and Scripting: AppleScript
osascript for payload execution
T1140
Deobfuscate/Decode Files
JavaScript obfuscation with runtime deobfuscation
T1082
System Information Discovery
Hardware UUID fingerprinting
T1033
System Owner/User Discovery
whoami command execution
T1124
System Time Discovery
Timestamp generation for execution throttle
T1005
Data from Local System
Cryptocurrency wallets, browser data
T1555.001
Credentials from Password Stores: Keychain
macOS Keychain theft
T1555.003
Credentials from Password Stores: Credentials from Web Browsers
Browser password databases
T1539
Steal Web Session Cookies
Browser cookie theft
T1056.002
Input Capture: GUI Input Capture
Fake authentication dialog
T1552.001
Unsecured Credentials: Credentials In Files
Searching for seed phrases in documents
T1119
Automated Collection
Scripted collection of wallets/browsers
T1560.001
Archive Collected Data: Archive via Utility
ZIP compression of stolen data
T1041
Exfiltration Over C2 Channel
HTTPS POST to C2 server
T1071.001
Application Layer Protocol: Web Protocols
HTTPS for C2 communication
T1573.002
Encrypted Channel: Asymmetric Cryptography
HTTPS encryption
T1543.001
Create or Modify System Process: Launch Agent
LaunchAgent persistence
T1547.011
Boot or Logon Autostart: Plist Modification
LaunchAgent plist creation
T1070.004
Indicator Removal: File Deletion
Deletes temp files after exfiltration
T1070.006
Indicator Removal: Timestomp
Potential timestamp manipulation
T1027.002
Obfuscated Files or Information: Software Packing
JavaScript obfuscation
T1497.001
Virtualization/Sandbox Evasion: System Checks
Proof-of-work anti-sandbox
T1497.003
Virtualization/Sandbox Evasion: Time Based Evasion
Execution throttling + exponential backoff
T1102
Web Service: Legitimate Service for C2
Cloudflare Pages abuse
T1219
Remote Access Software
Persistent backdoor for remote control
T1105
Ingress Tool Transfer
Downloads additional payloads via curl
Conclusion
This macOS infostealer represents a significant evolution in macOS malware sophistication. Key takeaways:
Technical Highlights
Multi-stage architecture enables modular, flexible operations
Native API abuse makes detection extremely difficult
Comprehensive data theft targets 17+ cryptocurrency wallets, browsers, and system credentials
Persistent backdoor provides long-term access with full RCE capabilities
Advanced evasion including proof-of-work, throttling, and obfuscation
Indicators of Compromise (IoCs)
Network Indicators
Domains:
URL Patterns:
File System Indicators
Malware Artifacts:
Hash Files:
Last updated