导语:Palo Alto研究员近日发现一起新型macOS ClickFix攻击活动。攻击者在网页中嵌入伪造CAPTCHA页面,诱骗用户复制粘贴恶意命令到终端执行,从而悄无声息地挂载含有AMOS信息窃取木马的DMG镜像。整个攻击链无需用户任何”黑客技术”,却能让攻击者拿到受害者浏览器密码本、加密货币钱包和通讯记录的完整控制权。

一、攻击链路:从网页到终端的步步陷阱
1.1 钓鱼入口:伪造CAPTCHA的心理学博弈
这次攻击的起点并不复杂——一个精心伪造的CAPTCHA验证页面。受害者被引导访问这个页面后,会看到类似”我不是机器人”的验证提示,并被要求”复制下方命令到终端运行”以完成验证。
关键在于这步操作的心理诱导:CAPTCHA本身就是一个让用户主动行动的场景——”复制粘贴验证”对普通用户来说并不陌生,受害者往往不会多想,直接打开终端执行命令。
攻击者利用的就是这种心理惯性。
1.2 终端命令的链式攻击
恶意命令通过 bash -c 启动一个全新的Bash shell实例,随后执行一连串精心设计的命令:
第一步,在 /tmp 目录下生成随机文件名(后缀 .dmg),保存路径到变量 $f。
第二步,用 curl 的静默参数(-fsSL)从远端服务器 svs-verificationdate[.]beer 下载恶意DMG文件,保存到上一步生成的临时路径。-fsSL 参数让下载过程完全不显示任何进度或错误信息。
第三步,用 hdiutil attach -nobrowse 以不可见方式挂载DMG镜像——完全绕过Finder和桌面通知。随后用 awk 过滤输出,提取隐藏卷的挂载路径存到变量 $m。
第四步,用 find 命令在隐藏挂载点内搜索第一个 .app 或 .pkg 安装包,搜索深度为三级目录。一旦找到,立即用 macOS 原生的 open 命令执行。
整个过程悄无声息,DMG挂载后显示为 /Volumes/NNApp/NNApp.app,包标识符为 com.utils.nnapp。
二、木马分析:NNApp.app的完整劫持能力
2.1 基础架构
NNApp.app 是一个通用macOS可执行文件,同时包含Intel和ARM64两种架构,使用C++编写。分析确认它属于AMOS(Atomic macOS Stealer,原子化macOS窃取木马)家族,具体为现代C++版本的Odyssey(奥德赛)变种。
判断依据包括:
- 临时文件目录结构
- 持久化模块的实现方式
- 对加密货币钱包的Trojan化行为
2.2 执行与对抗技术
木马运行时会执行以下反追踪操作:
通过 setsid 将自身从控制终端脱离,然后调用 killall Terminal 2>/dev/null 关闭终端窗口——用户刚执行完命令,窗口就自动消失了,完全不会察觉。
配置文件使用8字节滚动密钥进行XOR加密:
- 密钥值:
a9048cf1c9d113b6 - 每个字节使用右轮换调度表
所有主要功能字符串使用32字节密钥单独XOR加密:
- 密钥:
8111edf01ac6cb5c77e249d4e84fd92a85b5e89c2e2bef92fbe00b6f1cc2aa8e - 解密方式:128位SIMD XOR,运行时即时解密
2.3 凭据钓鱼
木马会弹出伪造的”系统偏好设置”对话框,其中包含一个隐藏答案字段,诱导用户输入密码”以配置系统设置”。
密码捕获后,通过 dscl . -authonly 验证。如果验证失败,则显示第二个对话框,声称”此应用在您的Mac上不受支持”——典型的伪造错误提示,让受害者以为是系统兼容性问题,而不是攻击行为。
三、数据窃取清单:13种加密货币钱包无一幸免
这是整个攻击的核心目的。研究人员完整梳理了木马的数据窃取范围:
浏览器窃取(8款Chromium内核浏览器)
木马针对所有主流Chromium内核浏览器: Arc、Brave、CocCoc、Google Chrome、Microsoft Edge、Opera、Vivaldi、Yandex
窃取内容包括:Cookies、登录数据、Web数据、系统偏好设置,以及Yandex特有的Ya Autofill Data(自动填充数据)、Ya Credit Cards(信用卡数据)、Ya Passman Data(密码管理数据)。
针对这些浏览器的密码加密,攻击者实现了完整的解密链路:
首先通过 security find-generic-password 获取Chrome Safe Storage密钥,然后用 PBKDF2-HMAC-SHA1(1000次迭代,20字节盐)派生出24字节密钥,最后用 3DES-CBC + PKCS7 解密存储的密码。
浏览器窃取(5款Firefox内核浏览器)
针对:LibreWolf、SeaMonkey、Tor Browser、Waterfox、Zen
木马直接读取 cookies.sqlite、formhistory.sqlite、logins.json 和201个浏览器扩展数据目录(Local Extension Settings、IndexedDB、MANIFEST),专门定向搜索加密货币钱包扩展。
加密货币钱包定向劫持(13款应用)
这是最关键的部分。木马针对以下13款主流加密货币钱包应用:
Electrum、Electrum-LTC、Electron Cash、Exodus、Atomic Wallet、Wasabi Wallet、Bitcoin Core、Litecoin Core、DashCore、Guarda、Dogecoin、Binance、TonKeeper
即时通讯软件
Telegram(桌面版)—— 完整聊天数据库 Discord —— 包含通过Discord Safe Storage提取的Keychain密钥
系统级敏感数据
Apple Notes(NoteStore.sqlite) Safari cookies(Cookies.binarycookies) macOS登录Keychain(login.keychain-db) 用户文档中符合 pdf/txt/rtf 规则的所有文件
四、远控与持久化:不止于窃取
4.1 数据外传
木马将所有窃取数据通过 ditto -c -k --sequesterRsrc 压缩为ZIP存档,然后通过 curl --fail -X POST 上传到C2服务器,接口为 /api/reports/upload,附带 user_id 和 build_tag 参数。
两个C2地址:
svs-verificationdate[.]beer(178.16.52[.]101)fewfwfwfwfwf[.]info(196.251.107[.]171)
4.2 持久化与后续控制
木马从C2 /api/agent/download 下载Agent文件,执行 chmod +x 赋予执行权限,用 xattr -c 清除扩展属性(规避Gatekeeper检测),最后安装为LaunchAgent:
~/Library/LaunchAgents/com.hlpr.agent.plist
通过 launchctl load 加载,实现开机自启。
4.3 供应链投毒:正版钱包应用的替换
最阴险的一步:木马从C2 /api/download/app-bundle 下载被篡改的安装包,用 ditto -x -k 解压并替换 /Applications 下的正版应用:
- Ledger Live(ledger-wallet)
- Trezor Suite(trezor-suite)
受害者以为自己在正常使用正版硬件钱包管理软件,实际上运行的是被植入了后门的版本。用户输入的助记词和PIN码,全部被木马截获。
五、关键指标汇总
| 类型 | 指标 |
|---|---|
| SHA256(DMG) | 25b6fc4f9c54a28ba7bfc4dfeafb62c99b59ea6f0d17679219b876b321965095 |
| SHA256(NNApp.app) | 067ad6221b2224d5cdb64e51c5516132d820cf4d7edf9ec170643943e79c04b7 |
| SHA256(x64载荷) | d6f479736ba55d3c4e895c4940d035cf772f3192fb8dc496f09a801aed16d970 |
| SHA256(ARM载荷) | 833008c03d40422192051584d829d730497108bef31751cceb0cc043dd96bbfb |
| C2域名 | svs-verificationdate[.]beer |
| C2域名 | fewfwfwfwfwf[.]info |
| C2 IP | 196.251.107[.]171 |
| 木马标识符 | com.utils.nnapp |
| Build ID | 123 / Campaign 25 / noname3 |
| 主机痕迹目录 | ~/.hlpr/ |
| 持久化文件 | ~/Library/LaunchAgents/com.hlpr.agent.plist |
六、安全建议
- 绝不执行来源不明的终端命令,即便是复制粘贴形式的”验证”操作
- CAPTCHA不会要求用户在终端执行命令——这是判断钓鱼页面的最直接依据
- macOS设置中启用内核隔离和Gatekeeper,阻止未知来源应用运行
- 加密货币用户启用硬件签名设备,不要完全依赖软件钱包
- 定期检查
~/.hlpr/目录和~/Library/LaunchAgents/,确认无未知文件 - 安全团队应关注178.16.52[.]101和196.251.107[.]171的流量














暂无评论内容