無基礎設施攻擊分析:利用 Dead-Drop Resolver 與 Microsoft Graph API 洗白 C2 流量

‍

近年來,進階持續性威脅 (Advanced Persistent Threat,APT) 攻擊者正逐漸減少使用傳統的命令與控制 (Command and Control,C2) 基礎設施。攻擊者不再維護容易被封鎖或強制關閉的特定伺服器,而是頻繁地濫用合法服務與受駭的公共基礎設施來隱藏其行動。

在本研究中,我們聚焦一場自 2024 年起針對台灣政府與製造業的 APT 攻擊。此活動特別之處在於,攻擊者幾乎在「沒有特定基礎設施」的情況下運作,並依賴多種 Dead-Drop Resolver 機制來維持隱蔽的 C2 通訊。我們將涵蓋攻擊者行為特徵、完整的攻擊鏈,包含初始入侵、利用 AD CS(AD 憑證服務)錯誤設定提權,以及對三個惡意程式家族的分析:GRAPHBROTLI、GRAPHRELOOK 與 RCREMARK。

‍

事件概述

惡意組織

我們認為此攻擊活動極可能由具中國背景的國家級威脅組織發動,關鍵特徵包含:

  • 活躍時間: 2024 年至今
  • 目標區域: 台灣
  • ‍目標產業:
    • 政府機關
    • 製造業
  • 觀測到的惡意程式家族:
    • GRAPHBROTLI
    • GRAPHRELOOK
    • RCREMARK

這些惡意程式家族使用不同的 C2 技術,但設計邏輯皆相同:盡可能避免使用傳統基礎設施。

雲端 C2 的興起

使用雲端服務進行 C2 通訊並非首創,但近年來已變得更加普遍。例如,2024 年 Proofpoint 報告中紀錄了攻擊者在針對台灣半導體產業時,將 Google 表單 作為 C2 頻道。這些技術能讓惡意流量與合法的雲端服務使用完美融合。

在此案例中,攻擊者做得更徹底。他們不依賴單一通訊頻道,而是同時結合了多種 Dead-Drop Resolver 技術,使偵測與封鎖變得更加困難。

無基礎設施對抗模型(Infrastructure-Less Adversary Model)

我們稱此威脅組織手法為「無基礎設施」,因為他們幾乎不依賴傳統上、由攻擊者控制的伺服器。相反地,攻擊者傾向使用一種間接的 C2 技術:Dead-Drop Resolver。在此活動中,我們觀測到了三種 Dead-Drop Resolver 型態。

‍

型態
描述
例子
雲端服務 利用合法雲端服務進行 C2 通訊。近年來此手法已日益普及。 Microsoft Graph API、 Google 表單等。
使用 Cloudflare 隱藏 C2 位址 使用 Cloudflare 隱藏 C2 通訊以逃避追蹤與封鎖。
濫用遭駭的網頁 濫用遭駭的舊版網頁來託管惡意 payload,有效地使其充當公共雲端硬碟。 學校或診所官網、舊版網頁等。

‍

攻擊鏈概述

‍

‍

初始入侵

此攻擊的初始入侵是社交工程釣魚,有許多內部端點被駭。攻擊者一旦進入受害者內部環境,會利用初始入侵取得的高權限帳號,透過 SMB 橫向移動。接著,攻擊者會部署 SoftEther VPN(一種開源 VPN 解決方案,用於穩定的遠端存取),以維持長期的網路存取。

持續性與資料外洩

在事件回應 (Incident Response,IR) 期間,受害組織移除了一些惡意檔案與軌跡。然而,與組織相關的機敏資料仍持續出現在暗網市場,顯示攻擊者依然保有存取權,我們進一步揭露此根本原因。

武器化的登入腳本

攻擊者修改了最初由受害者管理員設定、合法的 AD 登入腳本 gpupdate.bat。這是典型的 「Living off the Land」(就地取材攻擊) ,意即利用受害者系統上已存在的腳本進行攻擊。攻擊者在腳本末端附加了惡意程式碼,用來下載下一階段的 Python 腳本。隨後,攻擊者將 gpupdate.bat 腳本還原為原始狀態以掩蓋行蹤,我們稱此為 「瞬時修改」(Ephemeral Modification)。

‍

original gpupdate.bat

‍

modified gpupdate.bat

‍

在另一個被修改過的 gpupdate.bat 中,我們觀測到攻擊者從一個受駭的公共網站下載下一階段的 Python 腳本。

‍

‍

搜尋關鍵字 「GoWeb2」 會發現許多網站的基礎便是此框架。值得注意的是,HITCON Zerodays 曾揭露過一個影響 GoWeb2 的 SQL 注入(SQL Injection)漏洞,我們懷疑攻擊者利用此漏洞控制了該網站。受駭網站隨後被用來託管惡意 payload,有效地充當了派送惡意程式的 Dead-Drop Resolver。

‍

在 Google 上搜尋 GoWeb2

‍

HITCON Zerodays 揭露的 SQL 注入漏洞

‍

瞬時修改 (Ephemeral Modification)

這次活動中最值得關注的技術之一是「瞬時修改」。 攻擊者的步驟依序為:修改合法腳本、等待執行,還原原始內容。

由於此惡意修改是暫時的,鑑識分析通常只能找到原始檔案,且標準日誌可能不會記錄此類修改,導致偵測難度顯著提升。

根本原因:AD CS 設定錯誤

攻擊者能夠修改群組原則(Group Policy)腳本的能力讓我們深思:他們是如何獲得足夠權限的?對受害者 AD 環境的深入調查後,我們發現了多項 AD CS 的錯誤設定。

‍

‍

我們觀測到設定錯誤包括:

  • ESC1(憑證範本設定錯誤)
  • ESC3(註冊代理範本設定錯誤)
  • ESC8(針對 ADCS Web 註冊的 NTLM 中繼攻擊)
  • ESC11(針對 RPC 憑證註冊的 NTLM 中繼攻擊)

ESC 是由 SpecterOps 發現的一系列 AD CS 攻擊技術。這些技術利用憑證範本中的設定漏洞,讓權限極低的帳號也能提權為網域管理員 (Domain Admin)。

我們認為攻擊者的確利用了 AD CS 的設定錯誤來提升權限,透過取得網域管理員等級的憑證,攻擊者便能獲得修改登入腳本 (Logon Script) 所需的必要權限。

以 ESC1 設定錯誤為例:我們發現「Domain Users」與「Authenticated Users」組別被授予了對「Web Server」憑證範本的註冊 (Enroll) 權限。這意味著任何低權限帳號在申請憑證時,都可以藉由 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 設定、偽裝成網域管理員,最終攻陷整個網域。

‍

惡意軟體分析

‍

‍

攻擊者一旦取得網域管理員權限,便會修改登入腳本,將惡意程式派送至全組織。

此事件中派送了三種惡意軟體家族:

  • GRAPHBROTLI
  • GRAPHRELOOK
  • RCREMARK

惡意軟體下載器:setup.py

初始 payload 是一個以 Python 編寫的下載器。特別的是,攻擊者並不受限於受害主機是否安裝過 Python,而是直接傳送一個封裝在 tar 壓縮檔中的自包含(Self-contained)Python 環境,壓縮檔包含:

  • python.exe
  • minimal libraries
  • malicious scripts

‍

‍

這種做法的可攜性極高,且與 PyInstaller 封裝的執行檔相比,被防毒軟體偵測到的機率明顯較低。此外,腳本中包含大量的垃圾程式碼(Junk code),可以混淆其惡意行跡。

‍

(上)用以偽裝成正常腳本的垃圾程式碼;(下)執行由 Base64 加密的 payload

‍

變體:Node.js 下載器

在某些系統中,攻擊者改用 Node.js 變體。他們修改原本就會被合法服務自動執行的 log.js 檔案,在植入惡意程式碼後隨即將內容還原,這也是另一個「瞬時修改」的案例。

‍

惡意軟體家族

GRAPHBROTLI

GRAPHBROTLI 以 Go 語言編寫,使用 Microsoft Graph API 作為 C2 管道。此惡意程式內嵌了 client_id 與 client_secret,透過 OAuth 用戶端憑證授權流程(Client Credentials Grant Flow) 進行身分驗證,全程無需使用者操作。

‍

‍

GRAPHBROTLI 會定期從 Microsoft Graph 擷取使用者列表。

‍

‍

隨後檢查使用者的屬性(例如 streetAddress),若屬性中包含啟動關鍵字 start,就會將該值解碼並執行為 Shell 指令。

‍

‍

在這種設計下,每個使用者物件都相同於一則 C2 指令。指令 payload 採用相當獨特的 Brotli 壓縮和 Base91 編碼。這兩者都是不常被使用的演算法:Brotli 是一種壓縮演算法,而 Base91 是 Base64 的變體(使用 91 個字元而非 64 個)。兩者結合更加罕見,適合作為此惡意程式的標誌性特徵。

在我們檢查雲端環境時,僅解密出攻擊者下達的最後一條指令 hostname。

‍

‍

GRAPHRELOOK

GRAPHRELOOK 利用合法的 U-Messenger.exe 執行檔進行 DLL 側載(DLL Sideloading),使系統載入位於同一目錄下的惡意 version.dll。
執行期間,U-Messenger.exe 會帶入參數 re 自行重啟。隨後,載入器會解密並執行儲存在 config.dat 中的 Shellcode。

‍

‍

GRAPHRELOOK 同樣使用 Microsoft Graph 作為 C2,但機制不同。它不查詢使用者屬性,而是與 Outlook API 互動。

‍

‍

由攻擊者控制的 Outlook 帳號會發送郵件來下達指令,這有效地將惡意通訊隱藏在合法的電子郵件基礎設施中。

‍

‍

RCREMARK

RCREMARK 是一款較傳統的後門程式,它使用 Base64 與帶有固定金鑰的 RC4 加密來進行字串混淆。

‍

‍

與前述兩者不同,其 C2 託管於隱藏在 Cloudflare 下的基礎設施。啟動時,惡意程式會將主機資訊傳送至 C2 伺服器,並從 HTML 回應中擷取隱藏在註解模式下的指令:<!--remark:\\s*([A-Za-z0-9+/=]+)\\s*-- >。

‍

‍

惡意程式透過正則表達式 (Regex pattern) 比對並提取指令後,在受害主機上執行。支援指令如下:

‍

指令
描述
run <commands> <...> 執行 Shell 指令
rate <min sec> <max sec> 設定 Heart beat rate
drives 列出磁碟機
ls <dir> 列出檔案
mkdir <dir> 建立目錄
rmdir <dir> 刪除目錄
rm <path> 刪除檔案
cp <path1> <path2> 複製檔案
cat <path> 讀取檔案
put <url> <path> 下載並寫入檔案
exit 結束

‍

緩解建議

由於此攻擊活動濫用合法基礎設施,傳統的封鎖策略通常難以奏效。防禦者應轉向行為導向的偵測。

網路防禦

我們建議您採取以下措施:

  • 針對關鍵系統實施嚴格的白名單控制。
  • 解析 SSL/TLS 以分析加密流量。

基礎設施濫用偵測

各級組織應加強以下防禦:

  • 維持即時威脅情資的整合與應用。
  • 封鎖新註冊網域(NRDs)。
  • 偵測異常程序發起的疑慮檔案下載行為。
重點精華

此攻擊活動展示了現代 APT 行動的幾個重要趨勢:

  1. 無基礎設施 C2:攻擊者大量依賴雲端平台與受駭網站,而非特定伺服器。
  2. 瞬時修改(Ephemeral Modification):對合法腳本進行暫時修改,使惡意程式得以執行,同時留下極少的鑑識證據。
  3. 雲端服務濫用: 利用 Microsoft Graph 等合法 API 建立隱蔽且難以封鎖的通訊頻道。

隨著攻擊者持續採用這些技術,防禦方必須超越靜態特徵碼,專注於行為偵測與情境分析。

‍

IoCs
www.businews[.]org C2 Domain behind Cloudflare
report.xbfcdn[.]com C2 Domain behind Cloudflare
v1.cdnoffice[.]com C2 Domain behind Cloudflare
www.hinet[.]world C2 Domain behind Cloudflare
www.pchome[.]mom C2 Domain behind Cloudflare
static.taiwan-taipei.workers[.]dev C2 Domain behind Cloudflare
update.smartit.workers[.]dev C2 Domain behind Cloudflare
www.microsoftonlinecloud[.]com C2 Domain behind Cloudflare
6affcbf6607ee163a49bb750ae1397c1 md5
b29ff0af33b38ec98e62a5c24d1dd06d md5
45c4c4d4224c413408450e965c618742 md5
529abd9cf61fbab99f440e4134f27fd8 md5

‍

此研究最初發表於 JSAC 2026

關於 CyCraft

奧義賽博 (CyCraft,亦名奧義智慧科技) 是台灣上市 AI 資安科技公司 (7823),專注於自動化威脅曝險管理與 AI 模型的資安防護技術。模型安全產品 XecGuard 專為 LLM 與 AI Agent 設計,提供多層次安全防護;XecART AI 紅隊安全評測透過多輪攻防測試出具國際標準合規報告。資訊安全產品 XCockpit AI 平台整合 XASM 三大防禦:EASM 外部曝險預警、IASM 身分攻擊面監測,與 Endpoint 端點聯防,提供超前、即時的縱深防禦,擁有政府、金融、半導體高科技產業的豐富實績與國際研調機構認可。

訂閱電子報

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
點擊此按鈕,即表示您同意本公司的隱私權政策,並同意本公司使用您所提供的資訊並寄送資訊給您。您隨時可以取消訂閱。