解析 Ngrok 曲折的攻擊程序

趨勢科技 Managed XDR 託管式偵測及回應服務團隊最近處理了一樁客戶資安事件,歹徒在該事件中運用了一種特殊的攻擊技巧,增加了資安團隊和研究人員釐清駭客攻擊程序的難度。


採用 端點偵測及回應 (EDR) 資安解決方案的一項主要好處就是,能讓維護及分析企業網路防禦狀況的資安團隊能掌握自身環境的可視性來提早偵測攻擊,並透過視覺化方式了解正在發生的資安事件。雖然像這樣的技術確實讓網路資安產業整體都有所提升,但歹徒的工具和技巧卻也同樣因應這樣的發展趨勢而演進。

 趨勢科技 Managed XDR託管式偵測及回應服務團隊最近處理了一樁客戶資安事件,歹徒在該事件中運用了一種特殊的攻擊技巧,增加了資安團隊和研究人員釐清駭客攻擊程序的難度。

初步調查

2020 年 7 月,我們經由 趨勢科技Apex One在客戶環境觀察到以下可疑的系統事件:

Process: c:\windows\system32\reg.exe CommandLine:REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v <value> /t REG_SZ /d “\”c:\Windows\system32\<random name>\”” /f

此事件有幾點值得注意:首先,該指令所建立的系統登錄數值的名稱是根據某個資安廠商來命名。其次,登錄數值的名稱 (在 <value> 部分) 出現了一個拼字錯誤 (也許是故意的,此處為了保密暫不顯示)。最後,在系統目錄當中有一個隨機命名的執行檔。這所有因素加在一起,讓我們直覺認為這是一項警訊。

結果這個執行檔確實是一個鍵盤側錄程式,它會將側錄到的滑鼠與鍵盤輸入傳送到某個 Gmail 帳號。我們在二進位檔案中發現了一些寫死的資訊,證明它是專為某個目標機構而量身訂製。不僅如此,我們也從二進位檔案中得知,駭客對該機構有相當程度的了解。

我們用這個鍵盤側錄程式的檔名和雜湊碼在系統記錄和事件當中搜尋之後發現以下情況:

檔案事件

根據事件分析指出,此鍵盤側錄程式是由「ntoskrnl.exe」這個處理程序所植入系統。這表示該檔案不是經由網路共用、就是經由系統核心 (kernel) 的漏洞被植入系統。

analysis-attack-chain-ngorok-1
圖 1:Ntoskrnl.exe 在系統上植入的鍵盤側錄程式。

包含指令列參數的事件

雖然,要找到含有前述隨機檔名的 reg.exe 處理程序的事件並不難 (畢竟就是這些事件觸發了整個調查程序),但 reg.exe 事件之前所發生的事件就似乎沒那麼容易掌握。

analysis-attack-chain-ngorok-2
圖 2:reg.exe 處理程序事件之前發生的一連串事件。

鍵盤側錄程式呼叫 reg.exe 來讓其常駐系統的行為似乎不是攻擊的源頭,另一個處理程序:「services.exe」似乎才是整個程序的根源。駭客先建立一個系統服務來啟動一連串的「cmd.exe」(命令提示字元) 處理程序,最後才執行 reg.exe (系統登錄) 程式來常駐系統。

系統登錄資料

經過調查,我們發現該服務的系統登錄資料包含以下傳入 reg.exe 的指令列參數:

Reg Key: hklm\system\currentcontrolset\services\<random>
Reg Value: imagepath
Reg Data:%COMSPEC% /C echo REG ADD
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v <value> /t REG_SZ /d
“\”c:\Windows\system32\<random>\”” /f ^> %SYSTEMDRIVE%\WINDOWS\Temp\<random>.txt >
\WINDOWS\Temp\<random>.bat & %COMSPEC% /C start %COMSPEC% /C
\WINDOWS\Temp\<random>.bat

從這些登錄資料就能理解為何在執行 reg.exe 之前會有前述一連串的 cmd.exe 處理程序。第一個 cmd.exe 指令列包含「%COMSPEC%」後面的字串,第二個 cmd.exe 指令列則包含第二個「%COMSPEC%」後面的字串,依此類推。

深入追查

這種先建立服務來啟動指令的手法,算是後門程式技巧的一種。我們使用「%COMSPEC%」這串字來搜尋並檢視其他服務的登錄資料,最後找出了幾個經由這個方法執行的工具和指令。

我們在多台電腦上發現了一些從這個登錄資料衍生出來的指令,如:「query user」、「net user <user account> /domain」、「ping <ip address>」等等。假使這真的是一種新的後門技巧,那我們還需要找到真正負責對外通訊的元件,以及產生這些服務登錄資料的環節。

我們的第一個突破點是我們發現了這道指令:「<random> tcp –authtoken <token> -config <config file> <ip>:445」。光從它的參數就能判斷這應該是某種網路通訊工具,而且使用的是企業常用的連接埠 (SMB/TCP 445)。

找到對應檔案後,我們相信它應該是「ngrok」軟體的拷貝,該軟體可讓企業內的電腦被外界看到,其原理是將其網路流量繞經 ngrok 網站。我們在兩台電腦上發現有這個工具,意味著這兩台電腦能被外界看到。我們 先前就曾撰文指出 ngrok 可能被惡意濫用

目前我們還不曉得前述的服務登錄資料是怎麼來的,我們搜尋了「psexesvc.exe」(PsExec 的伺服器端) 與「remotesvc.exe」這兩個字串,卻沒有發現明確的入侵指標 (IOC)。不過,我們有在某個伺服器登錄資料中發現「admin/smb/psexec_command」這串字,這很像是在執行 Metasploit。但我們知道 Metasploit 的 PsExec 模組不會在目標系統上植入二進位檔案,經過一番研究之後,我們發現某些版本的 Mimikatz 和 Impacket 會有這樣的行為。

模擬攻擊

為了試圖找出駭客的攻擊機制,我們做了一個簡單的模擬試驗,我們將 ngrok 安裝在某台外部看不到也無法存取的電腦 (A 電腦)。

圖 3:在「A 電腦」上安裝 ngrok 軟體。

Ngrok 可將任何「A 電腦」可存取的開放 IP 連接埠 (包括它自己) 暴露到網際網路上。在我們的範例中,ngrok 會將另一台電腦 (B 電腦,位址在:192.168.19.129:445) 經由 ngrok 伺服器暴露在網路上。這樣一來我們就能透過 ngrok 所配發的網路位址 2.tcp.ngrok.io:14139 來存取 192.168.19.129:445。

利用 Impacket 工具套件的 Smbexec 服務模組,再配合 B 電腦的登入憑證,我們就能從外部電腦發送一個簡單的 ping 指令給「B 電腦」。

analysis-attack-chain-ngorok-4
圖 4:使用外部電腦發送 ping 指令給「B 電腦」。

實驗的結果跟我們在客戶環境觀察到的現象很像,也就是有一些隨機命名的服務登錄資料被建立之後又被刪除。前述指令在執行時不須在目標電腦上植入任何二進位檔案。

不僅如此,由於這些指令是透過服務來執行,因此擁有較高的權限。而且由於網路流量都繞經 ngrok 服務,因此幕後操縱 (C&C) 伺服器其實就等於不會被看見。駭客只要知道 ngrok 配發的公開位址 (如前面的 2.tcp.ngrok.io:14139),就能隨時從任何地點連上被駭入的端點裝置。

analysis-attack-chain-ngorok-5
圖 5:使用 ngrok 配發的公開位址連上被駭入的電腦。

雖然這樣的模擬不一定能完全重現駭客的攻擊行動,但卻提供了不錯的寶貴資訊讓我們了解攻擊可能發生的經過。

模擬時需要一台安裝了 ngrok 的內部電腦,還要知道 ngrok 伺服器的網域和連接埠,以及一個系統管理員帳號。我們相信對駭客來說,這三項條件應該都能具備,因為就是他們在內部電腦上安裝了 ngrok 軟體,而且他們也似乎已潛伏在企業內部一段時間,足以摸透內部環境的情況,此外,他們也會駭入一些高等級權限的帳號。綜合來看,我們所模擬的狀況應該跟駭客的攻擊程序相去不遠。

採用 EDR 加以反制

圖 6 顯示一個典型後門程式攻擊程序的根源分析。

analysis-attack-chain-ngorok-6
analysis-attack-chain-ngorok-6
6:典型後門攻擊程序的根源分析。

Shell.exe 負責先啟動一個 cmd.exe,再由後者啟動要執行特定指令的工具。圖上也指出 Shell.exe 可能啟動其他已經安裝在系統上的工具,例如圖中的「Toola.exe」。像這樣一份清楚的圖表就能很方便地找出可疑的物件,並可描繪出攻擊程序的基本流程。

針對這次事件,我們的根源分析是先從 services.exe 著手,最終找出駭客所執行的工具或指令。目前沒有證據顯示駭客使用了會下載其他工具的多重階段工具,且根據駭客的存取能力來看,駭客很可能也不需要用到這樣的工具。因為駭客已直接掌握被駭入的電腦,可執行任何他們想要的工具,不必去設想一些特別的機制來安裝惡意檔案 (例如從某台電腦跳到另一台電腦)。換句話說,駭客幾乎可隨心所欲執行任何工具,例如安裝鍵盤側錄程式。駭客這次是經由 SMB 通訊協定安裝鍵盤側錄程式,然後再發送另一個指令來讓它常駐在系統內。駭客並未使用本身就具備常駐能力的鍵盤側錄程式,這很可能是因為他們可以輕易地從遠端建立系統登錄來讓程式常駐。

就這起攻擊事件,要執行有效的根源分析並不容易,因為一切的源頭是 services.exe (或另一個 Windows 處理程序,例如植入檔案時),而且一次只執行一個指令或工具。描繪這起攻擊的圖表看起來或許會長得好像以 services.exe 為中心的一棵樹,而每個樹枝就代表一個經由 services.exe 執行的指令。

從我們的分析就能看出,此攻擊所採用的技巧確實會阻礙資安研究人員在一個簡短的圖表中有效描畫出攻擊的程序。不過,EDR 有一些功能正是為了處理這樣的事件而設計。

利用可疑事件來防範威脅

可疑事件是 EDR 解決方案當中一個很有效的觸發機制,所以資安團隊可利用同樣機制來防範資安威脅。在這次的事件中,趨勢科技 Managed XDR 團隊可運用了 Apex One 的功能來調查並防範威脅。

利用記錄的事件來執行調查

傳統的事件回應方法通常需要執行某種工具從可疑的主機擷取一些證據。在這次的調查過程中,所有的調查工作都使用 EDR 所記錄的事件。因此在調查時不需要用到記憶體或磁碟映像,這表示光靠 EDR 所蒐集的資料就足以判斷像這樣的攻擊如何運作。指令的順序可從事件的時間戳記來加以判斷,甚至不需要 EDR 所產生的說明圖表,也可以判斷出攻擊的發生順序。

新的警示

EDR 可輕鬆產生新的警示來觸發調查程序。針對這起攻擊案例,我們可在每當 services.exe 啟動 cmd.exe 以及當「%comspec%」這串字被寫入開機自動啟動登錄機碼時產生新的警示,這樣就能協助資安團隊追蹤後續的威脅。

趨勢科技解決方案

 

託管式偵測及回應(MDR)利用強大的人工智慧 (AI) 與資安數據分析來交叉關聯資料,在單一主控台上提供最佳化的警示,保護環環相扣的電子郵件、端點、伺服器、雲端工作負載以及網路。藉由這樣的技術,企業就能快速發掘威脅並及時降低威脅的衝擊。

趨勢科技 Managed XDR提供專家威脅監控與交叉關聯及分析,由經驗豐富的網路資安老手來提供 7 天 24 小時的服務,讓企業從單一來源執行偵測、分析及回應。此外,這項服務更有結合 AI 與趨勢科技全球威脅情報的解決方案為後盾。 

原文出處:Analysis of a Convoluted Attack Chain Involving Ngrok 作者:Aprilyn Borja、Abraham Camba、Khristoffer Jocson、Ryan Maglaque、Gilbert Sison 與 Jay Yaneza