1 簡介與威脅背景

被稱為 Famous Chollima 的 Threat actor 自 2025 年 5 月起,針對加密貨幣與區塊鏈專業人士部署了一款名為 PylangGhost 的新 Python 遠端存取木馬(RAT)。此惡意軟體在功能上與該組織早期的 GolangGhost RAT 相同,但顯示出語言特定的策略轉變:Python 版本攻擊 Windows 系統 ,而 Go 版本則持續針對 macOS 使用者 。目前 Linux 系統未受影響。主要目標為區塊鏈與加密技術專業人士,透過冒充 Coinbase、Robinhood 和 Uniswap 等合法公司的假面試進行誘騙。

區塊鏈危機:PylangGhost 假面試木馬的攻擊與防禦全解析 | 資訊安全新聞

2 攻擊鏈分析

2.1 初始存取:社交工程

操作者使用以 React 建構的詐騙招聘網站,模仿合法技能測試平台。目標收到「面試代碼」以存取這些網站,並執行以下操作:

  1. 提交個人資訊 (例如身分證明、聯繫資訊)
  2. 回答技術問題 (表面上用以評估區塊鏈專業知識)
  3. 啟用攝影機存取 進行「視訊面試」
  4. 執行偽裝成視訊驅動程式安裝的惡意指令

2.2 惡意軟體散佈與執行

受害者被指示複製特定作業系統的指令:

  • Windows :使用 Invoke-WebRequest 的 PowerShell/CMD 腳本
  • macOS :使用 curl 的 Bash 指令

這些腳本下載包含以下內容的 ZIP 壓縮檔:

  • PylangGhost 模組 (Python 檔案)
  • Visual Basic 腳本(VBS) 用於部署

VBS 執行以下操作:

  • 解壓 Python 函式庫( lib.zip
  • 透過 nvidia.py 執行重新命名的 Python 解譯器

3 技術架構深入探討

3.1 模組層次與功能

PylangGhost 包含六個結構化的 Python 模組:

模組 主要功能
nvidia.py 建立登錄表持久性(Windows)、產生用於 C2 通訊的 GUID、啟動 C2 迴圈
config.py 定義指令碼(例如 qwer 用於系統資訊、 r4ys 用於瀏覽器竊取)及 C2 參數
command.py 執行 C2 指令:Shell 存取、檔案上傳/下載、瀏覽器資料竊取、睡眠計時器
auto.py 從 80 多個瀏覽器擴充功能(例如 MetaMask、1Password)竊取認證/ Cookie,並解密儲存資料
api.py 管理 RC4 加密的 HTTP C2 通訊(金鑰嵌入封包中)
util.py 使用 zlib 壓縮/解壓外洩檔案
表 1:PylangGhost 模組與核心功能

3.2 C2 通訊協定

PylangGhost 使用基於 RC4 的自訂加密協定 透過 HTTP,封包結構如下:

  1. 16 位元組 MD5 checksum 用於完整性驗證
  2. 128 位元組 RC4 key (以明文嵌入)
  3. 加密資料 blob 包含指令或外洩資料

儘管有加密,但封包中包含金鑰,若被攔截則易於解密。

3.3 認證竊取機制

auto.py 模組針對以下內容:

  • 瀏覽器儲存 :從 Chrome、Firefox 和 Edge 解密 Cookie/登入認證
  • 擴充功能 :從 80 多個加密錢包/密碼管理器中抓取資料,包括:
    • MetaMask、Phantom(加密貨幣錢包)
    • 1Password、NordPass(密碼管理器)
    • TronLink、MultiverseX(區塊鏈工具)

資料透過 util.py 壓縮後,使用 COMMAND_FILE_UPLOAD (asdf) 外洩。

3.4 持久性與規避

  • Windows 登錄表 :透過 nvidia.py 新增執行鍵以確保登入時持久性
  • 進程偽裝 :重新命名的 Python 二進位檔案模仿 NVIDIA GPU 工具
  • 無核心依賴 :純 Python 實作避免第三方套件,降低偵測特徵

4 與 GolangGhost 的比較分析

PylangGhost 與其 Golang 前身有深層結構相似性,顯示出共同開發團隊或共享程式碼基底:

功能 PylangGhost (Python) GolangGhost (Go)
主要入口點 nvidia.py cloudfixer.go
指令處理 command.py core/loop.go
認證竊取 auto.py auto/* (多個檔案)
C2 協定 api.py transport/htxp.go
檔案壓縮 util.py util/compress.go
版本控制 設定變數: 1.0 設定變數: 2.0
表 2:PylangGhost 與 GolangGhost 的架構相似性

主要技術差異

  • 作業系統目標 :Python 針對 Windows,Go 針對 macOS(可能因 Go 的跨編譯優勢)
  • 錯誤處理 :Go 的原生並行( goroutines )簡化 C2 彈性,相較於 Python 的執行緒限制
  • 部署 :GolangGhost 使用靜態編譯二進位檔案;PylangGhost 需 Python 環境(但無外部套件)

5 防禦建議

5.1 偵測特徵

  • YARA 規則 :聚焦於 COMMAND_AUTO 等字串及 api.py 中的 RC4 金鑰處理
  • ClamAV 偵測 Win.Backdoor.PyChollima-10045389-0 (多個變體)
  • 網路監控 :標記包含 16 位元組標頭 + 128 位元組金鑰後接二進位 blob 的 HTTP 流量

5.2 緩解策略

  • 使用者訓練 :提醒員工注意要求執行 CLI 指令的假面試
  • 應用程式控制 :阻止從暫存目錄執行 python.exe / python3.exe
  • 瀏覽器強化 :限制工作裝置上加密錢包的擴充功能權限

5.3 企業防護

Cisco 的生態系統提供多層防護:

  • Secure Endpoint :阻止 RAT 執行
  • Umbrella :防止 C2 DNS 解析
  • Secure Email :過濾釣魚誘餌

6 結論

PylangGhost 展現了 適應性惡意軟體開發策略 ,Threat actor 快速迭代跨語言 RAT,同時保留核心功能。其透過假求職網站精準針對加密專業人士,顯示出與攻擊者財務目標一致的精確社交工程。儘管技術簡單—特別是 RC4 實作的缺陷—該惡意軟體的模組化與瀏覽器竊取機制使其成為滲透區塊鏈組織的強大工具。未來變體可能增強加密並針對 Linux,需持續監控 GitHub 活動與假求職域名。

範例程式碼片段

// api.py - RC4 encryption for C2 packets
def encrypt_data(data, key):
    S = list(range(256))
    j = 0
    out = []
    // Key-scheduling algorithm
    for i in range(256):
        j = (j + S[i] + key[i % len(key)]) % 256
        S[i], S[j] = S[j], S[i]
    // Pseudo-random generation algorithm
    i = j = 0
    for char in data:
        i = (i + 1) % 256
        j = (j + S[i]) % 256
        S[i], S[j] = S[j], S[i]
        out.append(char ^ S[(S[i] + S[j]) % 256])
    return bytes(out)
// nvidia.py - Persistence mechanism (Windows)
import winreg as reg
def add_registry_persistence():
    key_path = r"Software\Microsoft\Windows\CurrentVersion\Run"
    try:
        key = reg.OpenKey(reg.HKEY_CURRENT_USER, key_path, 0, reg.KEY_WRITE)
        reg.SetValueEx(key, "NVIDIA_Helper", 0, reg.REG_SZ, r"C:\path\to\nvidia.py")
        reg.CloseKey(key)
    except Exception as e:
        log_error(f"Registry persistence failed: {str(e)}")
Copyright © 2025 版權所有 翊天科技有限公司