近期,火絨工程師在關注安全動態(tài)過程中發(fā)現(xiàn),存在一種后門病毒以偽裝成搜狗輸入法的形式進行傳播。此病毒采用正規(guī)簽名內(nèi)嵌惡意腳本的手段,以規(guī)避安全檢測。其釋放的其他 PE 文件均為帶有數(shù)字簽名的白文件,并借助執(zhí)行 PowerShell 和 VBScript 腳本的方式來釋放和運行后門。其中,遠控服務器的域名通過查詢 TXT 記錄動態(tài)獲取,最終等待遠控服務器下達屏幕監(jiān)控、鍵盤監(jiān)控、執(zhí)行 PowerShell 腳本等指令。目前,火絨安全產(chǎn)品能夠?qū)@些病毒進行攔截和查殺。
查殺圖
流程圖
1 樣本分析
1.1 啟動階段
啟動該文件并首次運行 PowerShell 腳本:此為 Inno 安裝包,名為 sogou_pinyin_16c.exe,偽裝成搜狗輸入法的安裝包(且具備正規(guī)簽名)。運行此安裝包會釋放諸多文件,隨后借助 toolsps.exe 傳遞參數(shù)(該參數(shù)即為 PowerShell 腳本)以運行 PowerShell 腳本。toolsps.exe 原名為 SQLPS.exe,是 SQL Server 所提供的一個 Windows PowerShell 模塊,可用于運行 PowerShell 腳本。
對 360 進行檢測并執(zhí)行不同邏輯操作:其 PowerShell 指令如圖所示。該指令首先會判斷 360 是否存在,若 360 存在,則執(zhí)行 4.txt 腳本(此腳本包含安裝輸入法的命令);若 360 不存在,則安裝搜狗輸入法并執(zhí)行 3.txt 腳本。
釋放的文件與啟動腳本
搜狗輸入法安裝包數(shù)字簽名
3.txt 與 4.txt 腳本情況:3.txt 腳本會直接調(diào)用后門模塊中的 Main 函數(shù);4.txt 腳本是專門針對殺毒軟件設計的腳本,與 3.txt 腳本不同,其會采用模擬用戶輸入的方式,通過執(zhí)行搜狗輸入法安裝包和利用 mshta.exe 調(diào)用 escsvc.exe 中的惡意腳本,同時二者最終目的均為調(diào)用后門模塊中的 Main 函數(shù)。
腳本對比圖
正規(guī)簽名中嵌入惡意腳本:escsvc.exe 程序的數(shù)據(jù)簽名為正規(guī)簽名,然而該程序的 Security 區(qū)(即簽名區(qū)域)被追加了惡意腳本。這是由于 Windows 在校驗簽名時會忽略特定區(qū)域,使得往該區(qū)域追加內(nèi)容不會影響簽名的正確性。這進而導致安全軟件在驗證簽名正確性后便直接放行,從而達成免殺效果。
正規(guī)簽名
簽名驗證通過的具體細節(jié):經(jīng)對wintrust.dll驗證模塊進行分析,發(fā)現(xiàn)該模塊在驗證PE文件數(shù)據(jù)簽名時,會忽略CheckSum、Security和Security區(qū)。這是由于計算結(jié)果將會被寫回到Security區(qū),若不予以忽略,將會致使哈希值出現(xiàn)不一致的情況。CheckSum的情形與此相同。
排除特定區(qū)域
mshta.exe 對 escsvc.exe 進行解析執(zhí)行:當 mshta.exe 程序傳遞參數(shù) escsvc.exe 時,會對數(shù)字簽名中的 VBS 腳本進行解析執(zhí)行。經(jīng)測試可知,僅當傳遞參數(shù)的文件名后綴為 .txt 時,才不會解析其中的腳本;而當文件名后綴為 .exe 等其他類型或無后綴名時,會對其中
