您的位置:首頁>科技>正文

悶聲發大財年度之星:2017挖礦木馬的瘋狂斂財暗流

0x1 前言

如果說勒索病毒是暴露在大眾視野中的“惡魔”, 那麼挖礦木馬就是潛藏在陰暗之處的“寄生蟲”。 在2017年這個安全事件頻發的年份, 除了受到全世界關注的“WannaCry”勒索病毒的出現之外, 一大波挖礦木馬也悄然崛起。 不同於勒索病毒的明目張膽, 挖礦木馬隱蔽在幾乎所有安全性脆弱的角落中, 悄悄消耗著電腦的資源。 由於其隱蔽性極強, 大多數PC用戶和伺服器管理員難以發現挖礦木馬的存在, 這也導致挖礦木馬數量的持續上漲。 本文將通過多個方面介紹挖礦木馬的種類, 發展趨勢, 危害以及防範措施。

0x2 挖礦木馬概述

2009年, 比特幣橫空出世。 得益於其去中心化的貨幣機制, 比特幣受到許多行業的青睞, 其交易價格也是一路走高。 圖1展示了比特幣從2013年7月到2017年12月交易價格(單位:美元)變化趨勢。

圖1 比特幣2013年-2017年交易價格變化趨勢

由於比特幣的成功, 許多基於區塊鏈技術的數位貨幣紛紛問世, 例如乙太幣, 門羅幣等。 這類數位貨幣並非由特定的貨幣發行機構發行, 而是依據特定演算法通過大量運算所得。 而完成如此大量運算的工具就是挖礦機程式。

挖礦機程式運用電腦強大的運算力進行大量運算, 由此獲取數位貨幣。 由於硬體性能的限制, 數位貨幣玩家需要大量電腦進行運算以獲得一定數量的數位貨幣, 因此,

一些不法分子通過各種手段將挖礦機程式植入受害者的電腦中, 利用受害者電腦的運算力進行挖礦, 從而獲取利益。 這類在使用者不知情的情況下植入使用者電腦進行挖礦的挖礦機程式就是挖礦木馬。

挖礦木馬最早出現於2013年。 圖2展示了自2013年開始國內披露的大規模挖礦木馬攻擊事件數量。

圖2 2013年-2017年國內披露的挖礦木馬攻擊事件

由於數位貨幣交易價格不斷走高, 挖礦木馬的攻擊事件也越來越頻繁, 不難預測未來挖礦木馬數量將繼續攀升。

對於挖礦木馬而言, 選擇一種交易價格較高且運算力要求適中的數位貨幣是短期內獲得較大收益的保障。 圖3展示了挖礦木馬所選擇的幣種比例。

圖3 挖礦木馬所選幣種比例

不難看出, 門羅幣是最受挖礦木馬親睞的幣種。 駭客之所以選擇門羅幣作為目標主要有以下幾個原因:

(1)門羅幣交易價格不俗。 雖然門羅幣在交易價格上不比比特幣, 但其依然保持在一個較高的交易價格。

(2)門羅幣是一種匿名幣, 安全性更高。 匿名幣是一種在交易過程中隱藏交易金額、隱藏發送方與接收方的一種特殊的區塊鏈代幣。 由於這樣一個特性, 任何人都無法在區塊鏈流覽器中查找到門羅幣交易的金額和交易雙方的位址。 這也為駭客轉移門羅幣提供便利。

(3)門羅幣是基於CryptoNight 演算法運算得到的,

通過電腦的CPU和GPU即可進行該演算法的運算而不需要其他特定的硬體支援。

(4)互聯網上有許多優秀的開源門羅幣挖礦項目, 駭客可以“即拿即用”。

(5)暗網市場支援門羅幣交易。

由於門羅幣的這些“優點”, 越來越多的挖礦木馬選擇門羅幣作為目標。

在下文中我們將根據挖礦木馬的種類分別對不同類型的挖礦木馬進行詳細介紹和分析。

0x3 挖礦木馬詳解

1.挖礦木馬僵屍網路興起

僵屍網路(Botnet)是駭客通過入侵其他電腦, 在其他電腦中植入惡意程式並通過該惡意程式繼續入侵更多電腦, 從而建立起來的一個龐大的傀儡電腦網路。 僵屍網路中的每一台電腦都是一個被駭客控制的節點, 也是一個發起攻擊的節點。 駭客入侵電腦並植入挖礦木馬,之後利用被入侵的電腦繼續向其他電腦植入挖礦木馬從而構建的僵屍網路就是挖礦木馬僵屍網路。

2017年是挖礦木馬僵屍網路大規模爆發的一年,出現了“Bondnet”,“Adylkuzz”,“隱匿者”等多個大規模挖礦木馬僵屍網路,而其中很大一部分的挖礦木馬僵屍網路來自於中國。

(1) 僵屍網路的建立

僵屍網路是否能成規模關鍵在於僵屍網路的初步建立。駭客需要一個能夠完成大規模入侵的攻擊武器以獲得更多電腦的控制權。

“永恆之藍”漏洞攻擊武器的出現助長了挖礦木馬僵屍網路的建立。2017年4月,shadow broker公佈了NSA(美國國家安全局)方程式組織的漏洞攻擊武器“永恆之藍”。2017年5月爆發的造成空前影響的“WannaCry”勒索病毒就是通過“永恆之藍”進行傳播的。而在“WannaCry”爆發之前,已有挖礦木馬利用“永恆之藍”進行傳播。“永恆之藍”有兩個其他漏洞利用工具無法企及的優勢:

(1)攻擊無需載體。不同于利用流覽器漏洞或者辦公軟體漏洞進行的“被動式攻擊”,“永恆之藍”漏洞利用攻擊是一種“主動式攻擊”,駭客只需要向目標發送攻擊資料包而不需要目標進行額外的操作即可完成攻擊。

(2)攻擊目標廣。只要目的電腦開啟445埠且未及時打補丁,駭客就可以成功入侵目的電腦。駭客完全可以進行全網掃描捕捉獵物。

正因此,“永恆之藍”一時間成了挖礦木馬僵屍網路的標配。表1展示了2017年爆發的幾個大規模挖礦木馬僵屍網路配備“永恆之藍”漏洞利用武器的情況。

表1 挖礦木馬僵屍網路配置“永恆之藍”模組情況

挖礦木馬僵屍網路家族

是否配備“永恆之藍”模組

Adylkuzz

隱匿者

mateMiner

fontsMiner

Bondnet

×

yamMiner

×

其中一些僵屍網路是完全依靠“永恆之藍”漏洞攻擊武器站穩腳跟的,例如“隱匿者”僵屍網路。圖4展示了“隱匿者”僵屍網路僵屍程式傳播量變化趨勢。不難看出,借助于“永恆之藍”漏洞攻擊武器,“隱匿者”在2017年4月底爆發式增長。(更多細節見報告:http://www.freebuf.com/articles/web/146393.html)

圖4 “隱匿者”僵屍網路僵屍程式各版本傳播量

隨著漏洞的更多細節公之於眾,各式各樣的“永恆之藍”漏洞攻擊工具問世。在2017年9月出現並呈增長趨勢的“mateMiner”僵屍網路中集成了由Powershell編寫的“永恆之藍”漏洞攻擊模組。圖5展示了部分攻擊代碼。

圖5 “mateMiner”僵屍網路“永恆之藍”模組部分代碼片段

除了“永恆之藍”漏洞攻擊武器之外,其它各類Nday漏洞也備受挖礦木馬僵屍網路的親睞。“yamMiner”僵屍網路就是利用Java 反序列化漏洞進行伺服器入侵的。

“yamMiner”僵屍網路2016年底出現,並在2017年呈現增長趨勢,目前仍處在活躍狀態。該僵屍網路建立之初,通過Java Commons Collections反序列化漏洞入侵伺服器,漏洞如下所示:

漏洞

描述

CVE-2015-7450

IBM WebSphere Java Comments Collections組件反序列化漏洞

CVE-2015-4852

Oracle WebLogic Server Java反序列化漏洞

(更多細節見:http://www.freebuf.com/articles/system/129459.html

使用Nday漏洞進行入侵攻擊對於未打補丁的電腦而言效果立竿見影。而國內未能及時打補丁的電腦數量並不少,這也是這類挖礦木馬僵屍網路持續保持活躍的重要原因之一。

(2)僵屍網路的擴張

當僵屍網路初具雛形後,駭客需要通過現有的傀儡機攻擊更多的電腦,通過量的積累轉化為可見的利益。因此,僵屍網路中的每一台傀儡機都是攻擊的發起者,而他們的目標是互聯網中的所有電腦。

“永恆之藍”漏洞攻擊武器在僵屍網路的擴張中起到重要的作用。在上文中展示了“永恆之藍”漏洞攻擊武器在僵屍網路建立時發揮的重要作用,這些同樣作用於僵屍網路的擴張,在此不再贅述。

埠掃描和爆破也是僵屍網路擴張的幫手。“隱匿者”挖礦木馬僵屍網路中帶有全網掃描模組,僵屍程式會不斷地對隨機ip進行指定埠掃描,若埠開放則嘗試進行爆破,爆破成功後則登錄目的電腦植入挖礦木馬和僵屍程式,繼續進一步的擴張。圖6展示了“隱匿者”挖礦木馬僵屍網路埠掃描模組代碼片段。表2展示了“隱匿者”僵屍網路爆破模組、爆破物件以及當前支援情況。

圖6 “隱匿者”僵屍網路埠掃描模組代碼片段

表2 “隱匿者”僵屍網路爆破模組概覽

爆破模組

爆破目標(埠)

當前支援情況

Cracker:mssql

MSSQL(1433)

支持

Cracker:Telnet

Telnet(23)

支持

Cracker:RDP

RDP(3389)

支援未完善

Cracker:CCTV

CCTV攝像頭(不定)

支援未完善

Cracker:MySQL

MySQL(3306)

已移除

Cracker:WMI

WMI(135)

已移除

Cracker:SSH

SSH(22)

已移除

高級內網滲透攻擊開始出現在挖礦木馬僵屍網路的擴張中。我們在“mateMiner”僵屍網路中發現了使用“pass the hash”攻擊進行內網滲透的模組。僵屍網路釋放了憑證竊取工具mimikatz獲取保存在本電腦中的憑證,並用其進行“pass the hash”攻擊。圖7展示了“mateMiner”僵屍網路憑證獲取模組的代碼片段。

圖7 “mateMiner”僵屍網路憑證獲取模組代碼片段

“mateMiner”僵屍網路會首先嘗試使用這些憑證登錄內網中的其他電腦,一旦登錄成功就往這些電腦中植入挖礦木馬和僵屍程式,只有嘗試登錄失敗才會使用“永恆之藍”漏洞攻擊武器進行入侵。可見,隨著“永恆之藍”漏洞攻擊成功率的降低,諸如 mimikatz這類高級內網滲透工具已經開始被挖礦木馬僵屍網路所使用。圖8展示了“mateMiner”僵屍網路進行內網滲透的代碼片段。

圖8 “mateMiner”僵屍網路內網滲透模組代碼片段

(3)僵屍程式的持續駐留

駭客是否能夠持續控制傀儡機關鍵在於傀儡機中的僵屍程式能否持續駐留。而挖礦木馬僵屍網路也是用盡了各種辦法讓僵屍程式持續駐留在傀儡機中。

將僵屍程式直接寄生在系統進程中是最好的選擇。“yamMiner”僵屍網路在利用Java反序列化漏洞入侵電腦後直接在Java進程中執行命令。而“隱匿者”僵屍網路在通過爆破MSSQL服務入侵其他電腦後以SQLServer Job的形式運行挖礦機,並且在SQLServer中寫入多段shellcode。圖9展示了“隱匿者”在SQLServer中寫入的一段shellcode。

圖9 “隱匿者”僵屍網路在SQLServer中寫入的shellcode

通過將僵屍程式寄生在系統進程中能夠有效逃避殺毒軟體的攔截,保證僵屍程式的持續駐留。

WMI, PowerShell都是持續駐留的好幫手。許多僵屍網路通過WMI實現僵屍程式在目的電腦中的持續駐留,並且使用PowerShell協助完成工作。

“隱匿者”僵屍網路在SQLServer中的shellcode就包含了使用WMI進行挖礦機設定檔定時更新的功能。圖10展示了這段shellcode的內容。

圖10 “隱匿者”僵屍網路使用WMI進行定期更新的shellcode片段

而“mateMiner”僵屍網路僅僅使用一個PowerShell腳本作為僵屍程式,這也是它最大的特點。這個PowerShell腳本完成了包括入侵、持續駐留、挖礦在內的所有功能。圖11展示了“mateMiner”僵屍網路從駭客伺服器下載執行PowerShell腳本的命令列。

圖11 “mateMiner”僵屍網路執行PowerShell命令列片段

除了利用PowerShell腳本完成工作,“mateMiner”更是將WMI的靈活性發揮到了極致,不僅使用WMI的__EventFilter類實現持續駐留,還將shellcode保存為WMI下類屬性的值,需要時載入記憶體執行,真正實現“無檔”攻擊。圖12展示“mateMiner”使用WMI下類屬性存儲shellcode的代碼片段。

圖12 “mateMiner”使用WMI存儲shellcode代碼片段

由於PowerShell和WMI有極高的靈活性,僵屍網路能夠通過兩者有效管理傀儡機,並且減少惡意檔的釋放,躲避殺毒軟體的查殺。

先進的控制與命令方式是持續駐留的關鍵。每個僵屍網路都有一個最終的控制端,這個控制端負責向僵屍網路中的每個節點下發控制指令。由於控制端的存活時間並不長,其ip位址會頻繁進行更換,因此挖礦木馬僵屍網路需要一套完備的控制體系以保證隨時與控制端聯繫。

“隱匿者”僵屍網路就擁有一套完善的控制體系。圖13展示了“隱匿者”僵屍網路中僵屍程式與控制端之間的交互。

圖13 “隱匿者”僵屍網路僵屍程式與控制端交互圖

“隱匿者”有多個功能不同的控制伺服器,分別負責挖礦木馬的更新、僵屍程式的更新以及遠控木馬的下發。當傀儡機中的僵屍程式啟動時,會進行一次自檢,以確定是否有新版本的僵屍程式存在。同時,“隱匿者”也在SQLServer中寫入這樣一段自檢的shellcode,以保證僵屍程式被殺後還能從控制端下載新的僵屍程式。而僵屍程式所請求的控制端ip位址是不固定的,“隱匿者”通過訪問指定博客獲取博文內容,通過博文內容解密得到控制端ip。控制者只需修改博文內容就能夠實現控制端ip的更換。

當然,將控制端ip的快速更新展現得淋漓盡致的當數“yamMiner”挖礦木馬僵屍網路了。其控制端ip位址基本保持了一星期一更新的頻率。圖14展示了“yamMiner”僵屍網路2017年11月至12月控制端ip位址更新時間線。

圖14 “yamMiner”僵屍網路2017年11月-12月更新概況

通過觀察“yamMiner”僵屍網路2017年11月到12月向控制端發起的請求數量我們發現了一個有趣的細節。這可以從圖15展現。

圖15 “yamMiner”僵屍網路2017年11月-12月發送請求數量概況

不難看出,當“yamMiner”的控制端ip發生變化的時候,傀儡機中的僵屍程式能夠立即連接新的ip位址,所以就有了圖中新控制端ip位址出現時舊控制端ip位址請求數量下降到0的現象。實現這樣的效果就要求傀儡程式能夠即時獲知ip位址的變化情況,而“yamMiner”就是利用Java Commons Collections反序列化漏洞週期性地在傀儡機上執行命令,修改傀儡程式連接的控制端ip。由於這一功能是在Java進程中實現的,能夠有效躲避殺軟的查殺。一般情況下僵屍網路控制端ip位址存活時間不長,優秀的挖礦木馬僵屍網路會利用漏洞在傀儡機執行命令更改控制端ip或者將控制端ip存儲在例如博客內容這類容易修改又不容易被發現的位置。如果傀儡機所有者不修補電腦系統中存在的漏洞或者刪除電腦中持續工作的一些項目(例如SQLServer中的惡意Job),僵屍程式就能在傀儡機中生生不息。

(4)總結

挖礦機僵屍網路是2017年大規模爆發的一個安全威脅,它的危害程度可以從駭客獲利的金額展現。圖16和圖17分別展示了 “yamMiner”僵屍網路的門羅幣錢包之一和“隱匿者”僵屍網路的門羅幣錢包。

圖16 “yamMiner”僵屍網路門羅幣錢包之一概況

圖17 “隱匿者”僵屍網路門羅幣錢包概況

截至筆者撰稿時“隱匿者”僵屍網路從傀儡機中總共挖到了2010枚門羅幣,合計61萬美元。“yamMiner”僵屍網路其中一個錢包就獲利4萬美元,而“yamMiner”擁有多個門羅幣錢包,可想而知其總獲利金額。挖礦木馬帶來的暴利導致各家僵屍網路競爭的白熱化,其中不乏對其他僵屍網路的攻擊。例如“mateMiner”僵屍網路會根據其他僵屍網路的礦池埠結束相應進程,如圖18所示。

圖18 “mateMiner”僵屍網路結束其他挖礦木馬進程代碼片段

當然,這樣的競爭還會持續下去,數位貨幣交易價格的持續走高必將使更多的不法分子加入到這場僵屍網路之戰中。

1.網頁挖礦腳本橫空出世

2017年9月,著名的BT網站,同樣也是盜版資源集散地的Pirate Bay(海盜灣)被發現在網頁中植入挖礦腳本,網頁挖礦開始進入公眾的視野。

當用戶訪問一個網頁時,用戶的流覽器負責解析該網站中的資源、腳本,並將解析的結果展示在用戶面前。當用戶訪問的網頁中植入了挖礦腳本,流覽器將解析並執行挖礦腳本,利用使用者電腦資源進行挖礦從而獲利。挖礦腳本的執行會導致使用者電腦資源被嚴重佔用,導致電腦卡慢,甚至出現死機等情況,嚴重影響使用者電腦的正常使用。

網頁挖礦腳本種類眾多,目前發現的植入到網頁中的挖礦腳本有Coinhive,JSEcoin,reasedoper,LMODR.BIZ,MineCrunch,MarineTraffic,Crypto-Loot,ProjectPoi等,大部分挖礦腳本項目都是開源的,這也方便一些站長或網站入侵者在網頁中植入挖礦腳本。圖19展示了2017年11月至12月不同網頁挖礦腳本的占比情況。

圖19 2017年11月-12月不同挖礦腳本占比

可以看出,Coinhive是大多數不法分子的選擇,這也歸功於Coinhive的便捷性。入侵網站的駭客或者貪圖利益的站長並不需要將挖礦的js代碼寫入網頁中,而是在網頁中調用Coinhive官網中的js文件coinhive.min.js並指定一個唯一的識別字即可。圖20展示了Coinhive的代碼範例。

圖20 “Coinhive”挖礦腳本代碼範例

隨著網頁挖礦腳本的興起,許多網站開始通過一些特殊技巧掩蓋挖礦時所產生的大量系統資源消耗。2017年9月,有安全研究人員發現尾碼為.com.com的功能變數名稱掛有挖礦代碼。這些網站以“安全檢查”作為幌子掩蓋挖礦時系統的卡慢。如圖21所示。

圖21 挖礦腳本用“安全檢查”迷惑用戶

無獨有偶,前段時間,malwarebytes安全研究人員發現某些包含挖礦代碼的網頁會在使用者關閉流覽器視窗後隱藏在工作列右下角繼續挖礦。如圖22所示。(圖片來自:https://blog.malwarebytes.com/cybercrime/2017/11/persistent-drive-by-cryptomining-coming-to-a-browser-near-you/)

圖22 挖礦腳本利用工作列隱藏自身

在這些被植入挖礦腳本的網站中,一部分是貪圖利益的站長主動將挖礦腳本嵌入網頁中的,而另一部分則是駭客入侵網站之後植入挖礦腳本的。2017年11月我們發現一批網站被植入了帶有相同識別字的ProjectPoi挖礦腳本,但這一批網站之間並沒有絲毫關聯,可以推測,是駭客入侵網站之後植入的挖礦腳本。圖23展示了這些網站中植入的挖礦腳本。

圖23 一些被駭客入侵的網站中植入的挖礦腳本

不同於通過入侵伺服器搭建挖礦木馬僵屍網路,網頁挖礦腳本更容易被用 戶所察覺,但由於利益驅使依然有許多網站中被植入了挖礦腳本。圖24展示了2017年9月-12月網頁植入挖礦腳本數量變化趨勢。不難看出,網頁挖礦腳本數量還在不斷增加,特別是進入12月後數量有明顯上漲的趨勢。

圖24 2017年11月-12月網頁挖礦腳本數量變化趨勢

網頁挖礦腳本之所以如此活躍,主要是因為大部分挖礦腳本都來自於色情網站這一類特殊的網站,由於這類網站的高訪問量導致挖礦腳本數量的持續升高。圖25展示了網頁挖礦腳本在各類網站中出現的比例,不難看出,色情網站是網頁挖礦腳本的重災區。

圖25 各類網站植入挖礦腳本比例

相比較挖礦木馬僵屍網路,網頁挖礦腳本屬於後起之秀,但出現時間晚並不能阻止此類挖礦木馬的興起,巨大的利益驅動促使更多的黑產從業者投身挖礦事業中。但由於網頁挖礦隱蔽性較低,未來黑產從業者可能會將挖礦目標轉移到網頁遊戲和用戶端遊戲中,通過遊戲的資源高消耗率掩蓋挖礦機的運作。而移動平臺也有可能是挖礦木馬的重要目標。

0x4 防範與總結

挖礦木馬的崛起源於數位貨幣交易價格的持續走高,從當前的情況看,數位貨幣交易價格還將持續攀升,這也將可能導致挖礦木馬數量的激增。因此,如何防範挖礦木馬是重中之重。

1. 防範挖礦木馬僵屍網路

挖礦木馬僵屍網路的目標是伺服器,駭客通過入侵伺服器植入挖礦機程式獲利。如果能對駭客的入侵行為進行有效防範,就能夠將挖礦木馬僵屍網路扼殺在搖籃中。作為伺服器管理員,進行如下工作是防範挖礦木馬僵屍網路的關鍵:

(1)避免使用弱口令。從上文可知,“隱匿者”這類規模龐大的僵屍網路擁有完備的弱口令爆破模組,因此避免使用弱口令可以有效防範僵屍程式發起的弱口令爆破。管理員不僅應該在伺服器登錄帳戶上使用強式密碼,在開放埠上的服務(例如MSSQL服務,MySQL服務)也應該使用強式密碼。

(2)及時為作業系統和相關服務打補丁。許多挖礦木馬僵屍網路利用“永恆之藍”漏洞利用武器進行傳播,而“隱匿者”更是在“永恆之藍”漏洞利用武器洩露的幾天後就開始將它用於真實攻擊,可見駭客對於1day,Nday漏洞的利用十分嫺熟。由於大部分漏洞細節公佈之前相應廠商已經推送相關補丁,如果伺服器管理員能夠及時為系統和相關服務打補丁就能有效避免漏洞利用攻擊。伺服器管理員需要為存在被攻擊風險的伺服器作業系統、Web服務端、開放的服務等及時打補丁。

(3)定期維護伺服器。由於挖礦木馬會持續駐留在電腦中,如果伺服器管理員未定期查看伺服器狀態,那麼挖礦木馬就難以被發現。因此伺服器管理員應定期維護伺服器,內容包括但不限於:查看伺服器作業系統CPU使用率是否異常、是否存在可疑進程、WMI中是否有可疑的類、計畫任務中是否存在可疑項、是否有可疑的諸如PowerShell進程、mshta進程這類常被用於持續駐留的進程存在。

2.防範網頁挖礦腳本

網頁挖礦腳本一般針對PC,因此也較容易被發現,用戶可以通過以下幾方面防範網頁挖礦腳本:

(1)流覽網頁時留意CPU使用率。由於挖礦腳本的運行會導致CPU使用率飆升,如果用戶在流覽網頁時發現電腦CPU使用率飆升且大部分CPU使用來自於流覽器,那麼網頁中可能嵌入挖礦腳本。

(2)不訪問流覽器或殺毒軟體標記為高風險的網站。如今大部分殺軟和主流流覽器都具備檢測網頁挖礦腳本的能力,若用戶訪問的網站是被標注為高風險的惡意網站,那麼網站中可能嵌入了挖礦腳本。不訪問被標記為高風險的網站也能避免掛馬攻擊。

2017年是挖礦木馬爆發的一年,而2018年可能是挖礦木馬從隱匿的角落走向大眾視野的一年。阻止挖礦木馬的興起是殺毒軟體的重要責任,而防範挖礦木馬的入侵是每一位伺服器管理員、PC使用者需要時刻注意的重點。防禦挖礦木馬,保護使用者的電腦安全,任重而道遠!

0x5 參考連結

[1] 利用伺服器漏洞挖礦黑產案例分析; http://www.freebuf.com/articles/system/129459.html

[2] 悄然崛起的挖礦機僵屍網路:打伺服器挖價值百萬門羅幣;http://www.freebuf.com/articles/web/146393.html

[3] Persistent drive-by cryptomining coming to a browser near you;https://blog.malwarebytes.com/cybercrime/2017/11/persistent-drive-by-cryptomining-coming-to-a-browser-near-you

[4] “門羅幣最近沒落了嗎?什麼原因?”問題“艾俊強”的回答;https://www.zhihu.com/question/60058310/answer/222755086

駭客入侵電腦並植入挖礦木馬,之後利用被入侵的電腦繼續向其他電腦植入挖礦木馬從而構建的僵屍網路就是挖礦木馬僵屍網路。

2017年是挖礦木馬僵屍網路大規模爆發的一年,出現了“Bondnet”,“Adylkuzz”,“隱匿者”等多個大規模挖礦木馬僵屍網路,而其中很大一部分的挖礦木馬僵屍網路來自於中國。

(1) 僵屍網路的建立

僵屍網路是否能成規模關鍵在於僵屍網路的初步建立。駭客需要一個能夠完成大規模入侵的攻擊武器以獲得更多電腦的控制權。

“永恆之藍”漏洞攻擊武器的出現助長了挖礦木馬僵屍網路的建立。2017年4月,shadow broker公佈了NSA(美國國家安全局)方程式組織的漏洞攻擊武器“永恆之藍”。2017年5月爆發的造成空前影響的“WannaCry”勒索病毒就是通過“永恆之藍”進行傳播的。而在“WannaCry”爆發之前,已有挖礦木馬利用“永恆之藍”進行傳播。“永恆之藍”有兩個其他漏洞利用工具無法企及的優勢:

(1)攻擊無需載體。不同于利用流覽器漏洞或者辦公軟體漏洞進行的“被動式攻擊”,“永恆之藍”漏洞利用攻擊是一種“主動式攻擊”,駭客只需要向目標發送攻擊資料包而不需要目標進行額外的操作即可完成攻擊。

(2)攻擊目標廣。只要目的電腦開啟445埠且未及時打補丁,駭客就可以成功入侵目的電腦。駭客完全可以進行全網掃描捕捉獵物。

正因此,“永恆之藍”一時間成了挖礦木馬僵屍網路的標配。表1展示了2017年爆發的幾個大規模挖礦木馬僵屍網路配備“永恆之藍”漏洞利用武器的情況。

表1 挖礦木馬僵屍網路配置“永恆之藍”模組情況

挖礦木馬僵屍網路家族

是否配備“永恆之藍”模組

Adylkuzz

隱匿者

mateMiner

fontsMiner

Bondnet

×

yamMiner

×

其中一些僵屍網路是完全依靠“永恆之藍”漏洞攻擊武器站穩腳跟的,例如“隱匿者”僵屍網路。圖4展示了“隱匿者”僵屍網路僵屍程式傳播量變化趨勢。不難看出,借助于“永恆之藍”漏洞攻擊武器,“隱匿者”在2017年4月底爆發式增長。(更多細節見報告:http://www.freebuf.com/articles/web/146393.html)

圖4 “隱匿者”僵屍網路僵屍程式各版本傳播量

隨著漏洞的更多細節公之於眾,各式各樣的“永恆之藍”漏洞攻擊工具問世。在2017年9月出現並呈增長趨勢的“mateMiner”僵屍網路中集成了由Powershell編寫的“永恆之藍”漏洞攻擊模組。圖5展示了部分攻擊代碼。

圖5 “mateMiner”僵屍網路“永恆之藍”模組部分代碼片段

除了“永恆之藍”漏洞攻擊武器之外,其它各類Nday漏洞也備受挖礦木馬僵屍網路的親睞。“yamMiner”僵屍網路就是利用Java 反序列化漏洞進行伺服器入侵的。

“yamMiner”僵屍網路2016年底出現,並在2017年呈現增長趨勢,目前仍處在活躍狀態。該僵屍網路建立之初,通過Java Commons Collections反序列化漏洞入侵伺服器,漏洞如下所示:

漏洞

描述

CVE-2015-7450

IBM WebSphere Java Comments Collections組件反序列化漏洞

CVE-2015-4852

Oracle WebLogic Server Java反序列化漏洞

(更多細節見:http://www.freebuf.com/articles/system/129459.html

使用Nday漏洞進行入侵攻擊對於未打補丁的電腦而言效果立竿見影。而國內未能及時打補丁的電腦數量並不少,這也是這類挖礦木馬僵屍網路持續保持活躍的重要原因之一。

(2)僵屍網路的擴張

當僵屍網路初具雛形後,駭客需要通過現有的傀儡機攻擊更多的電腦,通過量的積累轉化為可見的利益。因此,僵屍網路中的每一台傀儡機都是攻擊的發起者,而他們的目標是互聯網中的所有電腦。

“永恆之藍”漏洞攻擊武器在僵屍網路的擴張中起到重要的作用。在上文中展示了“永恆之藍”漏洞攻擊武器在僵屍網路建立時發揮的重要作用,這些同樣作用於僵屍網路的擴張,在此不再贅述。

埠掃描和爆破也是僵屍網路擴張的幫手。“隱匿者”挖礦木馬僵屍網路中帶有全網掃描模組,僵屍程式會不斷地對隨機ip進行指定埠掃描,若埠開放則嘗試進行爆破,爆破成功後則登錄目的電腦植入挖礦木馬和僵屍程式,繼續進一步的擴張。圖6展示了“隱匿者”挖礦木馬僵屍網路埠掃描模組代碼片段。表2展示了“隱匿者”僵屍網路爆破模組、爆破物件以及當前支援情況。

圖6 “隱匿者”僵屍網路埠掃描模組代碼片段

表2 “隱匿者”僵屍網路爆破模組概覽

爆破模組

爆破目標(埠)

當前支援情況

Cracker:mssql

MSSQL(1433)

支持

Cracker:Telnet

Telnet(23)

支持

Cracker:RDP

RDP(3389)

支援未完善

Cracker:CCTV

CCTV攝像頭(不定)

支援未完善

Cracker:MySQL

MySQL(3306)

已移除

Cracker:WMI

WMI(135)

已移除

Cracker:SSH

SSH(22)

已移除

高級內網滲透攻擊開始出現在挖礦木馬僵屍網路的擴張中。我們在“mateMiner”僵屍網路中發現了使用“pass the hash”攻擊進行內網滲透的模組。僵屍網路釋放了憑證竊取工具mimikatz獲取保存在本電腦中的憑證,並用其進行“pass the hash”攻擊。圖7展示了“mateMiner”僵屍網路憑證獲取模組的代碼片段。

圖7 “mateMiner”僵屍網路憑證獲取模組代碼片段

“mateMiner”僵屍網路會首先嘗試使用這些憑證登錄內網中的其他電腦,一旦登錄成功就往這些電腦中植入挖礦木馬和僵屍程式,只有嘗試登錄失敗才會使用“永恆之藍”漏洞攻擊武器進行入侵。可見,隨著“永恆之藍”漏洞攻擊成功率的降低,諸如 mimikatz這類高級內網滲透工具已經開始被挖礦木馬僵屍網路所使用。圖8展示了“mateMiner”僵屍網路進行內網滲透的代碼片段。

圖8 “mateMiner”僵屍網路內網滲透模組代碼片段

(3)僵屍程式的持續駐留

駭客是否能夠持續控制傀儡機關鍵在於傀儡機中的僵屍程式能否持續駐留。而挖礦木馬僵屍網路也是用盡了各種辦法讓僵屍程式持續駐留在傀儡機中。

將僵屍程式直接寄生在系統進程中是最好的選擇。“yamMiner”僵屍網路在利用Java反序列化漏洞入侵電腦後直接在Java進程中執行命令。而“隱匿者”僵屍網路在通過爆破MSSQL服務入侵其他電腦後以SQLServer Job的形式運行挖礦機,並且在SQLServer中寫入多段shellcode。圖9展示了“隱匿者”在SQLServer中寫入的一段shellcode。

圖9 “隱匿者”僵屍網路在SQLServer中寫入的shellcode

通過將僵屍程式寄生在系統進程中能夠有效逃避殺毒軟體的攔截,保證僵屍程式的持續駐留。

WMI, PowerShell都是持續駐留的好幫手。許多僵屍網路通過WMI實現僵屍程式在目的電腦中的持續駐留,並且使用PowerShell協助完成工作。

“隱匿者”僵屍網路在SQLServer中的shellcode就包含了使用WMI進行挖礦機設定檔定時更新的功能。圖10展示了這段shellcode的內容。

圖10 “隱匿者”僵屍網路使用WMI進行定期更新的shellcode片段

而“mateMiner”僵屍網路僅僅使用一個PowerShell腳本作為僵屍程式,這也是它最大的特點。這個PowerShell腳本完成了包括入侵、持續駐留、挖礦在內的所有功能。圖11展示了“mateMiner”僵屍網路從駭客伺服器下載執行PowerShell腳本的命令列。

圖11 “mateMiner”僵屍網路執行PowerShell命令列片段

除了利用PowerShell腳本完成工作,“mateMiner”更是將WMI的靈活性發揮到了極致,不僅使用WMI的__EventFilter類實現持續駐留,還將shellcode保存為WMI下類屬性的值,需要時載入記憶體執行,真正實現“無檔”攻擊。圖12展示“mateMiner”使用WMI下類屬性存儲shellcode的代碼片段。

圖12 “mateMiner”使用WMI存儲shellcode代碼片段

由於PowerShell和WMI有極高的靈活性,僵屍網路能夠通過兩者有效管理傀儡機,並且減少惡意檔的釋放,躲避殺毒軟體的查殺。

先進的控制與命令方式是持續駐留的關鍵。每個僵屍網路都有一個最終的控制端,這個控制端負責向僵屍網路中的每個節點下發控制指令。由於控制端的存活時間並不長,其ip位址會頻繁進行更換,因此挖礦木馬僵屍網路需要一套完備的控制體系以保證隨時與控制端聯繫。

“隱匿者”僵屍網路就擁有一套完善的控制體系。圖13展示了“隱匿者”僵屍網路中僵屍程式與控制端之間的交互。

圖13 “隱匿者”僵屍網路僵屍程式與控制端交互圖

“隱匿者”有多個功能不同的控制伺服器,分別負責挖礦木馬的更新、僵屍程式的更新以及遠控木馬的下發。當傀儡機中的僵屍程式啟動時,會進行一次自檢,以確定是否有新版本的僵屍程式存在。同時,“隱匿者”也在SQLServer中寫入這樣一段自檢的shellcode,以保證僵屍程式被殺後還能從控制端下載新的僵屍程式。而僵屍程式所請求的控制端ip位址是不固定的,“隱匿者”通過訪問指定博客獲取博文內容,通過博文內容解密得到控制端ip。控制者只需修改博文內容就能夠實現控制端ip的更換。

當然,將控制端ip的快速更新展現得淋漓盡致的當數“yamMiner”挖礦木馬僵屍網路了。其控制端ip位址基本保持了一星期一更新的頻率。圖14展示了“yamMiner”僵屍網路2017年11月至12月控制端ip位址更新時間線。

圖14 “yamMiner”僵屍網路2017年11月-12月更新概況

通過觀察“yamMiner”僵屍網路2017年11月到12月向控制端發起的請求數量我們發現了一個有趣的細節。這可以從圖15展現。

圖15 “yamMiner”僵屍網路2017年11月-12月發送請求數量概況

不難看出,當“yamMiner”的控制端ip發生變化的時候,傀儡機中的僵屍程式能夠立即連接新的ip位址,所以就有了圖中新控制端ip位址出現時舊控制端ip位址請求數量下降到0的現象。實現這樣的效果就要求傀儡程式能夠即時獲知ip位址的變化情況,而“yamMiner”就是利用Java Commons Collections反序列化漏洞週期性地在傀儡機上執行命令,修改傀儡程式連接的控制端ip。由於這一功能是在Java進程中實現的,能夠有效躲避殺軟的查殺。一般情況下僵屍網路控制端ip位址存活時間不長,優秀的挖礦木馬僵屍網路會利用漏洞在傀儡機執行命令更改控制端ip或者將控制端ip存儲在例如博客內容這類容易修改又不容易被發現的位置。如果傀儡機所有者不修補電腦系統中存在的漏洞或者刪除電腦中持續工作的一些項目(例如SQLServer中的惡意Job),僵屍程式就能在傀儡機中生生不息。

(4)總結

挖礦機僵屍網路是2017年大規模爆發的一個安全威脅,它的危害程度可以從駭客獲利的金額展現。圖16和圖17分別展示了 “yamMiner”僵屍網路的門羅幣錢包之一和“隱匿者”僵屍網路的門羅幣錢包。

圖16 “yamMiner”僵屍網路門羅幣錢包之一概況

圖17 “隱匿者”僵屍網路門羅幣錢包概況

截至筆者撰稿時“隱匿者”僵屍網路從傀儡機中總共挖到了2010枚門羅幣,合計61萬美元。“yamMiner”僵屍網路其中一個錢包就獲利4萬美元,而“yamMiner”擁有多個門羅幣錢包,可想而知其總獲利金額。挖礦木馬帶來的暴利導致各家僵屍網路競爭的白熱化,其中不乏對其他僵屍網路的攻擊。例如“mateMiner”僵屍網路會根據其他僵屍網路的礦池埠結束相應進程,如圖18所示。

圖18 “mateMiner”僵屍網路結束其他挖礦木馬進程代碼片段

當然,這樣的競爭還會持續下去,數位貨幣交易價格的持續走高必將使更多的不法分子加入到這場僵屍網路之戰中。

1.網頁挖礦腳本橫空出世

2017年9月,著名的BT網站,同樣也是盜版資源集散地的Pirate Bay(海盜灣)被發現在網頁中植入挖礦腳本,網頁挖礦開始進入公眾的視野。

當用戶訪問一個網頁時,用戶的流覽器負責解析該網站中的資源、腳本,並將解析的結果展示在用戶面前。當用戶訪問的網頁中植入了挖礦腳本,流覽器將解析並執行挖礦腳本,利用使用者電腦資源進行挖礦從而獲利。挖礦腳本的執行會導致使用者電腦資源被嚴重佔用,導致電腦卡慢,甚至出現死機等情況,嚴重影響使用者電腦的正常使用。

網頁挖礦腳本種類眾多,目前發現的植入到網頁中的挖礦腳本有Coinhive,JSEcoin,reasedoper,LMODR.BIZ,MineCrunch,MarineTraffic,Crypto-Loot,ProjectPoi等,大部分挖礦腳本項目都是開源的,這也方便一些站長或網站入侵者在網頁中植入挖礦腳本。圖19展示了2017年11月至12月不同網頁挖礦腳本的占比情況。

圖19 2017年11月-12月不同挖礦腳本占比

可以看出,Coinhive是大多數不法分子的選擇,這也歸功於Coinhive的便捷性。入侵網站的駭客或者貪圖利益的站長並不需要將挖礦的js代碼寫入網頁中,而是在網頁中調用Coinhive官網中的js文件coinhive.min.js並指定一個唯一的識別字即可。圖20展示了Coinhive的代碼範例。

圖20 “Coinhive”挖礦腳本代碼範例

隨著網頁挖礦腳本的興起,許多網站開始通過一些特殊技巧掩蓋挖礦時所產生的大量系統資源消耗。2017年9月,有安全研究人員發現尾碼為.com.com的功能變數名稱掛有挖礦代碼。這些網站以“安全檢查”作為幌子掩蓋挖礦時系統的卡慢。如圖21所示。

圖21 挖礦腳本用“安全檢查”迷惑用戶

無獨有偶,前段時間,malwarebytes安全研究人員發現某些包含挖礦代碼的網頁會在使用者關閉流覽器視窗後隱藏在工作列右下角繼續挖礦。如圖22所示。(圖片來自:https://blog.malwarebytes.com/cybercrime/2017/11/persistent-drive-by-cryptomining-coming-to-a-browser-near-you/)

圖22 挖礦腳本利用工作列隱藏自身

在這些被植入挖礦腳本的網站中,一部分是貪圖利益的站長主動將挖礦腳本嵌入網頁中的,而另一部分則是駭客入侵網站之後植入挖礦腳本的。2017年11月我們發現一批網站被植入了帶有相同識別字的ProjectPoi挖礦腳本,但這一批網站之間並沒有絲毫關聯,可以推測,是駭客入侵網站之後植入的挖礦腳本。圖23展示了這些網站中植入的挖礦腳本。

圖23 一些被駭客入侵的網站中植入的挖礦腳本

不同於通過入侵伺服器搭建挖礦木馬僵屍網路,網頁挖礦腳本更容易被用 戶所察覺,但由於利益驅使依然有許多網站中被植入了挖礦腳本。圖24展示了2017年9月-12月網頁植入挖礦腳本數量變化趨勢。不難看出,網頁挖礦腳本數量還在不斷增加,特別是進入12月後數量有明顯上漲的趨勢。

圖24 2017年11月-12月網頁挖礦腳本數量變化趨勢

網頁挖礦腳本之所以如此活躍,主要是因為大部分挖礦腳本都來自於色情網站這一類特殊的網站,由於這類網站的高訪問量導致挖礦腳本數量的持續升高。圖25展示了網頁挖礦腳本在各類網站中出現的比例,不難看出,色情網站是網頁挖礦腳本的重災區。

圖25 各類網站植入挖礦腳本比例

相比較挖礦木馬僵屍網路,網頁挖礦腳本屬於後起之秀,但出現時間晚並不能阻止此類挖礦木馬的興起,巨大的利益驅動促使更多的黑產從業者投身挖礦事業中。但由於網頁挖礦隱蔽性較低,未來黑產從業者可能會將挖礦目標轉移到網頁遊戲和用戶端遊戲中,通過遊戲的資源高消耗率掩蓋挖礦機的運作。而移動平臺也有可能是挖礦木馬的重要目標。

0x4 防範與總結

挖礦木馬的崛起源於數位貨幣交易價格的持續走高,從當前的情況看,數位貨幣交易價格還將持續攀升,這也將可能導致挖礦木馬數量的激增。因此,如何防範挖礦木馬是重中之重。

1. 防範挖礦木馬僵屍網路

挖礦木馬僵屍網路的目標是伺服器,駭客通過入侵伺服器植入挖礦機程式獲利。如果能對駭客的入侵行為進行有效防範,就能夠將挖礦木馬僵屍網路扼殺在搖籃中。作為伺服器管理員,進行如下工作是防範挖礦木馬僵屍網路的關鍵:

(1)避免使用弱口令。從上文可知,“隱匿者”這類規模龐大的僵屍網路擁有完備的弱口令爆破模組,因此避免使用弱口令可以有效防範僵屍程式發起的弱口令爆破。管理員不僅應該在伺服器登錄帳戶上使用強式密碼,在開放埠上的服務(例如MSSQL服務,MySQL服務)也應該使用強式密碼。

(2)及時為作業系統和相關服務打補丁。許多挖礦木馬僵屍網路利用“永恆之藍”漏洞利用武器進行傳播,而“隱匿者”更是在“永恆之藍”漏洞利用武器洩露的幾天後就開始將它用於真實攻擊,可見駭客對於1day,Nday漏洞的利用十分嫺熟。由於大部分漏洞細節公佈之前相應廠商已經推送相關補丁,如果伺服器管理員能夠及時為系統和相關服務打補丁就能有效避免漏洞利用攻擊。伺服器管理員需要為存在被攻擊風險的伺服器作業系統、Web服務端、開放的服務等及時打補丁。

(3)定期維護伺服器。由於挖礦木馬會持續駐留在電腦中,如果伺服器管理員未定期查看伺服器狀態,那麼挖礦木馬就難以被發現。因此伺服器管理員應定期維護伺服器,內容包括但不限於:查看伺服器作業系統CPU使用率是否異常、是否存在可疑進程、WMI中是否有可疑的類、計畫任務中是否存在可疑項、是否有可疑的諸如PowerShell進程、mshta進程這類常被用於持續駐留的進程存在。

2.防範網頁挖礦腳本

網頁挖礦腳本一般針對PC,因此也較容易被發現,用戶可以通過以下幾方面防範網頁挖礦腳本:

(1)流覽網頁時留意CPU使用率。由於挖礦腳本的運行會導致CPU使用率飆升,如果用戶在流覽網頁時發現電腦CPU使用率飆升且大部分CPU使用來自於流覽器,那麼網頁中可能嵌入挖礦腳本。

(2)不訪問流覽器或殺毒軟體標記為高風險的網站。如今大部分殺軟和主流流覽器都具備檢測網頁挖礦腳本的能力,若用戶訪問的網站是被標注為高風險的惡意網站,那麼網站中可能嵌入了挖礦腳本。不訪問被標記為高風險的網站也能避免掛馬攻擊。

2017年是挖礦木馬爆發的一年,而2018年可能是挖礦木馬從隱匿的角落走向大眾視野的一年。阻止挖礦木馬的興起是殺毒軟體的重要責任,而防範挖礦木馬的入侵是每一位伺服器管理員、PC使用者需要時刻注意的重點。防禦挖礦木馬,保護使用者的電腦安全,任重而道遠!

0x5 參考連結

[1] 利用伺服器漏洞挖礦黑產案例分析; http://www.freebuf.com/articles/system/129459.html

[2] 悄然崛起的挖礦機僵屍網路:打伺服器挖價值百萬門羅幣;http://www.freebuf.com/articles/web/146393.html

[3] Persistent drive-by cryptomining coming to a browser near you;https://blog.malwarebytes.com/cybercrime/2017/11/persistent-drive-by-cryptomining-coming-to-a-browser-near-you

[4] “門羅幣最近沒落了嗎?什麼原因?”問題“艾俊強”的回答;https://www.zhihu.com/question/60058310/answer/222755086

Next Article
喜欢就按个赞吧!!!
点击关闭提示