Dyreza,其目的是竊取銀行賬號和比特幣。整個流程首先是通過Upatre進行Dyreza的下載,據研究,目前提供Dyreza下載的服務器均為路由器(大部分為AirOS和MicroTik)。而攻擊者利用入侵的路由器,存在多種加密的資源包,而受到感染的機器,會通過Upatre下載路由器中存放的加密惡意代碼程序,然后在用戶系統中進行解密后得到Dyreza木馬。 我們要對其進行分析的意義在于,惡意程序Dyreza家族目前存在有許多的變種,但是他們的主要行為軌跡還是存在共性的。我們通過分析其特性及共性,能更好地進行防御。 0×00 樣本分析 ----- 樣本:ff3d706015b7b142ee0a8f0ad7ea2911 Dyreza 的可執行文件,一個僵尸網絡的客戶端,負責執行主要的惡意操作。 ----- 樣本: 5a0e393031eb2accc914c1c832993d0b – Dyreza DLL (32bit) 91b62d1380b73baea53a50d02c88a5c6 – Dyreza DLL (64bit) ----- 0×01行為分析 當 Dyreza開始感染計算機的時候,它擁有較快的擴散感染速度。我們可以通過在進程管理中查看到它,同時最直觀的一點,可以發現許多新的進程被創建接著又結束,像explorer, svchost, taskeng等進程,而所進行的這一階段,就是為了混淆其執行的流程,干擾安全人員的研究和分析。 接下來,它將兩個通過正則表達式 [a-zA-Z]{15}.exe , i.e vfHNLkMCYaxBGFy.exe以偽隨機碼命名的惡意程序復制文件放進C:\Windows以及%APPDATA%目錄下,然后通過在任務調度中添加一個新的任務,在每分鐘不斷地執行惡意程序樣本,確保惡意程序持續執行。 接著通過將惡意代碼注入到其他進程(如svchost, explorer),然后與外界的C&C服務器進行通訊。 從以上觀察到的結果,我們可以在 VirusTotal上查詢到,上述與svchost,和explorer進程進行通訊的服務地址,其實早已經被進行標記為惡意地址了,主要的結果如下, 141.8.226.14 -> virustotal/141.8.226.14/information 83.241.176.230 -> virustotal/83.241.176.230/information 197.231.198.234 -> virustotal/197.231.198.234/information/ 而當安裝任意web瀏覽器時,它也會直接將惡意代碼注入到瀏覽器的進程中去,然后進行非法外聯。這是該惡意程序與外部C&C服務器保持連接的方式,同時也執行著監控用戶活動以及竊取各類身份憑證信息的功能。 通過研究也可以發現,Dyreza在將獲取到的信息發送給 C&C服務器之前,會將信息作為一個小型數據庫存放在名為 TEMP的文件夾中。 0×02 代碼分析 環境檢測 1、執行前的檢測-Dyreza如果檢測到機器上的 cpu數量少于2個,它將不會運行。該技術是為了進行自我保護,確保自身程序不是運行在虛擬機環境上。因為從目前的市場及設備配置的情況來看,除了虛擬機經常使用單核cpu之外,一般物理機都是雙核以上的,而Dyreza也是基于這一點作為判斷依據的。Dyreza是通過檢測進程環境塊下的線程信息塊中的FS:[0x30]區域的信息來進行判斷。而只有確認cpu數量滿足大于2個(包括2個)之后,惡意程序才會繼續執行。 2、在執行開始的時候,惡意軟件加載額外的表單到一個新分配的內存頁。在運行的過程中,模塊名和函數開始被解密。 3、執行環境的檢測-通過LookupPrivilegeValue函數中的SeDebugPrivilege 參數,來判斷是否在調試器下進行安裝,如果檢測到返回值為非零值,惡意程序的執行將終止。 4、進行有效執行通過如下幾個檢測方式。一開始,根據初始的環境,通過對路徑進行跟蹤檢測,如當程序運行時可執行的路徑和參數。當它第一次安裝時,它將會對自身進行復制,并將復制的文件放至 C:\Windows以及%APPDATA% 目錄下,并將復制的程序作為一個新的進程執行安裝。如果它被部署到有效路徑和初始參數并通過了驗證,則執行下一步檢查-確認是否是第一次安裝。該步驟是通過創建一個特定的全局互斥量(名稱為計算機名和系統版本的哈希值,通過 GetComputerName, RtlGetVersion兩個函數獲取)來實現的。 5、如果這個條件滿足,而互斥量也已經存在,那么它接下來將進行最重要的一步,執行惡意代碼。一開始,會將加密的數據和密鑰從可執行的資源包中加載。 如上圖,T1RY615NR-加密的32位代碼,YS45H26GT -加密的64位代碼,UZGN53WMY-密鑰 接下來是解包,將代碼取出: 解包的算法也很簡單,key_data中包含了數值和數據-在key_data中數值的索引列表。我們通過相應的索引列表來讀取相應的數值。相應的代碼如下,
def decode(data, key_data): import argparse return unpad(cipher.decrypt(enc)) 解密出來的文件包括了一個用于注入的shellcode和一個用于調用惡意程序函數的DLL(兼容32/64位)。 0×03 核心惡意 DLL 在這個階段,惡意軟件的功能變得非常清晰。dll文件不包含太多混淆信息–它具有明顯的字符串和一個典型的導入表。 我們可以看到被用于與 C&C服務器進行通訊的字符串。 32和64位的DLL都具有相似的功能。兩者之前只有架構相關部分和字符串是不同的。而通過客戶端可以對系統進行識別,然后將信息發送到 C&C服務器上。 類似的程序在64位版本的DLL,只有在其硬編碼字符串上用“_64bit”代替了“_32bit”: 同時,對網絡設置進行檢查(確認并告知與C&C客戶端是否可以建立后連接–命令:autobackconn) 將惡意模塊注入到瀏覽器中執行代碼: 接下來,嘗試發送竊取的賬戶信息。 此外除了監測瀏覽器外,它也收集計算機上相應的基本信息(比如配置,存在用戶等) 該惡意軟件不僅竊取信息和嗅探用戶的瀏覽活動,并且還試圖對系統進行完全控制,目的是執行各種shell命令,如進行系統關機等,部分例子如下: 嘗試創建具備管理員權限的新用戶: 可通過命令AUTOKILLOS來進行關機操作。 0×04 C&Cs
以上,是本次的分析研究探討,具體的Dyreza代碼,可以在dyreza中獲取。 |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信