近年來,勒索病毒憑藉極強的破壞性和高額的贖金“風靡一時”,令人聞風喪膽,而另一種數字化非法斂財工具——挖礦木馬,卻常常容易被人們忽略。
“挖礦”實際上是指透過計算機運算獲取數字貨幣的一個過程,理論上來說,利用個人資源進行挖礦並不是違法的,但由於運算過程需要消耗大量的計算機資源,長時間的高負荷執行甚至會造成計算機硬體的損壞,一些網路犯罪分子為了縮減成本,開始利用木馬程式非法侵入他人電腦,植入挖礦程式進行挖礦,構成了我們平時所說的挖礦木馬。
早期的挖礦木馬更多的採用了捆綁的方式進行傳播,多透過下載站、網盤、網咖論壇等方式傳播捆綁了挖礦木馬的外掛程式、加速器、影音播放器等,傳播具有一定的廣泛性,但由於代理渠道容易被追溯,黑產團伙也面臨著較大的風險。
隨即,黑產團伙開始挖掘自動化的傳播技術,首當其衝的便是賬號爆破。不論是SMB爆破,還是RDP爆破、MSSQL爆破、亦或是SSH爆破,都成為挖礦木馬傳播的“基本操作”。 隨著攻防手法的不斷變化,黑產團伙開始在挖礦木馬上組合多種傳播模組,除暴力破解外,還大量利用了影響廣泛的0day漏洞,如Windows下的“永恆之藍”漏洞,被“驅動人生”挖礦木馬、PowerGhost、WannaMine等家族廣泛使用。
比起Windows環境,Linux下的安全問題似乎更少受到普通使用者的關注,但這並沒有減少攻擊者對Linux系統興趣,針對Linux系統的挖礦木馬在對抗中持續進行技術更替。
傳播方式的演進
賬號爆破
賬號爆破作為最低成本的攻擊方式,同樣也是Linux挖礦木馬最常用的傳播手法,例如早期版本的StartMiner就使用了SSH暴力破解進行傳播,其次,Redis賬號爆破也常常被挖礦木馬利用:
(StartMiner挖礦木馬所使用的字典擷取)
SSH免密登入
部門挖礦木馬在感染後,會在authorized_key中寫入惡意程式內建的SSH公鑰,相當於留下一個小後門,以實現下次SSH免密登入,便於重複感染:
漏洞利用
隨著技術的發展,Linux下大量的元件漏洞和應用漏洞漸漸成為挖礦木馬的捷徑,例如DDG挖礦木馬,除SSH暴力破解之外,還會透過Redis未授權訪問漏洞、Nexus Repository Manager 3 RCE漏洞(CVE-2019-7238)、Supervisord RCE漏洞(CVE-2017-11610)等多個漏洞進行橫向傳播:
以下列舉出了常見易被挖礦木馬利用的相關漏洞:
漏洞名稱 | 漏洞編號 |
Redis未授權訪問漏洞 | - |
Nexus Repository Manager 3 RCE漏洞 | CVE-2019-7238 |
Supervisord RCE漏洞 | CVE-2017-11610 |
(髒牛)Linux本地提權漏洞 | CVE-2016-5195 |
Apache Dubbo反序列化漏洞 | CVE-2019-17564 |
Apache Dubbo Hessian2 協議反序列化漏洞 | CVE-2021-25641 |
Apache Dubbo Nashorn 指令碼遠端程式碼執行漏洞 | CVE-2021-30181 |
Structs2漏洞合集 | S2-001至S2-057 |
SHIRO-550 反序列化漏洞 | CVE-2016-4437 |
Drupal Drupalgeddon 2 遠端程式碼執行漏洞 | CVE-2018-7600 |
ThinkPHP5 5.0.22/5.1.29 遠端程式碼執行漏洞 | - |
ThinkPHP遠端程式碼執行漏洞 | CVE-2019-9082 |
Confluence 未授權 RCE | CVE_2019_3396 |
...... |
|
Docker挖礦
什麼是docker呢?熟悉Linux環境的同學應該知道,docker是容器技術的一種實現,相當於對軟體的依賴環境進行打包處理,可以在不同的環境下快速部署,並且遮蔽環境差異執行軟體。由於docker技術十分便利,如今正被越來越多的企業和個人採用,於是攻擊者將算盤打到了docker上。
2020年,研究人員曾發現Docker Hub社群有使用者上傳大量包含了挖礦程式的docker映象,這些映象中被下載次數最多的高達147萬次:
(圖片源自海外報導)
駐留方式的演進
駐留方式的演進是Linux挖礦木馬技術發展最直觀的體現。早期的Linux挖礦木馬駐留較為簡單,常見的手法包括建立crontab定時啟動、執行後刪除檔案、設定檔案或目錄為隱藏屬性:
(DDG早期變種建立的crontab)
慢慢的,Linux挖礦木馬逐漸衍生出了更多駐留方式,如下舉例:
劫持替換系統命令檔案
以BillGates殭屍網路為例,該木馬會替換系統中的getty、lsof、netstat、ps、ss、syn等命令,當直接執行這些命令時,會劫持返回結果,影響分析和排查:
守護程式
為了防止挖礦程式被殺掉,部分挖礦木馬會建立守護程式用以監控挖礦程式的狀態,在挖礦程式被kill時能夠及時重新拉起,以深信服終端安全團隊2020年捕獲的RainbowMiner為例,圖中kthreadds為挖礦程式,pdflushs為守護程式:
Rootkit
Linux挖礦最常見的Rootkit方式是so注入,透過修改/etc/ld.so.preload檔案,設定惡意so檔案為預載入庫,通常用來hook檔案檢視、檔案刪除、程式檢視等系統命令函式,過濾掉木馬相關的資訊,使得排查時使用系統命令無法檢視到病毒相關的檔案和程式資訊:
常見的H2Miner、KernelMiner、AutoUpdata挖礦木馬等家族都使用了該技術。
除了so外,載入惡意核心模組.ko檔案(kernel object檔案)也是Linux下的一種rootkit手法,直接使用insmod或modprobe命令即可載入;在排查過程中,可以使用lsmod命令來檢視已經載入的核心模組列表,使用rmmod命令可以進行核心模組解除安裝:
(某惡意ko檔案截圖)
bash啟動項
~/.bash_profile檔案預設情況下是記錄了使用者自己專用的shell資訊,包括一些環境變數、需要執行的.bashrc檔案等,該檔案在系統啟動時生效,某些挖礦木馬會將自身程式啟動寫入該檔案中,以實現自啟動,例如StartMiner在變種中就新增了該啟動項:
cp -f -r -- /bin/bprofr /bin/dbused 2>/dev/null && /bin/dbused -c >/dev/null 2>&1 && rm -rf -- /bin/dbused 2>/dev/null
功能多樣化
通訊方式
除了基本的傳播和駐留之外,Linux挖礦還常常使用一些心機操作,比如DDG挖礦木馬,早期使用了Memberlist開源P2P通訊方式,後來變更為自研的P2P通訊方式;
再例如SystemdMiner挖礦木馬,除了指令碼中以拼接的形式組成訪問的惡意域名外,還使用了socket5的方式用relay.tor2socks.in代理訪問C&C域名,relay.tor2socks.in是一個類似中轉網站的域名,這樣,C&C域名trumpzwlvlyrvlss.onion就不會直接出現在資料包頭:
安防對抗
安防對抗是大部分惡意程式都具有的功能,而Linux下的惡意程式主要對抗的是雲伺服器上常見的安防產品,例如阿里雲盾、安騎士、雲鏡等,通常透過結束該產品的相關程式甚至包括更新程式來進行對抗:
上圖為SystemdMiner的安防對抗模組,可以看出,該模組目前還較為混亂,除了安全軟體的程式外,還加入了很多其他挖礦家族的相關程式。
清理競品
安全人員在分析過程中發現,Linux下的挖礦木馬除了會對抗一些安防產品,還會清理其他家族的挖礦木馬,例如SystemdMiner會透過改寫hosts檔案,使得其他家族的挖礦木馬無法訪問對應的域名,還會刪除一些常見挖礦家族的程式和檔案:
而有趣的是,被清理的家族也會想盡辦法讓競品幹不掉自己,比如被DDG挖礦木馬列入清理名單的RainbowMiner,則採用了上文提到的多種駐留手段來躲避DDG的黑手。
多平臺感染
一些初具規模的挖礦木馬家族開始不滿足於單一平臺的傳播和感染,發展起了多平臺挖礦,例如,2018年被安全人員發現的PowerGhost挖礦木馬,起初只是在Windows下利用永恆之藍漏洞和poweshell無檔案攻擊的方式進行傳播和挖礦,深信服終端安全團隊於2019年發現其用於感染Linux平臺的SSH暴力破解模組和MSSQL暴力破解模組:
(PowerGhost感染全流程)
再如近期透過信服雲捕獲的AutoUpdate挖礦木馬,在其配置檔案中發現該木馬支援雙平臺挖礦:
與大部分惡意程式一樣,Linux挖礦木馬的技術變化也是由簡至繁,由點及面。在近幾年的挖礦木馬事件處理中,安全研究人員發現,雲主機感染挖礦程式的案例逐漸增多。由於使用者業務逐漸雲化,雲上安全風險也隨之而來;雲主機大多采用預設的登入埠和登入口令,業務應用沒有及時更新存在可被利用的漏洞,且能被公網直接訪問,存在較大的安全隱患。
小結
無論是雲主機還是物理主機,都需要從端到網的全面進行安全防護,深信服終端安全團隊提醒廣大使用者,謹記以下防護tips,與挖礦木馬“Say No”:
密碼弱,被爆破,免密登入太脆弱;
勤升級,打補丁,漏洞利用不擔心;
裝防毒,定時掃,流量監控少不了;
管理員,勿輕心,安全意識最重要!