日前,国家计算机病毒应急处理中心通过对互联网的监测,发现挖矿恶意软件LemonDuck出现新变种,该变种新增Weblogic漏洞(CVE-2020-14882)利用模块。研究人员推测该恶意软件下一步很可能会完善Windows、Mac和Linux三个平台的挖矿功能,进而组建三平台交叉感染的僵尸网络。
本文从一个真实的案例进行分析,让我们一起看看攻击者是如何利用WebLogic远程代码执行漏洞(CVE-2020–14882)获得系统执行权限从而安装挖矿程序(XMRig)进行恶意挖矿的。
01事件介绍
在这次攻击中,攻击者从利用漏洞到实现恶意挖矿只花了大概2分钟。从攻击的速度看来,本次攻击很可能是自动攻击。
攻击者通过向WebLogic服务器发出请求,利用CVE-2020-14882漏洞进行攻击,从而允许攻击者执行代码,运行PowerShell命令从远程服务器下载PowerShell脚本。利用这个脚本下载了一个加载程序并执行了它,然后对程序进行“持久化设置”。接下来,下载XMRig(挖矿程序),开始进行恶意挖矿。
CVE-2020-14882是一个被利用比较频繁的漏洞了,在2020年10月份被发现,攻击者可以远程利用该漏洞通过发送恶意的HTTP GET 请求。成功利用此漏洞的攻击者可在未经身份验证的情况下控制 WebLogic 服务器的控制口,并执行任意代码。
“聚铭网络流量智能分析审计系统”支持对CVE-2020-14882的检测
02攻击者的初次试探
从受害者的流量包中,我们可以清楚地看到,攻击者正在利用存在漏洞的接口(/console/images/%252E%252E%252Fconsole.portal)对页面进行探测,发送特制的URL请求。
从流量包中可以看到利用漏洞发送的payload,从远程服务器194.145.227.21加载了一个xml文件。
漏洞探测pcap包
下图我们可以看到托管在攻击者服务器中的xml文件中的有效负载。从负载中看出将在被攻击的系统上执行PowerShell命令,加载194.145.227.21服务器上的idr.ps1脚本。
xml文件内容
IP威胁情报
03开始执行程序
黑客利用WebLogic漏洞从服务器的Java进程派生一个shell命令,然后使用该shell下载和运行PowerShell脚本。
shell命令
现在我们来研究一下PowerShell脚本(ldr.ps1) :
ldr脚本1
在第一行中,我们可以看到var$cc,它表示服务器将从中获取所有其他组件,如有效负载 sys.exe文件。 下一行设置要附加到有效负载可执行文件的随机字符。
此二进制文件(重命名为 sysvr013.exe)然后由同一个脚本执行。
ldr脚本2
04持久化
我们观察到了用到两种持久性机制,保证在系统重启的时候能维持程序的运行。
利用了schtasks创建一个名为“BrowserUpdate”的任务。
schtasks.exe是安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。
schtasks /create /F /sc minute /mo 1 /tn "BrowserUpdate" /tr "$dst"
创建注册表运行键,以便在重新启动时执行挖矿的二进制文件。
reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Run /d "$dst" /t REG_SZ /f
05避开防御机制
从上面的PowerShell脚本(ldr.ps1)中,我们可以看到程序文件名是随机生成的,以避免被一些静态检测工具查到。
我们还可以看到,攻击者利用命令的权限禁用了防火墙规则,以确保与挖掘池的连接不被阻止。
netsh advfirewall set allprofiles state off
在持久化的第一步,攻击者创建了一个名为“BrowserUpdate”的任务,将计划的任务伪装成Web浏览器更新任务。
06发现更多信息
从PS脚本中还能发现,该脚本还包括了查询主机上有无其他常见的挖矿进程,如 Kthreadi, sysrv等。还利用了netstat查找是否有和挖矿程序相关的端口,如3333、4444等。
这么做的目的是为了杀死其他占用计算资源的挖矿程序,防止同一主机上运行了多个挖矿程序。
发现信息
07造成影响
我们能观察到主机加载了恶意进程后,[kthreaddi].exe与加密矿池的连接。如此Weblogic服务器的性能会大大受到影响(因为挖矿程序会占用大量的CPU资源)。
连接加密矿池
域名威胁情报
08MITRE 攻击链分析
利用面向公众的应用程序 – T1190
命令和脚本解释器: PowerShell – T1059.001
命令和脚本解释器: Windows Command Shell – T1059.003
计划任务/工作: 计划任务 – T1053.005
启动或登录 自动启动 执行:注册表运行值/启动文件夹 – T1547.001
削弱防御:禁用或修改系统防火墙 – T1562.004
伪装:伪装任务或服务 – T1036.004
发现进程 – T1057
发现系统网络连接 – T1049
转移入侵工具 – T1105
应用层协议:Web协议 – T1071.001
劫持资源 – T1496
09处置方法
从本案例中可以看出,归根结底,主要的安全问题就是管理人员未及时修复漏洞才给攻击者有了可乘之机,所以应及时安装对应版本的漏洞补丁包,同时关闭不用的端口号,定时对主机进行木马病毒查杀,应结束资源异常占用的进程。需要强调的是主机上存在恶意挖矿程序通常有两个明显特征,其一是主机资源被异常占用,其二是主机会主动访问矿池域名。