駭客會不停地創造更加先進的手法來讓惡意軟體躲避防禦。趨勢科技看到Netwalker勒索病毒 (勒索軟體/綁架病毒)攻擊所用的惡意軟體並無經過編譯,而是用PowerShell編寫並直接在記憶體內執行,不會將實際勒索病毒檔案儲存在硬碟裡。這讓此勒索病毒成為了無檔案病毒(fileless malware),能夠保持持續性並利用系統內工具來進行攻擊而不被偵測。
此類惡意威脅利用被稱為映射(reflective)DLL注入的技術,也被稱為映射DLL載入。這項技術會從記憶體載入DLL而非從硬碟。因此會比一般的DLL注入更加具有隱蔽性,除了不需有實際DDL檔存在硬碟之外,也不需要Windows載入程式就可以進行注入。這樣就不用將DLL登錄為程序載入模組,避免了被DLL載入監控工具偵測。
我們最近看過了駭客利用此技術來部署ColdLock勒索病毒。而現在則看到使用同樣無檔案技術的Netwalker勒索病毒攻擊。惡意PowerShell腳本被偵測為Ransom.PS1.NETWALKER.B。
[延伸閱讀:目標式勒索病毒攻擊台灣企業]
訂閱資安趨勢電子報
PowerShell腳本分析
這個腳本使用多層的加密、混淆和編碼技術來掩護自己。可以從此樣本找出三層的程式碼。最上層執行一個base64編碼過的命令。
解碼後出現下一層程式碼,經過十六進位編碼和XOR加密。
解開後會出現主要腳本,不過依然經過混淆處理使得內容難以被分析解密。
該檔案以映射方式將勒索病毒DLL注入正常的執行中程序explorer.exe的記憶體。勒索病毒以十六進位格式內嵌在腳本裡。
從腳本提取出二進位檔並解碼後會產生兩個DLL。一個是勒索病毒的x86版本(用於32位元作業系統),另一個是x64版本(用於64位元作業系統)。
它會用腳本以下的部分來判斷腳本執行環境以選擇要使用的DLL版本:
為了成功進行映射注入,它會先從kernell32.dll找到所需函式的API地址:
接著它會用以下函式來建立準確記憶體地址的計算:
圖8. 建立記憶體計算的函式
腳本利用這方法將自己變成DLL的載入程式。這樣就不再需要傳統的Windows載入程式(通常會利用LoadLibrary函式)。腳本自己可以計算並解析所需的記憶體地址和重新定址來正確載入DLL。
接著指定要注入的程序;此時它會搜尋執行中的Windows Explorer程序。
圖10. 搜尋執行中Windows Explorer程序的程式碼片段
接著它會下列程式碼將勒索病毒DLL寫入explorer.exe的記憶體空間並執行:
最後它會刪除磁碟區陰影複製(Shadow Volume Copy),防止受害者用磁碟區陰影(Shadow Volume)來回復被它們加密的檔案。
此樣本似乎來自PowerSploit的Invoke-Mimikatz模組,這是個最初目的是將Mimikatz完全映射載入到記憶體以秘密轉儲帳密的開放程式碼計畫。
無檔案勒索病毒分析
Netwalker這隻變種在行為方面跟前一代類似。使用6個隨機字元作為副檔名來重新命名加密過的檔案:
它將勒贖通知放進系統內的許多資料夾中,並且會在加密完受害者資料和文件後開啟其中一份。跟普通的勒索病毒一樣,這樣是為了向受害者勒索贖金來換取檔案解密。
它會加入以下登錄子機碼,這動作是Netwalker知名的行為:
HKEY_CURRENT_USER\SOFTWARE\{8個隨機字元}
{8個隨機字元} = {十六進位值}
勒索病毒會終止某些程序和服務,其中有些跟備份軟體或資料相關應用程式有關。目的可能是為了讓受害者在遭受勒索病毒攻擊後難以去執行備份和回復操作。
底下是勒索病毒所會終止的部分服務(關於完整的服務列表請參閱此報告):
- *backup*
- *sql*
- AcronisAgent
- ARSM
- Server Administrator
- ShadowProtectSvc
- wbengine
勒索病毒還會終止安全軟體相關的程序來躲避其對惡意活動的偵測和封鎖。
此外,它會還終止跟使用者資料和文件及建立備份用軟體有關的程序。接著繼續加密這些應用程式所建立的檔案。
被勒索病毒終止的部分程序(關於完整的程序列表,請參閱此報告):
- *sql*
- excel.exe
- ntrtscan.exe
- powerpnt.exe
- wbengine*
- winword.exe
- wrsa.exe
Netwalker在加密時主要針對常見的使用者檔案,如Office文件、PDF、圖片、影片、音樂和文字檔等。除此之外,它通常會避免加密關鍵檔案、執行檔、DLL、登錄檔或其他系統相關檔案,顯見它並不想讓系統完全失效。
結論與建議
看起來攻擊者現在會將映射DLL注入技術運用在勒索病毒攻擊中,這讓攻擊更難被追踪也更難讓安全分析人員調查。勒索病毒本身就對組織有著巨大的威脅。轉變成無檔案威脅會讓風險更加提昇,因為它可以更加有效地躲避偵測並保持持續性。這樣的混合式威脅會利用多樣的技術,所以組織也需要使用多層次的安全防護技術來有效地保護端點系統,如採用行為監控和基於行為偵測的安全解決方案。
這些類型的攻擊可能對受害者造成巨大影響且很難回復。採取適當的預防措施(如採用最佳實作)可以將感染風險降到最低。
以下是我們對避免勒索病毒攻擊所提出的一些建議:
- 定期備份關鍵資料以減輕勒索病毒攻擊造成的影響
- 更新來自作業系統和第三方廠商的最新軟體修補程式。
- 遵守良好的電子郵件和網站安全實作
- 當員工發現可疑的電子郵件和檔案時要通報IT安全團隊。
- 在端點系統部署應用程式白名單技術來封鎖未知和不需要的應用程式。
- 定期教育員工關於社交工程的危害。
以下是關於保護系統來抵禦無檔案威脅的一些建議:
- 利用PowerShell的日誌記錄功能監視可疑行為來保護其使用。
- 使用如ConstrainedLanguageMode之類的PowerShell命令來防護系統不受惡意程式碼侵害。
- 設定系統組件並停用未使用或過時的組件來封鎖可能的進入點。
- 不要下載或執行來自不熟悉來源的檔案
延伸閱讀: 「檯面下的風險:認識無檔案式威脅」
同時還建議使用具備行為監控技術的安全解決方案來應對這些類型的威脅:
- 趨勢科技Apex One–具備行為分析功能,可以抵禦無檔案威脅相關的惡意腳本、注入、勒索病毒以及記憶體和瀏覽器攻擊。
- 趨勢科技Worry-Free Business Security –包含行為監控技術來偵測使用腳本的無檔案威脅,能夠在惡意軟體侵害系統前先加以偵測並封鎖。
入侵指標
SHA-256 | 趨勢科技病毒碼偵測 |
f4656a9af30e98ed2103194f798fa00fd1686618e3e62fba6b15c9959135b7be | Ransom.PS1.NETWALKER.B |
@原文出處:Netwalker Fileless Ransomware Injected via Reflective Loading 作者:Karen Victor(趨勢科技)