Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

  • 事件背景:2025年7月初,慢霧安全團隊接獲多起用戶加密資產被盜案件,調查發現攻擊者透過GitHub上的開源專案(如solana-pumpfun-botpumpfun-pumpswap-sniper-copy-trading-bot)植入惡意程式碼,竊取用戶私鑰。

  • 攻擊手法

    • 惡意程式碼隱藏在設定檔config.rscreate_coingecko_proxy()方法中,透過以下步驟竊取私鑰:
      1. 讀取.env檔案中的私鑰(PRIVATE_KEY)。
      2. 解碼硬編碼的攻擊伺服器位址(如http://103.35.189.28:5000/api/wallets)。
      3. 將私鑰以Base58格式封裝成JSON,透過POST請求傳送至攻擊者伺服器。
    • 惡意行為偽裝成正常功能(如價格查詢),並利用無退出條件的loop {}消耗資源,避免用戶察覺異常。
  • 動態分析驗證

    • 研究團隊搭建測試伺服器,替換惡意URL編碼後成功攔截到外傳的私鑰,證實攻擊流程。
    • 攻擊者近期更新GitHub專案,更換伺服器位址編碼以逃避追蹤。
  • 入侵指標(IoCs)

    • IP:103.35.189.28(位於美國)。
    • 惡意倉庫audiofilter/pumpfun-pumpswap-sniper-copy-trading-bot等GitHub專案。
    • 類似手法專案:多個Solana相關機器人專案(如Solana-MEV-Bot-Optimized)可能採用相同攻擊模式。
  • 安全建議

    • 避免使用來路不明的開源專案,尤其是涉及私鑰操作的程式。
    • 測試或調試時,應在獨立環境中進行,並確保無敏感資料暴露。

此事件凸顯開源專案可能被濫用於社會工程攻擊,使用者需提高警覺性。

總結

作者:Joker&Thinking

編輯:KrsMt.

背景

在2025 年7 月初,慢霧安全團隊接獲一名受害用戶的求助,請求協助分析其加密資產被竊的原因。調查發現,事件源自於該用戶使用了託管在GitHub 上的開源專案zldp2002/solana-pumpfun-bot,進而觸發了隱藏的盜幣行為,詳情請見GitHub 熱門Solana 工具來隱藏盜幣陷阱。

近期,又有用戶因使用類似的開源專案- audiofilter/pumpfun-pumpswap-sniper-copy-trading-bot,導致加密資產被盜,並聯繫慢霧安全團隊。對此,團隊進一步深入分析了該攻擊手法。

分析過程

靜態分析

我們先透過靜態分析的方式,尋找攻擊者設定的陷阱。經分析,發現可疑程式碼位於/src/common/config.rs設定檔中,主要集中在create_coingecko_proxy()方法內:

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

從程式碼可見,create_coingecko_proxy() 方法首先呼叫了import_wallet(),該方法進一步呼叫import_env_var() 來取得私鑰。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

在import_env_var() 方法中,主要用於取得.env 檔案中的環境變數配置資訊。

在呼叫過程中,如果環境變數存在,則直接返回;若不存在,則進入Err(e) 分支,列印錯誤訊息。由於存在無退出條件的loop {} 循環,會導致資源持續消耗。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

PRIVATE_KEY(私鑰)等敏感資訊也儲存在.env檔案中。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

回到import_wallet() 方法,當其中呼叫import_env_var() 取得到PRIVATE_KEY(私鑰)後,惡意程式碼會對私鑰長度進行判斷:

  • 若私鑰長度小於85,惡意程式將列印錯誤訊息,並由於存在無退出條件的loop {} 循環,會導致資源持續消耗,惡意程式無法正常退出;
  • 若私鑰長度大於85,則使用Solana SDK 將該Base58 字串轉換為Keypair 對象,其中包含私鑰資訊。

隨後,惡意程式碼使用Arc 對私鑰資訊進行封裝,以支援多執行緒共用。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

回到create_coingecko_proxy() 方法,在成功取得私鑰資訊後,惡意程式碼接著對惡意URL 位址進行解碼。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

此方法首先取得編碼後的HELIUS_PROXY(攻擊者伺服器位址)此硬編碼常數。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

隨後,惡意程式碼使用bs58 對HELIUS_PROXY(攻擊者伺服器位址)進行解碼,將解碼結果轉換為位元組數組,並透過from_utf8() 將該位元組數組進一步轉為UTF-8 字串。

透過編寫腳本可還原出HELIUS_PROXY 解碼後的真實位址如下:

http://103.35.189.28:5000/api/wallets

惡意程式碼在成功解碼出URL (http://103.35.189.28:5000/api/wallets) 後,先建立一個HTTP 用戶端,將取得到的私鑰資訊payer 使用to_base58_string() 轉換為Base58 字串。

隨後,惡意程式碼建構JSON 請求體,並將轉換後的私鑰資訊封裝其中,透過建置POST 請求,將私鑰等資料傳送至上述URL 所指向的伺服器,同時忽略回應結果。

無論伺服器傳回何種結果,惡意程式碼仍會繼續運行,以避免引起使用者察覺。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

此外,create_coingecko_proxy() 方法中還包含取得價格等正常功能,以掩飾其惡意行為;此方法名稱本身也經過偽裝,具有一定的迷惑性。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

透過分析可知,create_coingecko_proxy() 方法在應用程式啟動時被調用,具體位於main.rs 中main() 方法的設定檔初始化階段。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

在設定檔src/common/config.rs 的new() 方法中,惡意程式碼首先載入.env 文件,隨後又呼叫create_coingecko_proxy() 方法。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

據分析,該伺服器的IP 位址位於美國。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

 (https://www.virustotal.com/gui/ip-address/103.35.189.28)

觀察到該專案在GitHub 上於近期(2025 年7 月17 日)進行了更新,主要變更集中在src 目錄下的設定檔config.rs 中。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

在src/common/config.rs 檔案中,可以看到HELIUS_PROXY(攻擊者伺服器位址)的原始位址編碼已被替換為新的編碼。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

使用腳本對原始位址編碼進行解碼後,可取得原始伺服器位址。

// 原位址編碼HELIUS_PROXY:2HeX3Zi2vTf1saVKAcNmf3zsXDkjohjk3h7AsnBxbzCkgTY99X5jomSUkBCW7wodoq29Y// 解碼得到的原伺服器位址https://allstorebackend-qp3.

動態分析

為了更直觀地觀察惡意程式碼的竊取過程,我們採用動態分析方法,編寫了一個Python 腳本,用於產生測試用的Solana 公私鑰對。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

同時,我們在伺服器上搭建了一個能夠接收POST 請求的HTTP 伺服器。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

編寫Python 腳本產生測試伺服器對應的編碼,並將其替換原攻擊者設定的惡意伺服器位址編碼,即HELIUS_PROXY(攻擊者伺服器位址)處。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

隨後,將.env 檔案中的PRIVATE_KEY(私鑰)替換為剛產生的測試私鑰。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

接下來,啟動惡意程式碼並觀察伺服器端介面的回應。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

我們可以看到,測試伺服器成功接收了惡意專案發送的JSON 數據,其中包含PRIVATE_KEY(私鑰)資訊。

Solana生態再現惡意機器人:設定檔暗藏私鑰外傳陷阱

入侵指標(IoCs)

IPs:

103.35.189.28

Domains:

storebackend-qpq3.onrender.com

SHA256:

  • 07f0364171627729788797bb37e0170a06a787a479666abf8c80736722bb79e8 - pumpfun-pumpswap-sniper-copy-trading-botbot-master.zip
  • ace4b1fc4290d6ffd7da0fa943625b3a852190f0aa8d44b93623423299809e48 - pumpfun-pumpswap-sniper-copy-trading-bot-master/srs/common/config.

惡意倉庫:

https://github.com/audiofilter/pumpfun-pumpswap-sniper-copy-trading-bot

類似實現手法:

  • https://github.com/BitFancy/Solana-MEV-Bot-Optimized
  • https://github.com/0xTan1319/solana-copytrading-bot-rust
  • https://github.com/blacklabelecom/SAB-4
  • https://github.com/FaceOFWood/SniperBot-Solana-PumpSwap
  • https://github.com/Alemoore/Solana-MEV-Bot-Optimized
  • https://github.com/TopTrenDev/Raypump-Executioner-Bot
  • https://github.com/deniyuda348/Solana-Arbitrage-Bot-Flash-Loan

總結

在本分享的攻擊手法中,攻擊者透過偽裝成合法開源項目,誘導使用者下載並執行該惡意程式碼。此專案會從本機讀取.env 檔案中的敏感訊息,並將盜取的私鑰傳輸至攻擊者控制的伺服器。這類攻擊通常結合社會工程技術,使用者稍有不慎便可能中招。

我們建議開發者與用戶對來路不明的GitHub 專案保持高度警惕,尤其是涉及錢包或私鑰操作時。如確需運行或調試,建議在獨立且無敏感資料的環境中進行,避免執行來源不明的惡意程式和命令。

分享至:

作者:慢雾科技

本文為PANews入駐專欄作者的觀點,不代表PANews立場,不承擔法律責任。

文章及觀點也不構成投資意見

圖片來源:慢雾科技如有侵權,請聯絡作者刪除。

關注PANews官方賬號,一起穿越牛熊
推薦閱讀
7分鐘前
28分鐘前
1小時前
2小時前
2小時前
3小時前

熱門文章

行業要聞
市場熱點
精選讀物

精選專題

App内阅读