概述
近日,深信服威脅情報團隊在雲蜜罐中捕獲到Sysrv-hello挖礦家族的最新變種,作者於7月10日和7月21日進行了多次更新,該病毒家族的攻擊模組達到了18個,在本次更新中,新增了SSH爆破、PostgreSQL RCE(CVE-2019-9193)和Struts2 RCE(CVE-2017-5638)攻擊模組,進一步擴大了影響範圍和危害,目前監測到失陷主機數量正呈上升趨勢。
Sysrv-hello家族最早出現於2020年12月份,至今其版本迭代已數十次,不斷的新增攻擊模組,是一個新型且十分活躍的家族。在最新的威脅情報分析中,我們發現了其最新發展之一,包括前置Payload去除了解除安裝雲主機安全軟體的模組以及新的自建錢包地址,並且其入侵手法基本覆蓋到大多數政企單位常用的Web服務,危害嚴重,深信服威脅情報團隊提醒相關運維人員及時更新補丁做好防護。
本次關鍵更新
1. 前置Payload去除了之前新增的解除安裝雲主機安全軟體模組和a.py和BrowserUpdat.exe模組;(疑似版本回溯)
2. 刪除部分漏洞利用模組,並新添SSH爆破、PostgreSQL RCE(CVE-2019-9193)和Struts2 RCE(CVE-2017-5638)攻擊模組,目前該版本共有18種攻擊模組,並且仍在不斷迭代更有效的橫向攻擊模組;
3. 更換礦機地址為自己的C2伺服器,疑似使用自建礦池。
病毒攻擊流程
攻擊活動
透過深信服雲端資料分析,發現該病毒近期擴散十分迅速,短期內有大量主機中招。如下圖Sysrv-hello病毒近期的感染量,可以看到病毒在7月2-7日進行了大規模入侵活動:
樣本關聯
透過威脅情報圖資料庫進行樣本關聯,發現大量的同家族威脅樣本,該病毒的特徵屬於更新快、持續迭代演進的病毒家族:
病毒樣本分析
Sysrv-hello攻擊目標同時覆蓋Windows和Linux作業系統,針對兩平臺除前置Payload不同外,其他模組基本一致。其中主體程式sys可執行檔案(橫向傳播模組)是由Golang編寫的,因此具備跨平臺性;礦機使用的是開源XMRig礦機。下面將分別介紹Windows和Linux的前置Payload以及主體程式sys。
Windows版本
入侵Windows系統成功後,植入名為ldr.ps1的PowerShell指令碼來執行惡意命令。ldr.ps1指令碼主要功能為:
1. 關閉防火牆並結束自身老版本病毒的程式;
2. 透過監測其他挖礦家族常用埠來清除競品挖礦程式;
3. 從C2:http[:]//194.145.227.21/sys.exe下載並執行主體程式sys.exe,並透過建立計劃任務和寫登錄檔來實現本地持久化。
Linux版本
入侵Linux系統成功後,植入名為ldr.sh的Shell指令碼來執行惡意命令。ldr.sh指令碼功能大致與Windows下的ldr.ps1大同小異,但功能更為完善。如:
1. 關閉防火牆並結束自身老版本病毒的程式;
2. 透過監測其他挖礦家族常用埠來清除競品挖礦程式;
3. 從C2:http[:]//194.145.227.21/sys.x86_64下載並執行主體程式。
除此之外ldr.sh,還會讀取/、/root和/home目錄下的SSH私鑰及配置檔案,並結合獲取到的SSH金鑰進行爆破。當爆破成功後,便在新的受害主機上下載並執行ldr.sh指令碼,程式碼如圖:
主體sys程式(橫向傳播模組)
由於主體sys程式是由Golang編寫的,因此不同平臺前置Payload下載的sys.exeh和sys.x86_64其程式碼和功能差距不大,因此本文將以Windows版本進行介紹。
透過指令碼還原Go語言的函式和字串之後,能定位出作者的編譯路徑和作者的使用者名稱為K:
建立埠互斥體
根據受害主機名生成隨機埠,並將該隨機埠作為互斥體,當檢測到該埠已處於監聽狀態便退出程式,來確保唯一程式執行。
橫向傳播
本次捕獲到的Sysrv-hello一共包含18個橫向攻擊模組,根據隨機生成的IP進行埠掃描,判斷目標開放的服務,來確認使用的攻擊方式。18種橫向攻擊方式如下表:
埠 | 漏洞 |
---|
9999 | XXL-JOB executor 未授權訪問漏洞 |
8888 | Jupyter未授權訪問漏洞 |
80 | Laravel Debug mode RCE(CVE_2021_3129) |
80/8080 | Tomcat 弱口令爆破 |
80/8080 | Jenkins RCE(CVE-2018-1000861) |
8081 | Nexus Repository Manager 3 RCE(CVE-2019-7238) |
7001 | WebLogic RCE CVE-2020-14882 |
6379 | Redis弱口令爆破 |
9001 | Supervisord遠端命令執行漏洞(CVE-2017-11610) |
80 | JBoss反序列化漏洞(CVE-2017-12149) |
80 | ThinkPHP5 RCE |
5432 | PostgreSQL RCE(CVE-2019-9193) |
8090 | Confluence RCE(CVE-2019-3396) |
22 | SSH 爆破 |
80 | Struts2-s2-045 RCE (CVE-2017-5638) |
80 | phpunit RCE(CVE-2017-9841) |
8088 | Hadoop YARN REST API未授權漏洞利用 |
80 | Wordpress-XMLRPC暴力破解 |
注:其中 加粗 的為本次版本新增的橫向攻擊模組。
新增橫向攻擊模組
新增PostgreSQL RCE(CVE-2019-9193)漏洞利用模組,如圖:
新增struts2-s2-045 RCE(CVE-2017-5638)漏洞利用模組:
新增SSH爆破:
歷史漏洞利用模組
XL-JOB executor 未授權訪問漏洞利用模組:
Jupyter未授權訪問漏洞利用模組:
Laravel Debug mode RCE(CVE_2021_3129)漏洞利用模組:
Tomcat 弱口令爆破模組:
Jenkins RCE CVE-2018-1000861漏洞利用模組:
Nexus Repository Manager 3 RCE(CVE-2019-7238)漏洞利用模組:
WebLogic RCE (CVE-2020-14882)漏洞利用模組:
Redis未授權寫漏洞利用模組:
Supervisord遠端命令執行漏洞(CVE-2017-11610)利用模組:
JBoss反序列化漏洞(CVE-2017-12149)利用模組:
ThinkPHP5 RCE漏洞利用模組:
PostgreSQL RCE(CVE-2019-9193)漏洞利用模組:
Confluence RCE(CVE-2019-3396)漏洞利用模組:
Payload:
Phpunit RCE(CVE-2017-9841)漏洞利用模組:
Hadoop YARN REST API未授權漏洞利用:
WordPress暴力破解:
XMRig挖礦
最後,樣本會建立守護執行緒(go routine)來守護礦機程式和檔案,先將XMRig挖礦程式釋放到臨時目錄下,並重新命名為kthreaddi,然後釋放配置檔案,當挖礦程式執行起來,便會將配置檔案刪除。
礦池地址為:194.145.227.21:5443,礦池與C2地址一致,並且本地配置和抓包都沒有看到錢包地址,因此推測此版本使用的是病毒作者自建的礦池,詳細配置如圖:
抓取的XMRig登陸資訊的流量包,如圖:
IOC
MD5
DA63A2F797B27F31745CFB8F94479BF4(sys.x86_64)
D51BA1FEE712AAC5A3A17129782115AF(sys.exe)
C67607C0927154A4D2EFD79AD502CC7D(ldr.ps1)
46C7302FE138E6A877755A3B5203303A(ldr.sh)
A7013A2C7FD3A6168A7C0D9EED825C32(kthreaddk.exe)
IP
194[.]145.227.21
URL
http[:]//194.145.227.21/ldr.ps1
http[:]//194.145.227.21/ldr.sh
http[:]//194.145.227.21/sys.exe
http[:]//194.145.227.21/sys.x86_64