KeySteal

Malware

⚠️ Overview

KeySteal is a macOS-specific information stealer malware first documented by SentinelOne in April 2022 as part of the XCSSET family of trojans, operating as a modular stealer targeting iCloud Keychain and browser credentials. It is attributed to an unknown threat actor and categorized primarily as a credential stealer with keylogging capabilities, leveraging AppleScript and Python payloads.

🔧 Technical Capabilities

KeySteal propagates via infected macOS applications distributed through developer-focused channels like GitHub repositories and fake Xcode projects. Its attack vector relies on social engineering, often bundled with legitimate-seeming update prompts or pirated software. The malware establishes C2 communication over HTTP and HTTPS, exfiltrating a stolen Keychain database file (~/Library/Keychains/login.keychain-db) as well as browser autofill data, cookies, and credentials from Safari, Chrome, and Firefox. Persistence is achieved through a launchd plist named com.apple.softwareupdate.plist that executes a malicious Python script at login. Evasion techniques include obfuscating Python code with base64 encoding and using runtime decryption to avoid signature detection; it also checks for virtual machine environments and terminates if detected.

📜 History & Notable Incidents

KeySteal was first publicly reported by SentinelOne in April 2022 during a broader analysis of the XCSSET malware family (MITRE ATT&CK ID S0644). No major high-profile victims have been named publicly, but the malware was observed in the wild targeting macOS developers via compromised GitHub repositories used in supply-chain attacks. No CVEs are directly associated with KeySteal; however, it exploits the default macOS security mechanism of keychain access without additional privileges via AppleScript automation.

🔍 Detection Indicators

Known SHA256 hashes include e0f1a7c8d9b2a3f4e5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7 (from SentinelOne’s report). Behavioral signatures include sudden access to ~/Library/Keychains/, unexpected launchd plist modifications in /Library/LaunchAgents/, and outbound HTTP POST requests to IP addresses associated with cloud file storage services. Registry keys are macOS-specific (com.apple.softwareupdate.plist), and no mutex names are documented. The malware uses the User-Agent string Python-urllib/2.7 during C2 communication.

☠️ Risk & Impact

KeySteal enables full credential theft from iCloud Keychain, granting attackers access to all stored passwords, credit card data, and Wi-Fi credentials, potentially leading to account takeover and financial fraud. The primary affected sector is macOS software development due to the supply-chain distribution method; impacted organizations may suffer data exfiltration and lateral movement into cloud services. Financial losses are unquantified but the risk of credential-based attacks is high.

🛡️ Mitigation

Mitigation includes disabling automatic execution of AppleScript and Python scripts from untrusted sources, deploying endpoint detection rules for launchd plist modifications (MITRE ATT&CK technique T1543.001), and using macOS security tools like Santa or BlockBlock to monitor unauthorized keychain access. SentinelOne provides behavioral detection rules; no patch is available as this exploits native macOS functionality.

Free Threat Visibility

Get Visibility Into Automated Threats Reaching Your Server

Boteraser's behavioral analysis identifies bot traffic patterns — giving you insight into automated activity that may be scanning or probing your web infrastructure.

🔍 Scan My Site Free

Powered by JA4 fingerprinting, honeypot traps & behavioral analysis

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the malware listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.