利用 Microsoft Graph API,Outlook 成惡意軟件傳播新渠道
近日,研究人員發現了一種新型惡意軟件系列,通過Microsoft Graph API利用Microsoft Outlook作為通信渠道。這一復雜的惡意軟件包括一個自定義加載程序和一個后門,分別被稱為PATHLOADER和FINALDRAFT。根據其復雜性和長期運行的特點,該惡意軟件主要被用于網絡間諜活動。
惡意軟件的核心組件
(1) PATHLOADER:輕量級加載程序
PATHLOADER是一個輕量級的Windows可執行文件,用于從外部基礎設施下載并執行加密的shellcode。為了避免靜態分析,它使用了Fowler-Noll-Vo哈希函數進行API哈希處理,并將配置嵌入到.data部分中,其中包括C2(命令與控制)設置。研究人員發現,PATHLOADER使用字符串加密來混淆其功能,這使得分析人員難以追蹤其控制流。
此外,PATHLOADER通過使用GetTickCount64和Sleep方法,避免了在沙箱環境中立即執行。隨后,它通過HTTPS GET請求從預配置的C2域名下載shellcode。
(2) FINALDRAFT:數據竊取與進程注入
FINALDRAFT是一個用C++編寫的64位惡意軟件,主要專注于數據竊取和進程注入。它使用Microsoft Graph API與其C2服務器進行通信。惡意軟件通過存儲在配置中的刷新令牌獲取Microsoft Graph API令牌,并在令牌有效期間重復使用。
FINALDRAFT通過在Outlook中創建會話郵件草稿與C2服務器通信。這些郵件的內容經過Base64編碼,但未進行AES加密。命令會被處理,響應則寫入新的郵件草稿中。
通信協議與關鍵功能
通信協議的核心是創建一個會話郵件草稿(如果不存在)。每個處理后的命令都會將響應寫入郵件草稿中。會話數據結構包括會話ID和構建編號。
FINALDRAFT通過檢查郵件草稿中的最后五個C2命令請求郵件來填充命令。讀取請求后,這些郵件會被刪除。惡意軟件注冊了37個命令處理程序,主要涉及進程注入、文件操作和網絡代理功能。一些關鍵命令包括:
- GatherComputerInformation:收集并發送受害機器的信息。
- StartTcpServerProxyToC2:啟動一個TCP服務器代理,連接到C2服務器。
- DoProcessInjectionSendOutputEx:注入到正在運行的進程中并發送輸出。
如何防御此類威脅
利用Microsoft Graph API進行C2通信的行為凸顯了采取增強安全措施的迫切性。為抵御像FINALDRAFT這樣復雜的惡意軟件威脅,組織應定期監控Microsoft Graph API的使用情況,以發現任何可疑活動,并實施嚴格的訪問控制,限制對Outlook和API的訪問,僅允許必要人員使用。
此外,部署高級端點安全解決方案有助于檢測和阻止惡意軟件的執行,而定期進行安全審計則可確保潛在漏洞得到識別和修復。這些主動措施將顯著增強組織的安全態勢。