馬後炮式詳談英雄聯盟、流亡黯道網軍間諜病毒在幹嘛(下集)

此篇接續上集的馬後炮式詳談英雄聯盟、流亡黯道網軍間諜病毒在幹嘛(上集)



早上睡醒後,經過Kenny大神的提醒<(_ _)>
先是開有毒版本的安裝包
然後可以側錄一下安裝包做的事情
接著病毒安裝包就是做一連串的檔案存取...直到這裡開始比較引起我關注
病毒安裝包生產了三個.tmp文件到Windows的tmp資料夾內分別為:tmpD07C.tmp、tmpD07D.tmp、tmpD07E.tmp
接著喚起Rundll32.exe去壓入參數,執行三個文件。command line如下:
C:\Windows\system32\Rundll32.exe "\Temp\tmpD07E.tmp", Check \病毒安裝包主程式.exe|
\Temp\tmpD07C.tmp fast|
\Temp\tmpD07D.tmp|exe|\Temp\tmpD07E.tmp
(排版需要,經過刪減)
簡單來說就是使用rundll32.exe去Run了那三份tmp內的文件(其中一個帶參數fast)
接著rundll32.exe被要求執行tmp文件後又做一連串的文件存取
接著又寫入回去tmpD07E.tmp文件(做修復?還幹嘛?不太清楚)
接著這次是寫入tmpD07C.tmp文件,並且把tmpD07C.tmp創建為進程,啟動!
所以tmpD07C.tmp被以進程的方式建立起來了
後來rundll32.exe開始回去替病毒安裝包主程式做修復動作
(修復完成後,病毒安裝包就不會再生產病毒了,會恢復成正常文件)
這時候tmpD07C.tmp開始創建datD0FA.tmp、datD0EA.tmp、datD0E9.tmp文件,並且在最底下
這時候tmpD07C.tmp又用了rundll32.exe創建進程:
C:\Windows\system32\rundll32.exe "datD0EA.tmp", sqlite3_backup_deinit \Temp\tmpD07C.tmp
大致上是把datD0EA.tmp用rundll32.exe創起進程並給予參數sqlite3_backup_deinit執行
sqlite3_backup_deinit這個Func,然後又創建進程了一次tmpD07C.tmp
(這就是每次開機後監控的途徑了)
接著寫入一些參數資料存放到fast.update


另外得知病毒的NtUserEx.dll只有在特定函數下patch

這隻dll會在的時候執行指令:rundll32 NtUserEx.dll,sqlite3_aggregate_num

也就是說,這隻dll自我啟動的方式是透過rundll32去載入NtUserEx.dll
再去呼叫Export的Func——sqlite3_aggregate_num
(也就是整支病毒開機被啟動的點就是sqlite3_aggregate_num身上。可以知道,DLL Base + Offset 0x5A050就是啟動點)

一開始可以看到這函數一被呼叫做的事情會先把自己註冊為系統服務以便長期監控系統
參考了一下這篇C++编写Windows服务程序還原了一下這段是:
RegisterServiceCtrlHandlerA("",回調函數_10059FD0)

最後結語:
...以前可能會嫌防毒各種誤報各種弱或者UI介面難用
但是分析一隻病毒真的好累啊Otz.
先寫到這啦~之後有時間再補上逆向NtUserEx.dll內部在幹嘛

熱門文章