一:木馬概述 360安全中心近期接到用戶反饋,在下載安裝并且使用了某個下載器后,電腦不定期的會被安裝,甚至重復安裝各種軟件,在提取相關文件分析后,我們發現這是一類利用系統正常"Pending File Rename Operations"機制替換系統文件,實現開機自動啟動加載驅動(自動下載軟件)的惡意木馬,我們將其命名為"紫狐"。據初步統計,目前至少有三萬以上用戶中毒。 二:木馬分析 我們先看下木馬整個執行流程:
開始運行下載器后會聯網下載木馬安裝包下載地址 http://216.250.99.5/m/wpltbbrp_011up.jpg wpltbbrp_011up.jpg該文件實際上是一個MSI安裝包 該MSI運行后:
木馬安裝包MSI包含3個文件,一個非PE文件(加密的PE文件),另外兩個分別是32位和64位的木馬DLL:
木馬安裝后會通過PendingFileRenameOperations實現開機啟動,比較有意思的是,木馬會進行多次刪除替換,來創建多次進程鏈實現斷鏈防止查殺。替換系統文件Sense.dlll啟動,我們把它叫FakeSense.dll。
FakeSense.dll啟動后,DLL會創建Shellcode并執行,將自身DLL代碼拷貝到臨時內存,再把DLL進行free,然后把臨時內存再寫回進程代碼中,來實現隱藏,刪除木馬DLL原體。刪除木馬FakeSense.dll過程先將FakeSense.dll 重命名為C:WindowsAppPatchCustomS721141.tmp然后將之前備份的C:WindowsAppPatchAcpsens.dll拷貝到C:Windowssystem32sens.dll
內存Shellcode執行:
刪除木馬文件過程如下: 先調用MoveFileA將C:Windowssystem32sens.dll 文件移動到 C:WindowsAppPatchCustomS721141.tmp
再調用CopyFileA將原系統文件C:WindowsAppPatchAcpsens.dll 放回到C:Windowssystem32sens.dll
刪除FakeSens.dll (C:WindowsAppPatchCustomS721141.tmp)
然后會解密出非PE并創建服務啟動
該模塊會創建互斥,檢測DLL是否在winlogon或者svchost進程中,如果在則解密內存DLL和驅動文件,創建Svchost進程并注入Shellcode執行,再將DLL和驅動遠程寫入Svchost進程中供Shellcode調用:
注入的DLL進行驅動釋放,名稱為dump_開頭拼接隨機數字,進行加載:
驅動文件: 驅動入口處注冊MiniFilter和線程回調:
線程定時器回調:
MiniFilter中隱藏自身木馬文件:
32位掛鉤NtEnumerateKey函數隱藏自身注冊表項目:
然后替換掉Ntfs.sys的 NtfsFsdCreate派遣函數:
Hook后地址為:
訪問保護的文件時候會返回STATUS_ACCESS_DENIED:
抹除掉驅動信息:
線程回調中注入代碼:
關機回調:
注入后svchost.exe創建的木馬線程:
后聯網下載安裝各種軟件,從用戶反饋機器上看被安裝了四五款各類軟件:安裝命令行為:/c start "" "C:WindowsTEMPFastpic_u44047309_sv67_52_1.exe" /at=591 /tid1=67 三:安全提醒 為了電腦和隱私的安全,盡量不要下載來歷不明的軟件,更不要相信木馬提示退出安全防護,如果安全軟件提示"發現木馬風險"要立即清理,目前360安全衛士已經支持"紫狐木馬"查殺,發現電腦反復自動安裝軟件的用戶可以下載360安全衛士進行查殺。
|