對Rudeminer,Blacksquid和Lucifer的比較研究
Lucifer是針對Windows挖礦和DDOS的混合型惡意軟件,研究人員在今年6月份發表了一份報告,詳細介紹了其攻擊活動,最近又有新的證據表明這個攻擊是從2018年開始的。
它最初是一個以Windows系統為目標的具有自我傳播能力的挖礦軟件,現在已經發展成為一個多平臺、多架構的惡意軟件,目標是Linux和物聯網設備。
從ThreatCloud收集的數據顯示,美國、愛爾蘭、荷蘭、土耳其和印度的25多個組織最近受到打擊。攻擊來自多個領域,包括制造業、法律、保險以及銀行業。
當前物聯網設備的主要攻擊媒介是通過利用稱為CVE-2018-10561的漏洞,該漏洞針對未打補丁的Dasan GPON路由器設備。
該惡意軟件具有多種功能:多種類型的DDOS攻擊,能夠下載和執行文件的完整命令和控制操作、遠程命令執行、使用Xmrig挖掘軟件進行門羅幣挖掘以及通過各種利用技術在Windows系統中自我傳播。
攻擊活動介紹
攻擊源自受到被攻擊者破壞的服務器,圖1顯示感染鏈是多平臺的,并且針對Windows,Linux和物聯網設備。然后,受感染的Windows計算機繼續將惡意軟件傳播到網絡內部和遠程目標。
更新的感染鏈
惡意軟件中顯示了一個有趣的字符串序列:
在最近的Windows,Linux,ARM和MIPS示例中找到的字符串
對這些字符串的進一步研究使我們進行了兩個活動,一個被趨勢科技發現,他們稱之為BlackSquid,另一個被騰訊發現,稱為Rudeminer / Spreadminer。
還可以通過追蹤金融記錄(在我們的案例中為所使用的XMR錢包)將這兩個活動與Lucifer活動相關聯。
通過使用的XMR錢包追蹤到了三個攻擊活動
當我們探索使用圖3中第一個錢包的Blacksquid樣本時,我們發現了兩個幾乎相同的樣本(樣本1和樣本2)。
這兩個樣本的互斥模式都相同:
- BlacksquidXMRstratum+tcp://[Miner pool address]:[port]
第一個樣本使用圖3中的第一個錢包,第二個樣本使用第2個錢包。
第二個錢包還用于其他各種Lucifer樣本(樣本3),從而使我們能夠關聯兩個惡意軟件。將Blacksquid攻擊系列與Spreadminer關聯起來比較研究確實比較復雜,因為騰訊(示例1)中提供的示例使用了沒有XMR錢包的自定義XMR挖礦池。
但是,我們能夠找到一個幾乎相同的樣本(樣本2),其中使用的是第1個錢包。
Blacksquid活動中使用的XMR錢包提供了2018年底的樣本,這表明攻擊者開始行動的時間甚至更早。
根據這些發現,我們創建了以下時間表:
這個活動中變種出現的時間線
在該惡意軟件的Linux變體中可以找到另一個有趣的字符串:
在Linux版本的惡意軟件中使用的字符串
我們認為該字符串是對騰訊發布的名為“Rude”惡意軟件的回應。
這些發現表明,此活動背后的攻擊者已經活躍了一年半多,并且該惡意軟件一直在發展和升級其代碼庫。
從公開的數據來看,我們估計Lucifer攻擊給攻擊者帶來了18.643456520496 XMR,大約是1769美元。
由于舊的XMR錢包現已被封鎖,因此無法知道Blacksquid和Spreadminer攻擊家族賺了多少錢。 DDOS功能的增加表明攻擊者正在尋求擴大惡意軟件的賺錢方法。
Windows的自我傳播功能是基于過時的和公開可用的漏洞利用以及暴力攻擊。隨著時間的推移,Windows自身功能只發生了微小的變化,這可能表明攻擊者已經成功地使用了這些方法。
新活動的第一批樣本于2020年2月被上傳到VirusTotal網站,之后的幾個月里又上傳了一些樣本,新的樣本仍在檢測中。
迄今為止,第一個也是唯一的ARM示例已于5月10日上傳到VirusTotal。
VirusTotal中的ARM示例列表
目前尚未確定此樣本是否是惡意的,ARM示例僅具有DDOS功能,并且與Linux示例具有不同的行為,這可能是由于物聯網設備引起的限制。
C2服務器具有可公開訪問的HFS服務器,可讓我們目睹攻擊的演變:
最新的二進制樣本已上傳到C2 HFS公共服務器
正如你所看到的,活動在不斷發展并發布新版本。上傳的“office.exe”,“sb360..exe”可執行文件是gh0st RAT的變體,這表明攻擊者想要擴展受感染計算機中的惡意軟件功能。
沒有刪除Linux,ARM,MIPS版本的調試符號,這使我們能夠將所有平臺的新版本的代碼庫關聯到2009年以來的中文DDoS程序,該程序稱為“Storm Attack Tool VIP 2009”,人們可以在各種開放源代碼的中文網站上找到這個程序的下載版本。
Storm攻擊工具面板的圖像
所有最新版本的DDoS攻擊都來自該軟件,惡意軟件的其余部分被嚴重修改為其他功能,例如完整的C&C操作,門羅幣挖礦,Windows系統中的自我傳播以及Linux和物聯網設備的端口。
在本文的其余部分,我們將深入研究Linux,ARM和MIPS示例。
Linux x86 / x64
Linux版本與Windows版本的不同之處在于,它不具有自我擴展功能。此外,Linux樣本未刪除調試信息。
成功利用后,惡意軟件使用daemon命令將自身與終端分離,并在后臺作為守護程序運行。
惡意軟件會檢查是否能夠設置用于綁定到端口,端口號取決于版本,最新版本使用端口20580。如果惡意軟件無法設置套接字或綁定到套接字,則退出。綁定之后,沒有調用listen函數來實際開始監聽該端口。
套接字的目的不是通訊而是強制執行以下行為:一次只能運行一個進程的惡意軟件,因為不能有多個套接字使用同一端口。
該惡意軟件為以下信號設置了三個信號處理程序函數:
- SIGPIPE:對被攻擊的管道執行寫入操作;
- SIGTERM:請求終止程序;
- SIGINT:請求程序正常關閉;
惡意軟件執行以下命令:
- /sbin/service crond start;chkconfig –level 35 crond on;
命令的第一部分啟動crond服務,第二部分將crond服務設置為在以下運行級別上運行:
- 多用戶模式,僅控制臺登錄。
- 多用戶模式,具有顯示管理器和控制臺登錄名(X11)。
chkconfig命令失敗,因為它在-level 35之前缺少另一個連字符。
這兩個命令僅適用于基于CentOS / RHEL的發行版。
惡意軟件的下一個目標是增加文件描述符限制,UNIX的定義功能之一是“一切都是文件”,套接字也是如此。
當惡意軟件發起DDoS攻擊時,它需要打開盡可能多的套接字,以將盡可能多的流量發送到目標。
這可以通過在OS設置中增加文件描述符限制來實現,為了更改文件描述符限制,惡意軟件首先檢查User ID。當程序以root用戶身份運行時,其用戶ID為零。如果惡意軟件以用戶ID為0 (root)運行,則:
執行命令:
- ulimit -HSn 65536;
在文件/etc/sysctl.conf中添加“fs.file-max到6553560”行;
將這些行添加到file /etc/security/limits.conf中:
- soft noproc 65535
- hard noproc 65535
- soft nofile 65535
- hard nofile 65535
如果它沒有以用戶ID零運行,它將按以下順序發出兩個命令:
- ulimit -HSn 4096
- ulimit -HSn 10240
惡意軟件首先以較小的限制然后以更大的限制運行這兩個命令,如果增加失敗,則較小的限制就是備用選項。
惡意軟件的持久性只發生在用戶ID為0時:
- 如果file /etc/rc.local存在,則惡意軟件會在該文件中寫入或附加以下行:
- MALWARE_PATH start
- */1 * * * * MALWARE_PATH
在所有正常的系統服務啟動之后,將執行/etc/rc.local腳本。添加到crontab中的這行代碼會導致Linux每分鐘都在執行這個惡意軟件。
惡意軟件配置其持久性后,它將解密以下五個字符串:
- C&C地址:qf2020[.]top;
- Xmr挖礦程序的參數列表:-o stratum+tcp://pool.supportxmr.com:3333 -u 4AfAd5hsdMWbuNyGbFJVZjcMLeKHvrXnT155DWh8qGkYRPbVGKBT9q1Z5gcFXqmwUuh2Kh6t2sTnHXPysYrGf2m9KqBwz9e -p X;
- Xmr挖礦程序的參數列表:-o stratum+tcp://gulf.moneroocean.stream:10001 -u 4AfAd5hsdMWbuNyGbFJVZjcMLeKHvrXnT155DWh8qGkYRPbVGKBT9q1Z5gcFXqmwUuh2Kh6t2sTnHXPysYrGf2m9KqBwz9e -p X -a cn/r;
- Xmr挖礦程序的位置:/ tmp / spreadtop;
- Xmr挖礦程序的網址:122[.]112[.]179[.]189:50208/X64;
初始化之后,惡意軟件通過啟動以下五個線程來啟動主要邏輯:
- 挖掘線程:它首先下載挖礦程序并將其保存到/tmp/spread中。這使它能夠確保挖掘程序正在運行,并在需要時停止或重新啟動挖掘過程。
- 進程阻止線程;
線程嘗試查找和阻止以以下字符串之一開頭的進程:
- Linux-;
- 25000;
- Linux2.6;
- Linux2.7;
- LinuxTF;
- 挖礦程序;
- 獲取網絡使用線程;
- 獲取CPU使用線程;
- 將挖掘,CPU使用情況和網絡使用情況報告發送到C&C服務器;
報告消息示例
在線程設置好之后,惡意軟件開始一個無限循環,并保持與C&C的恒定連接。
C&C命令模式:
Linux ARM / MIPS
ARM / MIPS版本是Linux的較簡單版本,它們僅包含DDoS功能。
初始化與Linux版本中的初始化幾乎相同,他們使用守護程序進行分離,并使用套接字綁定方法來確保只有一個正在運行的進程。
該惡意軟件僅為SIGPIPE設置信號處理程序,如果它以root身份運行,則它將文件描述符限制增加到20480,并將其路徑寫入/etc/rc.local文件以實現持久性。
如果不是以超級用戶身份運行,它將文件描述符限制增加到4096。然后,惡意軟件解密C&C地址:tyz2020[.]top。初始化后,惡意軟件通過啟動以下一個線程來啟動主要邏輯:看門狗通信線程;
首先檢查以下設備是否存在:/dev/watchdog或/dev/misc/watchdog.
如果其中一個存在,則使用ioctl WDIOC_SETTIMEOUT將看門狗超時時間增加到15秒。然后線程開始一個無限循環,每10秒將ioctl WDIOC_KEEPALIVE發送給Watchdog。
看門狗的作用是確保系統穩定。
在系統問題的情況下,用戶空間Watchdog停止寫入Watchdog設備,而內核Watchdog重新啟動設備。
通過使用此線程,惡意軟件可確保監視設備始終將數據寫入監視程序設備。這樣可以防止設備重啟。
如前所述,在建立線程之后,惡意軟件會啟動無限循環并保持與C&C的恒定連接。
C&C命令模式:
- 模式4對目標發起DDOS攻擊;
- 模式5停止當前的DDOS攻擊或重新啟用以后的攻擊;
總結
正如我們在本文中所介紹的那樣,該活動正在不斷發展以跨平臺,并增加了獲取利潤和傳播自身的新方法。即使攻擊者使用已知的攻擊來感染計算機和自我傳播,也并非總是對所有系統進行更新。當組織的密碼策略薄弱時,暴力破解可能會有效。
在撰寫本文時,這些是攻擊者在所有體系結構和平臺上使用的功能:
我們相信該攻擊活動將繼續發展,包括修改Windows中當前的自擴展方法和功能,并將其添加到Linux,ARM和MIPS版本中。
本文翻譯自:https://research.checkpoint.com/2020/rudeminer-blacksquid-and-lucifer-walk-into-a-bar/