攻擊者正不斷研究更復雜的方式逃避惡意軟件檢測,近期發現攻擊者利用PowerShell編寫Netwalker勒索軟件,直接在內存中執行,沒有將實際的勒索軟件二進制文件存儲到磁盤中。惡意軟件利用了反射動態鏈接庫(DLL)注入的技術,也稱reflective DLL加載,可以從內存注入DLL,不需要實際DLL文件,也不需要任何Windows加載程序即可注入。

PowerShell分析

powershell腳本行爲如下圖:

該腳本使用了多層加密,混淆和編碼技術,最頂層爲base64編碼:

base64解碼將顯示下一層代碼,該層是十六進制編碼XOR加密:

解碼和解密後會顯示主要腳本,該腳本仍有混淆,分析人員難以讀懂內容:

該文件以反射方式將勒索軟件DLL注入到合法進程explorer.exe中, 勒索軟件以十六進制格式嵌入在腳本中。

腳本將其解碼產生兩個DLL,一個是勒索軟件的x86版本(用於32位OS),另一個是x64版本(用於64位OS)。它會對運行環境進行檢測,以便可以確定要使用的DLL版本:

它首先從kernell32.dll中找到所需功能的API地址:

然後計算內存地址:

腳本本身充當DLL加載程序,可以自行計算並解析定位其所需的內存地址。然後指定要注入的進程,搜索正在運行的Windows資源管理器進程。

通過以下代碼將勒索軟件DLL寫入explorer.exe的內存空間 並執行

最後刪除副本,防止受害者使用副本恢復文件。

無文件勒索軟件分析

Netwalker使用6個隨機字符作爲擴展名重命名加密文件:

它將勒索信息放在系統各個文件夾中,並在對受害者數據文檔加密後打開,其內容爲:

添加以下注冊表項:

HKEY_CURRENT_USER\SOFTWARE\{8 random characters}
{8 random characters} = {Hex values}

勒索軟件會終止某些進程和服務,其中一些與軟件數據備份有關。以下是勒索軟件終止的一些服務示例(全部服務列表參照此 報告 ):

  *backup*
    *sql*
    AcronisAgent
    ARSM
    server Administrator
    ShadowProtectSvc
    wbengine
    *sql*
    excel.exe
    ntrtscan.exe
    powerpnt.exe
    wbengine*
    winword.exe
    wrsa.exe

勒索軟件還會停止與安全軟件相關的進程,逃避安全軟件對其惡意活動的檢測防禦。

Netwalker加密文件時主要針對常見用戶文件,例如Office文檔,PDF,圖像,視頻,音頻和文本文件等。 它通常會避免對關鍵文件,可執行文件,動態鏈接庫,註冊表或其他與系統相關的文件進行加密,防止系統完全失效。

總結與建議

攻擊者現在正在向勒索軟件中添加反射DLL注入,從而使攻擊難以被 安全分析人員分析 追蹤。勒索軟件本身對組織就具有很大的危害,成爲無文件攻擊後,其風險再次加大。組織必須使用各種安全技術來保護其端點,例如採用行爲監控和基於行爲檢測的安全方案等。

以下是避免被勒索軟件攻擊的一些建議:

定期備份關鍵數據,減輕勒索軟件攻擊的影響;

安裝來自操作系統和第三方供應商的最新軟件補丁;

遵守良好的郵件和網站安全規範;

及時發現警告可疑的電子郵件和文件;

在端點上實施應用程序白名單,阻止所有未知和不需要的應用程序;

定期組織員工進行安全培訓。

IOCs

*參考來源: trendmicro ,由Kriston編譯,轉載請註明來自FreeBuf.COM

相關文章