该文章分析了一个恶意Solana开源交易机器人的威胁情报。攻击者通过伪装成合法的开源项目,诱使用户执行恶意代码,该代码会窃取存储在本地.env文件中的私钥,并将其传输到攻击者控制的服务器。文章通过静态分析和动态分析,揭示了攻击的原理、恶意代码的位置,并给出了安全建议。
作者:Joker & Thinking
编辑:KrsMt
2025 年 7 月初,SlowMist 安全团队收到一位受害者的求助请求,希望分析其加密资产被盗的原因。调查显示,该事件源于使用了 GitHub 上托管的一个开源项目——zldp2002/solana-pumpfun-bot
——该项目触发了一个隐藏的窃币机制。更多详情,请参考我们之前的分析:
“ GitHub 上流行的 Solana 工具隐藏着加密货币盗窃陷阱 ”
最近,另一位用户在使用类似的开源项目——audiofilter/pumpfun-pumpswap-sniper-copy-trading-bot
——后也成为了受害者,导致资产被盗,并向 SlowMist 团队发出了后续的协助请求。为了响应,我们的团队对这种攻击媒介进行了更深入的技术分析。
我们首先进行了静态分析,以识别攻击者嵌入的陷阱。我们的发现揭示了位于以下位置的配置文件中的可疑代码:
/src/common/config.rs
重点是 create_coingecko_proxy()
方法。
从代码中可以明显看出,create_coingecko_proxy()
方法首先调用 import_wallet()
,而 import_wallet()
又调用 import_env_var()
来获取私钥。
import_env_var()
函数主要用于从 .env
文件中检索环境变量配置。
如果环境变量存在,则直接返回。如果不存在,则代码进入 Err(e)
分支并记录错误消息。值得注意的是,它包含一个没有退出条件的 loop {}
,这会导致通过进入无限循环而耗尽资源。
诸如 PRIVATE_KEY
之类的敏感数据存储在 .env
文件中。
回到 import_wallet()
中,一旦 import_env_var()
检索到 PRIVATE_KEY
,恶意代码会检查密钥的长度:
loop {}
,导致无限的资源消耗并阻止程序退出。Keypair
对象,其中包含私钥。然后将私钥包装在 Arc
(原子引用计数指针)中,以允许在线程之间安全共享。
回到 create_coingecko_proxy()
,在成功获取私钥后,恶意代码继续解码一个硬编码的恶意 URL。
该方法获取一个名为 HELIUS_PROXY
的编码常量(攻击者的服务器地址)。
使用 bs58
解码库,代码将 HELIUS_PROXY
解码为一个字节数组,并通过 from_utf8()
将其转换为 UTF-8 字符串。
解码后的攻击者控制的端点是:
http://103.35.189.28:5000/api/wallets
解码 URL 后,代码会创建一个 HTTP 客户端,并通过 to_base58_string()
将提取的 payer
私钥转换为 Base58 字符串。
接下来,它构建一个 JSON 有效载荷,嵌入私钥,并通过 POST 请求将其发送到攻击者的服务器。无论成功与否,都会忽略响应,以避免提醒用户。
此外,create_coingecko_proxy()
方法包含看起来合法的 功能,例如价格检索,这有助于掩盖其恶意意图。该方法名称本身也具有误导性,增加了欺骗性。
此方法在应用程序启动时执行,作为位于 main.rs
中的 main()
函数中的配置初始化过程的一部分。
src/common/config.rs
中的 new()
方法加载 .env
文件并调用 create_coingecko_proxy()
。
IP 分析显示,攻击者的服务器托管在美国:
https://www.virustotal.com/gui/ip-address/103.35.189.28
据观察,该项目最近在 GitHub 上进行了更新(2025 年 7 月 17 日),主要的更改是在 src
目录下的配置文件 config.rs
中进行的。
在 src/common/config.rs
文件中,原始编码值 HELIUS_PROXY
(攻击者的服务器地址)已替换为新的编码字符串。
通过使用脚本解码原始值,先前使用的服务器地址显示为:
// Original HELIUS_PROXY encoded string:
2HeX3Zi2vTf1saVKAcNmf3zsXDkjohjk3h7AsnBxbzCkgTY99X5jomSUkBCW7wodoq29Y
// Decoded malicious server address:
https://storebackend-qpq3.onrender.com/api/wallets
为了更好地可视化恶意行为和资产 渗透 过程,我们进行了动态分析。我们首先编写了一个 Python 脚本来生成一个测试 Solana 密钥对(公钥和私钥)。
然后,我们部署了一个能够接收 POST 请求的本地 HTTP 服务器。
接下来,我们修改了恶意项目的代码,将原始的 HELIUS_PROXY
(攻击者的服务器地址)替换为我们自己的测试服务器地址——使用相同的方法正确编码——并将 .env
文件的 PRIVATE_KEY
替换为我们新生成的测试私钥。
启动恶意项目后,我们监控了测试服务器的日志。
正如预期的那样,测试服务器成功接收到了来自恶意项目的 POST 请求。有效载荷 包含 JSON 格式的数据,包括测试 PRIVATE_KEY
——确认了盗窃行为。
IP 地址:
103.35.189.28
域名:
storebackend-qpq3.onrender.com
SHA256 哈希值:
恶意仓库:
类似实现:
在此事件中,攻击者将其恶意代码伪装成合法的开源项目,以引诱用户执行它。一旦启动,该程序就会静默地提取敏感数据——特别是存储在本地 .env
文件中的私钥——并将其传输到由攻击者控制的服务器。
这种类型的攻击通常利用社会工程,利用用户对开源存储库的信任。一次疏忽可能会导致严重的资产损失。
建议:
有关在区块链领域保护自己的更多参考和指导,我们推荐 SlowMist 出版物:
“区块链黑暗森林自保手册”
https://github.com/slowmist/Blockchain-dark-forest-selfguard-handbook/blob/main/README_CN.md
SlowMist 是一家成立于 2018 年 1 月的区块链安全公司。该公司由一个拥有超过十年网络安全经验的团队创办,旨在成为全球力量。 我们的目标是使区块链生态系统对每个人都尽可能安全。 我们现在是一家著名的国际区块链安全公司,曾参与过各种知名项目,例如 HashKey Exchange、OSL、MEEX、BGE、BTCBOX、Bitget、BHEX.SG、OKX、Binance、HTX、Amber Group、Crypto.com 等。
SlowMist 提供多种服务,包括但不限于安全审计、威胁情报、防御部署、安全顾问和其他安全相关服务。 我们还提供 AML(反洗钱)软件、MistEye(安全监控)、SlowMist Hacked(加密 黑客 档案)、FireWall.x(智能合约 防火墙)和其他 SaaS 产品。 我们与国内外公司建立了合作伙伴关系,例如 Akamai、BitDefender、RC²、天际伙伴、IPIP 等。 我们在加密货币犯罪调查方面所做的大量工作已被国际组织和政府机构引用,包括联合国安全理事会和联合国毒品和犯罪问题办公室。
通过提供定制的针对单个项目的全面安全解决方案,我们可以识别风险并防止它们发生。 我们的团队能够发现并发布多个高风险区块链安全漏洞。 通过这样做,我们可以传播意识并提高区块链生态系统中的安全标准。
- 原文链接: slowmist.medium.com/thre...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!