木馬分析:分析針對義大利的Ursnif銀行木馬
介紹
近期,又有一波Ursnif攻擊席捲了義大利!
Ursnif是目前活動最為頻繁的銀行木馬,它也被稱為GOZI。實際上,它是Gozi-ISFB銀行木馬的一個變種版本,自從該木馬在2014年洩露了其原始碼之後,攻擊者這些年來一直都在升級和更新Gozi的功能。而且在這個變種版本中,Ursnif還嵌入了針對Office文件的攻擊“武器”,即惡意VBA巨集,它可以作為Dropper或經過混淆的PowerShell指令碼來隱藏真正的Payload。除此之外,Ursnif還使用了隱寫術來隱藏惡意程式碼並躲避AV檢測。
當然了,這個變種還使用了QueueUserAPC程序注入技術來向explorer.exe注入惡意程式碼,這種技術的隱蔽性更強,因為不需要在目標程序中建立遠端執行緒。
技術分析
初始感染向量以一個無法開啟的Excel檔案呈現,並要求使用者啟用巨集來檢視惡意文件的內容,檔案標題通常都是採購訂單或者發票等等。
在對樣本的分析過程中,我們提取出了惡意巨集程式碼,我們發現程式碼回使用Application.International MS Office屬性來檢查使用者的所屬國家。如果返回的國家程式碼為義大利(程式碼39),惡意巨集將會使用Shell函式來執行下一條攻擊指令:
惡意巨集剩下的函式主要用來準備Shell命令的執行,並使用各種方法來拼接和編碼字串。最終的命令程式碼包含大量二進位制字串,它們需要使用下列函式來轉化為新的PowerShell命令:
[Convert]::ToInt16()-as[char]
如上圖所示,惡意軟體會嘗試從至少1到2個嵌入的URL地址去下載一張圖片:
https://images2.imgbox [.]com/55/c4/rBzwpAzi_o.png
https://i.postimg [.]cc/PH6QvFvF/mario.png?dl=1
這個看似合法的圖片實際上包含了新的PowerShell命令,攻擊者使用了Invoke-PSImage指令碼來製作這張惡意圖片,而這個指令碼一般用來向PNG檔案的畫素中嵌入位元組或指令碼程式碼。
Et voilà是另一段經過混淆的PowerShell程式碼,Payload採用Base64編碼,所以很好處理:
程式碼看似為十六進位制編碼,可以通過之前的[Convert]::ToInt16函式進行解碼。
最終的程式碼如下:
程式碼會再次檢查使用者是否位於義大利,資訊由下列命令返回:
Get-Culture| Format-List -Property *
如果檢測結果為假,指令碼會從 http://fillialopago [.]info/~DF2F63下載一個EXE Payload,然後將其儲存在%TEMP%\Twain001.exe並執行。
在分析的過程中,大多數反病毒軟體都無法檢測到惡意檔案:
其中的可執行檔案是典型的Ursnif載入器,它負責跟後臺伺服器互動並下載需要注入到explorer.exe程序中的惡意程式碼。它使用了IWebBrowser.Navigate函式來從其惡意伺服器felipllet[.]info下載惡意資料,其中URI路徑會偽造成一個視訊檔案(.avi)。
伺服器響應的資料為加密資料,如下圖所示:
解密後,全部有用的資料都會儲存在下面這個登錄檔鍵中:
HKCU\Software\AppDataLow\Software\Microsoft\{GUID}
登錄檔鍵“defrdisc”中包含了下一步需要執行的惡意命令,目標主機啟動之後命令會自動執行:
命令的主要目的就是通過PowerShell引擎來執行“cmiftall”登錄檔鍵中的資料:
C:\Windows\system32\wbem\wmic.exe/output:clipboard process call create “powershell -w hiddeniex([System.Text.Encoding]::ASCII.GetString((get-itemproperty‘HKCU:\Software\AppDataLow\Software\Microsoft\94502524-E302-E68A-0D08-C77A91BCEB4E’).cmiftall))”
“cmiftall”登錄檔鍵中的資料是一個以十六進位制編碼的PowerShell指令碼,所以我們可以輕鬆重構出它所要進行的操作:
Ursnif會使用PowerShell指令碼來把惡意程式碼儲存到登錄檔鍵中,Ursnif能夠通過其惡意位元組陣列來分配空間,其中包含了最終的惡意Payload,並通過呼叫QueueUserAPC和SleepEx來嵌入到合法程序之中。
Ursnif的完整工作機制如下圖所示:
入侵威脅指標IoC
雜湊:
630b6f15c770716268c539c5558152168004657beee740e73ee9966d6de1753f(老樣本) f30454bcc7f1bc1f328b9b546f5906887fd0278c40d90ab75b8631ef18ed3b7f(新樣本) 93dd4d7baf1e89d024c59dbffce1c4cbc85774a1b7bcc8914452dc8aa8a79a78(最終程式碼)
Dropurls:
https://images2.imgbox [.]com/55/c4/rBzwpAzi_o.png
https://i.postimg [.]cc/PH6QvFvF/mario.png?dl=1
https://fillialopago [.]info/~DF2F63
http://felipllet [.]info
C&C:
pereloplatka[.]host roiboutique[.]ru uusisnfbfaa[.]xyz nolavalt[.]icu sendertips[.]ru
IP:
185.158.248.142 185.158.248.143
攻擊元件:
HKCU:\Software\AppDataLow\Software\Microsoft\94502524-E302-E68A-0D08-C77A91BCEB4E
Yara規則
import "pe" rule Ursnif_201902 { meta: description = "Yara rule for Ursnifloader - January version" author = "Yoroi - ZLab" last_updated = "2019-02-06" tlp = "white" category = "informational" strings: $a1 = "PADDINGXX" $a2 = { 66 66 66 66 66 66 66 } condition: all of ($a*) and pe.number_of_sections ==4 and (pe.version_info["OriginalFilename"] contains"Lumen.exe" or pe.version_info["OriginalFilename"] contains"PropositionReputation.exe") }
*參考來源: yoroi ,FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM