作者:Thinking

編輯:Liz

背景概述

2025 年 7 月 2 日,一名受害者聯繫到慢霧安全團隊,尋求協助分析其錢包資產被盜的原因。事件起因於他前一天使用了一個託管在 GitHub 上的開源項目 —— zldp2002/solana-pumpfun-bot,隨後加密資產被盜。

分析過程

我們隨即着手調查此次事件。首先訪問該項目的 GitHub 倉庫:https://github.com/zldp2002/solana-pumpfun-bot,可以看到它的 Star 和 Fork 數量相對較高,但其各個目錄下的代碼提交時間均集中在三週前,呈現出明顯的異常,缺乏正常項目應有的持續更新軌跡。

這是一個基於 Node.js 的項目。我們首先對其依賴包進行了分析,發現其引用了一個名爲 crypto-layout-utils 的第三方包。

進一步覈查發現,該依賴包已被 NPM 官方下架,而且 package.json 中指定的版本並未出現在 NPM 官方的歷史記錄中。我們初步判斷該包爲可疑組件,並已無法通過 NPM 官方源進行下載。那麼,受害者又是如何獲取到這個惡意依賴的呢?

繼續深入項目,我們在 package-lock.json 文件中找到了關鍵線索:攻擊者將 crypto-layout-utils 的下載鏈接替換成了:https://github.com/sjaduwhv/testing-dev-log/releases/download/1.3.1/crypto-layout-utils-1.3.1.tgz。

我們下載了這個可疑的依賴包:crypto-layout-utils-1.3.1,發現這是一個使用 jsjiami.com.v7 進行高度混淆後的代碼,這增加了分析的難度。

解混淆後我們確認了這是一個惡意的 NPM 包,攻擊者在 crypto-layout-utils-1.3.1 中實現了掃描受害者電腦文件的邏輯,如果發現錢包或私鑰相關的內容或文件就上傳到攻擊者控制的服務器上(githubshadow.xyz)。

惡意 NPM 包掃描敏感文件和目錄:

惡意 NPM 包上傳包含私鑰的內容或文件:

我們繼續探索攻擊手法,項目作者(https://github.com/zldp2002/) 疑似控制了一批 GitHub 賬號, 用於 Fork 惡意項目並進行惡意程序分發,同時刷高項目的 Fork 和 Star 數量,引誘更多用戶關注,以便擴大惡意程序的分發範圍

我們還識別出多個 Fork 項目也存在類似惡意行爲,其中部分版本使用了另一款惡意包 bs58-encrypt-utils-1.0.3。

該惡意包自 2025 年 6 月 12 日創建,猜測攻擊者這時候就已經開始分發惡意 NPM 和惡意 Node.js 項目,但在 NPM 下架 bs58-encrypt-utils 後,攻擊者改用了替換 NPM 包下載鏈接的方式進行分發。

此外,我們使用鏈上反洗錢與追蹤工具 MistTrack 分析發現,其中一個攻擊者地址盜幣後,將資金轉移至了交易平臺 FixedFloat。

總結

本次攻擊事件中,攻擊者通過僞裝爲合法開源項目(solana-pumpfun-bot),誘導用戶下載並運行惡意代碼。在刷高項目熱度的掩護下,用戶在毫無防備的情況下運行了攜帶惡意依賴的 Node.js 項目,導致錢包私鑰泄露、資產被盜。

整個攻擊鏈條涉及多個 GitHub 賬號協同操作,擴大了傳播範圍,提升了可信度,極具欺騙性。同時,這類攻擊通過社會工程與技術手段雙管齊下,在組織內部也很難完全防禦。

我們建議開發者與用戶高度警惕來路不明的 GitHub 項目,尤其是在涉及錢包或私鑰操作時。如果確實需要運行調試,建議在獨立且沒有敏感數據的機器環境運行和調試。

惡意依賴包相關信息

惡意 Node.js 項目的 GitHub 倉庫:

  • 2723799947qq2022/solana-pumpfun-bot

  • 2kwkkk/solana-pumpfun-bot

  • 790659193qqch/solana-pumpfun-bot

  • 7arlystar/solana-pumpfun-bot

  • 918715c83/solana-pumpfun-bot

  • AmirhBeigi7zch6f/solana-pumpfun-bot

  • asmaamohamed0264/solana-pumpfun-bot

  • bog-us/solana-pumpfun-bot

  • edparker89/solana-pumpfun-bot

  • ii4272/solana-pumpfun-bot

  • ijtye/solana-pumpfun-bot

  • iwanjunaids/solana-pumpfun-bot

  • janmalece/solana-pumpfun-bot

  • kay2x4/solana-pumpfun-bot

  • lan666as2dfur/solana-pumpfun-bot

  • loveccat/solana-pumpfun-bot

  • lukgria/solana-pumpfun-bot

  • mdemetrial26rvk9w/solana-pumpfun-bot

  • oumengwas/solana-pumpfun-bot

  • pangxingwaxg/solana-pumpfun-bot

  • Rain-Rave5/solana-pumpfun-bot

  • wc64561673347375/solana-pumpfun-bot

  • wj6942/solana-pumpfun-bot

  • xnaotutu77765/solana-pumpfun-bot

  • yvagSirKt/solana-pumpfun-bot

  • VictorVelea/solana-copy-bot

  • Morning-Star213/Solana-pumpfun-bot

  • warp-zara/solana-trading-bot

  • harshith-eth/quant-bot

惡意 NPM 包:

  • crypto-layout-utils

  • bs58-encrypt-utils

惡意 NPM 包下載鏈接:

https://github.com/sjaduwhv/testing-dev-log/releases/download/1.3.1/crypto-layout-utils-1.3.1.tgz

惡意 NPM 包上傳數據的服務器:

githubshadow.xyz