Odyssey is a macOS-focused infostealer sold and operated as a malware-as-a-service offering. It is widely assessed as the successor and rebrand of Poseidon Stealer, itself derived from the Atomic macOS Stealer (AMOS) lineage, and has become one of the most prevalent stealer families targeting Apple systems. Odyssey has been associated with campaigns aimed at cryptocurrency users, software developers, and general macOS users through fake software installers, branded lure pages, and ClickFix-style social engineering.
Odyssey is designed to rapidly collect and exfiltrate sensitive user data. Reported collection targets include browser cookies, saved credentials, authentication data, login keychains, Apple Notes content, browser extension data, and extensive cryptocurrency wallet material from both browser-based and desktop wallet applications. Multiple reports also describe theft of passwords and wallet secrets through fake prompts and trojanized wallet application workflows. Administrative panel functionality tied to Odyssey indicates support for bot management, stolen log handling, AppleScript payload building, SOCKS proxy management, guest access, and configurable exfiltration channels including Telegram and FTP, with newer builds also supporting cryptocurrency seed phrase handling and emergency teardown features.
Observed delivery methods rely heavily on user-driven execution rather than exploitation. Odyssey has been distributed through ClickFix campaigns that impersonate brands such as TradingView and Microsoft Teams, prompting victims to copy and execute malicious commands. It has also been spread through fake Homebrew and LogMeIn lures, weaponized disk images masquerading as legitimate macOS software installers, poisoned search results, piracy-themed distribution, and fake download pages that tailor payloads based on the visitor operating system. Some campaigns used drag-to-install or drag-to-Terminal style social engineering within mounted DMG images, while others used AppleScript or shell-based execution chains.
Behavior observed in campaigns includes system profiling, local password validation, collection of browser and wallet data, staging of stolen files into archives, and exfiltration to operator-controlled infrastructure. Some variants establish persistence on macOS, including through LaunchDaemon installation, and at least one campaign replaced a legitimate cryptocurrency wallet application with a trojanized version to facilitate continued theft. Odyssey activity also reflects broader macOS malware trends such as code-signing abuse, notarized delivery, and reuse of tradecraft across related AMOS-derived families.
Odyssey is part of a broader criminal ecosystem rather than a state-linked intrusion set. Reporting has tied it to affiliate-style operations and MaaS distribution, with infrastructure and lure-page customization suggesting multiple operators or customers. Its prevalence, frequent rebranding within the AMOS/Poseidon/Odyssey cluster, and overlap with other macOS stealers complicate tracking, but the family is consistently characterized as a high-volume macOS infostealer focused on credential theft, session theft, and cryptocurrency-related data theft.
Mallory pivots from this family to the IOCs, detections, and named campaigns that touch your stack, and pages you when something new lands.
31 distinct techniques documented for this family, organized by ATT&CK tactic.
LaunchDaemon persistence: downloads a shell command string, wraps it in a random-named com.<random>.plist, installs to /Library/LaunchDaemons/, launchctl bootstrap system ...; falls back to nohup run if bootstrap fails. Requires sudo, hence the password prompt earlier. (T1543.004, T1053.003)
One-liner launches a large embedded AppleScript with osascript -e 'run script ...'. No exploit, just script execution. (T1059.002)
LaunchDaemon persistence: downloads a shell command string, wraps it in a random-named com.<random>.plist, installs to /Library/LaunchDaemons/, launchctl bootstrap system ...; falls back to nohup run if bootstrap fails. Requires sudo, hence the password prompt earlier. (T1543.004, T1053.003)
LaunchDaemon persistence: downloads a shell command string, wraps it in a random-named com.<random>.plist, installs to /Library/LaunchDaemons/, launchctl bootstrap system ...; falls back to nohup run if bootstrap fails. Requires sudo, hence the password prompt earlier. (T1543.004, T1053.003)
LaunchDaemon persistence: downloads a shell command string, wraps it in a random-named com.<random>.plist, installs to /Library/LaunchDaemons/, launchctl bootstrap system ...; falls back to nohup run if bootstrap fails. Requires sudo, hence the password prompt earlier. (T1543.004, T1053.003)
LaunchDaemon persistence: downloads a shell command string, wraps it in a random-named com.<random>.plist, installs to /Library/LaunchDaemons/, launchctl bootstrap system ...; falls back to nohup run if bootstrap fails. Requires sudo, hence the password prompt earlier. (T1543.004, T1053.003)
Checks if it can auth the local user with dscl . authonly. If not, it prompts the user with a fake dialog: “Required Application Helper. Please enter device password to continue.” It loops until the correct password is entered. (T1056.002, T1110)
When the wrapper sees a POST request to /api/v1/sign-in, it extracts username and password from the request body Sends both to https://scan-tron[.]link/l?d=
Checks if it can auth the local user with dscl . authonly. If not, it prompts the user with a fake dialog: “Required Application Helper. Please enter device password to continue.” It loops until the correct password is entered. (T1056.002, T1110)
Credentials, browser cookies, authentication tokens, and crypto wallets are all fair game.
Stashes the captured password at ~/.pwd. (T1555, T1078)
Tries to pull the Chrome keychain item via security ... find-generic-password -ga "Chrome" and writes a “masterpass-chrome” file. (T1555.001)
Browsers (Chromium family: Chrome, Brave, Edge, Vivaldi, Opera, OperaGX, Chromium, etc.) Walks every Default/Profile * profile and copies: Cookies, Web Data, Login Data (saved logins & autofill). (T1555.003)
Local Extension Settings/ and IndexedDB/ for a very long allowlist of extension IDs (wallets, password managers, etc.). (T1005)
Checks if it can auth the local user with dscl . authonly. If not, it prompts the user with a fake dialog: “Required Application Helper. Please enter device password to continue.” It loops until the correct password is entered. (T1056.002, T1110)
When the wrapper sees a POST request to /api/v1/sign-in, it extracts username and password from the request body Sends both to https://scan-tron[.]link/l?d=
Mirrors directory trees but skips noisy caches (GPUCache, Code Cache, Crashpad, Cache, etc.). (T1074)
Apple Notes database (NoteStore.sqlite, -wal, -shm) + a fallback that talks to the Notes app to export note bodies into HTML; also vacuums Notes attachments from Notes “Media” folders. (T1119, T1113)
8 indicators attributed across vendor reports, sandbox runs, and researcher write-ups. Full values are available in Mallory.
IPs, domains, and DNS infrastructure linked to this family.
Other indicator types observed in public reporting.
14 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A macOS infostealer and AMOS fork heavily distributed via fake software lures; part of the broader AMOS lineage dominating stealer detections.
A macOS infostealer used in fake installer campaigns leveraging weaponized DMG files to trick users into approving execution and rapidly exfiltrate sensitive information.
A macOS infostealer platform with an operator panel supporting bot management, credential and cookie theft, seed phrase extraction, SOCKS proxying, AppleScript payload building, log export, persistence, and remote shell/tasking capabilities.
Referenced as a related macOS infostealer variant with similar behavior to Shub Stealer.
Match every observed IP, domain, and hash against your live telemetry.
Named campaigns wielding this family, with evidence pinned to each claim.
CVEs this family uses for access and lateral movement.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Every documented technique, ranked by evidence weight.
Reddit, Mastodon, and CTI community discussion around this family.