Operation FlutterBridge: macOS Malvertising Campaign Spreads New FlutterShell Backdoor

Operation FlutterBridge: macOS Malvertising Campaign Spreads New FlutterShell Backdoor
Operation FlutterBridge is a widespread macOS malvertising campaign tied to CL-CRI-1089 that delivers FlutterShell, a Flutter-based backdoor masquerading as legitimate apps while also enabling adware and data exfiltration. The campaign uses verified Google Ads and shell companies to distribute rapidly evolving variants that hijack Google Chrome, execute shell commands, and in some cases forward documents through attacker infrastructure for AI summarization and theft. #FlutterShell #OperationFlutterBridge #CL-CRI-1089 #JSCoreRunner #AdsParkProLTD #AdvantageWebMarketingLLC #SOFTWEARTLIMITED

Keypoints

  • Operation FlutterBridge is the latest stage of a malvertising campaign targeting macOS users and is linked to the CL-CRI-1089 activity cluster.
  • The payload, FlutterShell, is built with Flutter and disguises itself as legitimate desktop apps such as podcast players and PDF viewers.
  • FlutterShell functions as both adware and a backdoor, with capabilities for arbitrary command execution, file manipulation, and environment-variable harvesting.
  • The campaign distributes malware through hundreds of Google-verified ads and shell companies, including AdsParkPro LTD and Advantage Web Marketing LLC, to bypass ad-network vetting.
  • FlutterShell uses a WebView and JavaScript-to-native bridge so malicious logic can be hosted remotely and changed without rebuilding the app.
  • Several variants show active development, increasing obfuscation, and changing command names to evade static analysis and notarization checks.
  • Some variants abuse AI summarization workflows by routing document content through attacker-controlled servers first, enabling data exfiltration alongside the summary output.

MITRE Techniques

  • [T1218 ] System Binary Proxy Execution – The malware leverages legitimate system utilities like Chrome and update-related flows to carry out its activity and relaunch altered apps (‘killall “Google Chrome”‘ and ‘open command on the staged app bundle’).
  • [T1059.007 ] JavaScript – The payload stores and executes malicious logic in remote JavaScript loaded by the WebView bridge (‘the malicious logic is stored on the attackers’ website’ and ‘JSON-formatted commands’).
  • [T1027 ] Obfuscated Files or Information – Variants increasingly obfuscate strings and symbols to hinder analysis (‘some of its strings obfuscated’ and ‘used Flutter’s native –obfuscate flag’).
  • [T1105 ] Ingress Tool Transfer – The malware retrieves configuration and update logic from attacker-controlled web endpoints (‘retrieve the core malicious logic from external endpoints: /getConfig and /getUpdateThanksConfig’).
  • [T1021.003 ] Remote Services: SMB/Windows Admin Shares – Not mentioned.
  • [T1222.001 ] File and Directory Permissions Modification: File System Permissions – The malware reads and writes files in sensitive locations such as Chrome preferences and the Downloads directory (‘modifies Google Chrome configuration files’ and ‘read and write to files in the user’s Downloads directory’).
  • [T1114 ] Email Collection – Not mentioned.
  • [T1056 ] Input Capture – Not mentioned.
  • [T1041 ] Exfiltration Over C2 Channel – The malware forwards document content through attacker infrastructure before AI processing (‘forwards the content to the attackers’ C2 server’ for summarization).
  • [T1071.001 ] Web Protocols – The malware communicates with attacker infrastructure over HTTP(S) endpoints and website content (‘HTTP GET request’ and ‘loads the attackers’ website’).
  • [T1583.006 ] Acquire Infrastructure: Web Services – The attackers use Google Ads and shell-company infrastructure to distribute the malware (‘distributed via hundreds of Google-verified advertisements’).
  • [T1036 ] Masquerading – The applications pose as legitimate podcast players and PDF viewers (‘masquerade as legitimate software’).
  • [T1543.002 ] Create or Modify System Process: System Process – The malware forcefully terminates and relaunches Chrome and swaps app versions during updates (‘forces Chrome to connect’ and ‘programmatically executes the open command’).
  • [T1204 ] User Execution – User interaction can trigger loading of the malicious pages through About or Update buttons (‘When the targeted user clicks the About or Update buttons’).

Indicators of Compromise

  • [SHA256 ] Malicious macOS installers and binaries for the three FlutterShell variants – 021666417de8b9972c179783fe60d4c4ad2d93224e3a0f16137065c960b1b845, 363923500ce942bf1a953e8a4e943fbf1fb1b5ed6e5d247964c345b3ad5bfc34, and 2 more hashes
  • [File names ] Malicious app bundles and DMG installers – PodcastsLounge.dmg, podcasts_lounge.app, PDF-Brain.dmg, PDF-Brain.app, PDF-Ninja.dmg, PDF-Ninja.app
  • [Domains ] C2 and adware infrastructure – atsheisdomestic[.]org, etoftheappyrince[.]org, healightejustb[.]org, and sinterfumesco[.]com
  • [URLs ] Malicious web content and update endpoints – hxxps[:]//atsheisdomestic[.]org/update-thanks.html, hxxps[:]//etoftheappyrince[.]org/update-delay, hxxps[:]//healightejustb[.]org/checkupdateTO.js
  • [Shell commands ] Host fingerprinting and browser hijacking activity – ioreg -rd1 -c IOPlatformExpertDevice | grep IOPlatformUUID | sed ‘s/.*”IOPlatformUUID” = “//; s/”//g’, killall “Google Chrome”
  • [Package / bundle identifiers ] Malware app identifiers observed in variants – com.app.podcastsLounge, com.app.pdfBrain, com.pdfninja.app
  • [Developer IDs ] Signed malicious apps – Yasar Sever (UBZDAAV97Y), Batuhan Dabag (FW9NHQ8922), Yusuf Bal (B73CHZ24Y8)
  • [Actor-related websites ] Prior infrastructure linked to shell entities – ads-parkpro[.]com, adsparkpro[.]top, adsparkpro[.]net, softwe[.]art


Read more: https://unit42.paloaltonetworks.com/flutterbridge-new-fluttershell-backdoor/