<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/papers/7478

            微信公眾號:Antiylab

            0x00 背景


            近期,安天安全研究與應急處理中心(安天CERT)的安全研究人員在跟蹤分析HaveX家族樣本的過程中,意外地發現了Rovnix家族(Trojan/Win32.Rovnix)在建立其惡意代碼下載服務器時,也開始使用類似HaveX的方式,即:使用WordPress搭建的網站,或入侵第三方由WordPress搭建的正常網站(HaveX的C&C服務器地址都是通過入侵由WrdPress搭建的網站得到的)。因此,安天CERT 的研究人員對Rovnix家族展開分析。

            0x01 威脅概述


            enter image description here

            圖 1 威脅圖示

            Rovnix 家族于2011年首次被發現,至今依然十分活躍。該家族惡意代碼插件眾多,具有反調試、反虛擬機、反沙箱、安裝VBR-BootKit(VBR全稱Volume Boot Record,卷引導記錄)等技術手段,同時具有收集用戶信息、盜取比特幣、盜取銀行密碼、遠程控制等功能。

            該家族主要通過電子郵件傳播,通過誘使用戶點擊郵件正文中的鏈接地址下載Rovnix主程序(安天CERT迄今共發現了300多個惡意代碼下載地址)。主程序在執行后會搜集、回傳用戶系統信息,其中,信息回傳地址以硬編碼形式加密保存在主程序內部。隨后,主程序根據GDA(Domain Generation Algorithm)計算出配置文件的下載地址。配置文件使用RC2算法加密,每個配置文件功能各不相同。例如:配置文件Host.dat存放插件下載服務器地址。主程序根據當前系統版本下載對應的插件列表,再下載該插件列表中的惡意插件,這些插件即是上述具有安裝洋蔥(Tor)客戶端、盜取比特幣、盜取銀行密碼、遠程控制等功能的插件。

            0x02. 樣本功能分析


            2.1 主程序分析

            樣本標簽

            病毒名稱 Trojan/Win32.Rovnix
            
            MD5 6EB761EA46A40AD72018D3CEE915C4CD
            
            處理器架構 X86-32
            
            文件大小 207960  字節
            
            文件格式 BinExecute/Microsoft.EXE[:X86]
            
            時間戳 2015-05-11 10:40:37
            
            數字簽名 NO
            
            加殼類型 無
            
            編譯語言 Microsoft Visual C++
            
            VT首次上傳時間 2015-05-11 14:33:00
            
            VT檢測結果 32 / 56
            

            Rovnix主程序的主要功能是回傳用戶系統信息、釋放其他插件、安裝Bootkit以及加載插件。

            enter image description here

            圖 2 主程序流程圖

            1、樣本運行后首先解密出自身代碼,將地址401000處的數據清0,再重新寫入解密后的代碼。

            enter image description here

            圖3 解密自身代碼

            2、進入代碼空間后,使用Xor 0x14h解密對應的字符串。

            enter image description here

            3、隨后檢測樣本運行環境,包括是否運行于虛擬機環境、沙箱環境。樣本使用的異常處理機制并非常見的SHE(Structure Exception Handler,結構化異常處理),而且采用了VEH(Vectored Exception Handler,向量化異常處理)。樣本檢測當前運行環境是否支持腳本語言(如:Python、perl等),并檢查樣本執行路徑及文件名中,是否包含sample、virus等字樣(這通常是反病毒廠商在其動態分析平臺所使用的文件名),從而判斷是否運行于惡意代碼分析環境。同時,這些環境信息也會上傳到C&C服務器。

            enter image description here

            4、該樣本隨后執行提權(WIN7利用漏洞提權、XP利用普通提權)、復制自身到其他目錄、修改文件時間、自刪除、檢測反病毒軟件、回傳系統信息、安裝VBR-BootKit等一系列操作。

            5、樣本運行后會釋放4個文件:

            %Application Data%\Microsoft\Crypto\RSA\RSA1342183348.dll payload文件
            
            %Temp%\tmp1.tmp.exe 正常文件contig.exe
            
            %system32%\BOOT.dat BOOT加密引導數據
            
            %Temp%\NTFS.sys 正常引導文件
            

            RSA1342183348.dll是payload程序。樣本會將文件時間修改為系統文件svchost.exe的時間(即系統安裝時間),添加注冊表啟動項,利用rundll32.exe加載并啟動,而它的啟動參數是利用內核驅動模式加載的“DllInitialize”參數。

            RSA1342183348"="C:\\WINDOWS\\system32\\rundll32.exe \"C:\\Documents and Settings\\”用戶目錄”\\Application Data\\Microsoft\\Crypto\\RSA\\RSA1342183348.dll\",DllInitialize"
            

            tmp1.tmp.exe是微軟Contig程序,當樣本因為卷沒有足夠的自由空間導致安裝VBR-BootKit失敗時,它將運行Contig.exe程序來調整文件數據。

            注:Contig是一個單個文件碎片整理程序,其目的是使磁盤上的文件保持連續。對于持續被碎片化的文件,或者如果您希望確保碎片數量盡量少,它可以完美地迅速優化文件。

            惡意代碼釋放Contig V1.7版本使用如下靜默方式運行,整理%system32%\BOOT.dat文件碎片,執行命令為:

            Tmp1.tmp.exe -q -n "C:\WINDOWS\system32\BOOT.dat" 256000
            

            Rovnix的關鍵功能是安裝內核模式文件VBR-BootKit。樣本判斷系統是否存在加密軟件,決定是否安裝BootKit并執行,檢查系統是否使用BitLocker加密,遍歷進程查看是否有TrueCrypt.exe和VeraCrypt.exe(這兩個進程都是加密軟件),如果Rovnix發現系統使用上述加密,它將不安裝BootKit,未發現則安裝VBR-BootKit。如果Rovnix成功安裝VBR-BootKit,會產生藍屏,并導致系統重新啟動;安裝VRB-BootKit失敗,則加載Payload程序。

            6、Rovnix連接網絡,下載文件,下載地址已經失效:

            http://heckwassleftran.ru/R3_QACBABON/up.bin

            C&C:

            http://heckwassleftran.ru/cgi-bin/050515/post.cgi

            3.2 插件分析


            安天CERT研究人員對Rovnix的插件進行分析,發現若干其他插件,這些插件均從相關惡意服務器下載執行,其中包括具有TOR功能的洋蔥匿名網絡服務的客戶端程序、后門程序、驅動程序、虛擬網絡等,詳情見如下列表:

            插件名稱 插件功能

            PLTOR 洋蔥(Tor)客戶端,可以用來進行匿名訪問網絡,更好的隱藏自身。
            
            ReactorDll 該模塊具有后門功能,收集系統信息進行回傳,使用POST方式與服務器進行通信,接收指令并執行。如:cookie刪除、開啟VNC、開啟socket通信等等。
            
            BkSetup.dll 獲取系統版本,提升進程權限,然后在系統中安裝后門模塊,并設置自啟動,當所有操作完成后,進行自刪除。
            
            XX++.dll 該模塊與Payload功能相同,是Rovnix早期版本的Payload文件。
            
            LdrLoadDll 該模塊為64位驅動程序。用來檢測系統中是否存在殺毒軟件,主要功能是加載DLL模塊,并調用其導出函數。
            
            PROXY_BOT BOT后門模塊,獲取系統詳細版本信息,使用HTTP、FTP多種方式與服務器進行通信,可用來執行多種命令。
            
            PLVNC 該模塊可以用來對機器進行遠程控制,可以獲取屏幕截圖、系統信息,并對系統進程多種操作。
            
            Payload 該模塊在前面有比較詳細的分析,主要功能是下載其它模塊,并在內存中進行加載執行,添加自啟動項等。
            
            loader32.bin 收集系統信息,使用HTTP POST的方式與服務器進行通信,加載配置文件,根據配置文件,執行相應的操作。
            

            Rovnix的插件較多,目前安天CERT研究人員僅對以上9個重要插件進行了初步的定性分析。并對Payload進行了較詳細的分析。

            2.3 Payload插件分析

            樣本標簽

            病毒名稱     Trojan[Downloader]/Win32.Rovnix
            
            原始文件名 RSA2095805845.dll
            
            MD5 DED8BB2AD12B2317F1DB3265B003DCB5
            
            處理器架構 X86-32
            
            文件大小 79872 字節
            
            文件格式 BinExecute/Microsoft.EXE[:X86]
            
            時間戳 2015-06-19 10:50:15
            
            數字簽名 NO
            
            加殼類型 無
            
            編譯語言 Microsoft Visual C++
            
            VT首次上傳時間 2015-06-25 15:02:31
            
            VT檢測結果 31 / 55
            

            該插件為主程序釋放的DLL插件,該DLL將大量字符串與API進行加密處理,解密后的主要功能包括更新C&C地址、創建命名管道、下載更多插件等。詳細分析流程圖與描述如

            enter image description here

            1、解密字符串:樣本運行后首先將該樣本中所使用到的系統中的DLL、要操作的注冊表鍵值、進程名稱均使用異或0x14的方式進行了加密。其中,對于窄字節形式字符串,將以BYTE為單位異或0x14,對于寬字節形式字符串將以WORD為單位異或0x14。

            enter image description here

            2、隨后樣本創建線程,進行加載樣本進程的判斷,并置位對應的內存標志,樣本判斷如下4個加載自身的程序。

            進程名稱     標志位 
            
            winlogon.exe 0x7601634C 
            
            svchost.exe 0x76016348
            
            explorer.exe 0x76016350
            
            rundll32.exe 0x76016354
            

            對不同的加載程序,做相應的處理,如:在線程1中,若樣本運行在svchost.exe或rundll32.exe進程中,會調用SetErrorMode(0x8003)設置系統不顯示Windows的多種錯誤對話框,隱藏運行。如果不是上述4種中的一種加載自身,則進程退出。

            3、樣本獲取系統文件路徑并提取卷標、磁盤類型等信息。如果樣本是NTFS類型,則置位76016344內存為1

            enter image description here

            并根據磁盤信息創建互斥量字符串

            enter image description here

            互斥量的組成Global\BD(文件系統類型\卷序列號),如:Global\BDNTFS816090805。

            4、樣本創建線程2,進行臨時文件夾下的文件刪除操作。目的是刪除主程序釋放的盜取系統信息的臨時文件。

            5、隨后樣本進入主要功能階段,創建了三個線程:

            線程3:

            樣本會遍歷注冊表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run中的所有模塊,查看當前模塊是否存在,如果不存在,則會添加到啟動項中。

            線程4: 通過創建命名管道的方式與其他惡意進程進行通信。

            enter image description here

            enter image description here

            管道的命名也與卷序列號有關,.\pipe\vhost(卷序列號),如:.\pipe\vhost816090805

            線程5:

            線程5的主要作用是更新C&C服務器并下載插件執行。

            在樣本中C&C域名有3個,均經過異或0x14后,鍵名稱分別為:SH1、SH2、SH3,保存到注冊表中,地址為:HKCU(或HKLM)\Software\Microsoft\Product\B(卷序列號)。樣本讀取該鍵值,判斷是否有數據,如果有,則更新到樣本中;如果沒有,則使用樣本中硬編碼的三個C&C域名。當連網獲取到新的C&C后,會更新到注冊表中。

            enter image description here

            根據GDA解密后的域名:

            cloud58.eu
            aszjhqhsbgsvcse4.onion
            cloud59.eu
            

            2.4 Yara規則提取(payload)

            通過安天CERT提取的Payload插件相應特征,編寫Payload Yara規則如下:

            rule Rovnix_Payload_Plugins 
            {
            meta:
            author = " AntiyCert"
            date = "2015/07/20"
            ref = "http://www.antiy.com"
            maltype = "Rovnix_Payload_Plugins"
            filetype = "dll"
                     strings:
            $PE32 = {55 8B EC 83 EC 08 C7 45 FC 00 00 00 00 8B 45 08 0F BE 08 89 4D F8 8B 55 08 83 C2 01 89 55 08 83 7D F8 00 74 0B 8B 45 FC 83 C0 01 89 45 FC EB DD 8B 45 FC 8B E5 5D C3}
            $PE64 = {48 89 4c 24 08 48 83 ec 18 48 c7 44 24 08 00 00 00 00 48 8b 44 24 20 0f be 00 89 04 24 48 8b 44 24 20 48 ff c0 48 89 44 24 20 83 3c 24 00 74 0f 48 8b 44 24 08 48 ff c0 48 89 44 24 08 eb d3 48 8b 44 24 08 48 83 c4 18 c3}
            condition:
            1 of them
            }
            

            0x03 傳播URL分析


            2015年,安天CERT共發現了300多個惡意代碼下載地址,URL對應的IP地理位置涉及34個國家,其中數量最多的國家是美國,占總數量的一半以上。這些URL有一個共同的特點,如下圖所示

            enter image description here

            圖 7 Rovnix下載地址結構

            與此同時,安天CERT又發現了另一個家族的樣本也是使用類試的URL結構形式如下圖:

            enter image description here

            圖8 另一個家族的地址結構

            從URL結構上來看,兩個家族之間是有一定聯系的,都是通過郵件正文中的鏈接點擊下載并執行,并且從傳播時間上看也都是在2015年開始出現。

            通過以上統計出的URL地址,安天CERT聯想到了2014年出現的APT事件Havex,Havex的C&C服務器都是通過入侵由WordPress搭建的正常網站得到的。Rovnix中也有一部分的URL下載地址是入侵WordPress 搭建的正常網站得到的。Rovnix在后期回傳數據時用使用了其它的C&C服務地址。

            注:WordPress是一種使用PHP語言開發的博客平臺,用戶可以在支持PHP和MySQL數據庫的服務器上架設屬于自己的網站,也可以把 WordPress當作一個內容管理系統(CMS)來使用。

            0x04 總結


            Rovnix是一個喜歡使用冷門技術的惡意代碼家族,具有如下特性:它喜歡使用VEH異常處理機制,BootKit使用的是VBR-BootKit;支持眾多的Windows版本,根據環境投放32位或64位的插件;定制化的插件支持多種惡意功能。這些特性讓安天CERT的研究人員將其歸類為專業化的攻擊平臺,是有可能被用來進行定向攻擊的武器之一。

            PS:插件Hash列表見原文

            博文地址: http://www.antiy.com/response/ROVNIX.html

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线