首页
社区
课程
招聘
[翻译]watchbog挖矿活动打好补丁的重要性
2019-11-8 17:27 5844

[翻译]watchbog挖矿活动打好补丁的重要性

2019-11-8 17:27
5844

来源:https://blog.talosintelligence.com/2019/09/watchbog-patching.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+feedburner%2FTalos+%28Talos+Blog%29

 

翻译: 看雪翻译小组 - lipss

 

校对: 看雪翻译小组 - Nxe


发生了什么?

思科事件响应 (CSIRS) 最近对涉及 Watchbog 加密货币挖矿僵尸网络的事件做出了响应。攻击者能够利用CVE-2018-1000861在系统驻留,并将 Watchbog 恶意软件安装在受影响的系统上。

 

这种基于 Linux 的恶意软件在很大程度上依赖 Pastebin 进行命令和控制(C2)并公开运作。CSIRS 通过分析各种 Pastebins,精确地理解了攻击者在客户网络上的意图和能力。随着调查的进行,CSIRS 利用受感染主机上的文件识别并去混淆了多个脚本。

 

攻击者进行了一些混淆处理,例如对 URL 和 Pastebins 进行 base64 编码,但是代码相对比较容易发现 。并未采用很强的恶意代码保护功能

 

Watchbog 背后的攻击者声称,他们是通过识别安全漏洞提供服务的,并在任何“真正的”黑客利用这些漏洞前先帮助这些有漏洞的公司做安全检测。在调查过程中,思科 IR 发现在 Watchbog 活动期间,主机已经有成为僵尸网络一部分的迹象。这不禁让人怀疑所谓“积极”识别安全漏洞的真正意图。以下是攻击者在受感染系统上留下的信息:

 


图1

Watchbog 做了什么?

攻击者在利用Watchbog 僵尸网络挖掘门罗币(Monero)。研究Watchbog 僵尸网络变体时,思科安全研究员发现了一篇阿里云安全部门发表的文章,文章提供了一些有关 Watchbog 的定性。这篇文章与思科安全研究员的发现相吻合,因为思科安全研究员发现了恶意代码代码安装执行脚本具有以下操作行为。

 

首先,安装执行脚本会检查受害者主机上有没有正在运行着其他加密货币挖矿程序的进程。如果系统先前已经有挖掘加密货币的进程,安装脚本就会使用 kill 命令结束掉竞争对手的进程:

 

 

图2

 

然后脚本使用 touch 命令来确定文件系统上个别目录的写权限。

 

 

图3

 

还会检查系统的架构来判断32 位还是 64 位的操作系统,然后使用 wget 或 curl 下载并安装 “kerberods” 释放器,下载失败会重试3次。

 

 

图4

 

根据权限,将 kerberods 释放器保存到以下目录之一:

/usr/bin
/usr/libexec
/usr/local/bin
/tmp
/usr/sbin

该脚本还会下载一个 Pastebin 链接的内容,其中包含门罗币钱包 ID 和挖矿信息。CSIRS 证实了这个钱包 ID 与先前引用的阿里云帖子中的攻击者所使用的钱包ID相同。

 

 

图5

 

尽管上一个屏幕快照中的 Pastebin 链接无法再访问,感染过程的下一步是下载加密货币挖矿程序。我们发现了一个“kerberods” 可能会访问 Github 用于安装XMR-Stak 门罗币挖矿程序的脚本。

 

该脚本主要部分是判断自己是不是root权限,然后检查主机上"watchdog"进程有没有运行。运行cronhigh函数,通过各种方式各种时间拉起自己。

 

 

图6

 

如果未检测到 “watchbog” 进程,则将调用 “testa” 或 “download” 函数安装与主机操作系统和体系结构兼容版本的挖矿程序,然后执行程序开始挖矿。

 

 

图7

“Testa” 函数

如前所述,可以调用 “testa” 函数完成感染过程。以下是与此函数关联的代码。该代码负责编写挖矿软件使用的各种配置数据。该函数声明三个变量,并将 base64 编码的数据分配给每个变量。

 

 

图8

 

然后对 base64 编码的数据进行解码并将其写入各种文件。

 

 

图9

 

Base64编码的值对应于以下内容:

  • St_64:此变量包含托管 XMR-Stak 挖矿客户端的 Github 仓库URL。

  • hXXps://github[.]com/fireice-uk/xmr-stak/releases/download/2.10.3/xmr-stak-linux-2.10.3-cpu.tar.xz

 

  • con_url:此变量包含Pastebin URL用于承载挖矿客户端的配置文件。
  • hXXps://pastebin[.]com/raw/YJH8sWr

 

  • Cpu_url:此变量包含一个额外的Pastebin URL。已经无法访问,可能包含挖矿客户端使用的其他配置文件。
  • hXXps://pastebin[.]com/raw/irzk5mSh
  • poo_url:此变量包含一个附加的Pastebin URL。已经无法访问,可能包含挖矿客户端使用的其他配置文件。
  • hXXps://pastebin[.]com/raw/aJkbTx6Y

然后该脚本将启动 Watchbog 进程,并从Pastebins下载编码的文件授予执行权限后运行,然后删除了这个文本文件。以下屏幕快照显示了 'testa' 函数中 con_url 变量引用的配置文件。

 

 

图10

“download” 函数

以下代码与前面描述的安装脚本引用的 “download” 函数关联。与 “testa” 函数中描述的类似,它包含三个声明的变量,变量中是 base64 编码的数据。

 

 

图11

 

这些base64编码的字符串对应于以下内容:

  • mi_64:此变量包含托管 XMrig 门罗币挖矿客户端的 Github URL。

  • hXXps://github[.]com/xmrig/xmrig/releases/download/v2.14.1/xmrig-2.14.1-xenial-x64.tar.gz

  • mi_32:此变量包含 Pixeldrain URL。URL已经不可访问。

  • hXXps://pixeldrain[.]com/api/file/ZuVWceWG

  • der_ke:此变量包含一个 Pastebin URL。用于托管一个包含攻击者的门罗币钱包 ID 文件,供挖矿程序使用。钱包 ID 用于方便向攻击者付款。在攻击者控制下,客户端成功挖到的所有门罗币都会转移到该文件中指定的门罗币钱包 ID 地址。前面提到的阿里云帖子里包含了相同的钱包ID。

  • hXXps://pastebin[.]com/raw/hURdMBLd

    download 函数会将从指定的 URL 获取到的内容写入指定路径的文件里。目的是根据系统体系结构安装兼容的挖矿客户端执行后开始挖矿。

图12

 

以下屏幕快照包含与前面所述的 “download” 函数中的 der_ke 变量相关的门罗币钱包配置的内容。指定挖矿客户端将使用的配置参数,包括钱包 ID ,矿池 URL 以及可用于控制 CPU 使用率,日志记录等其他参数。

 

 

图13

通过 SSH 横向渗透

CSIRS 确认这个挖矿程序正在利用 SSH 进行横向渗透。尽管本地日志不可用,但思科安全研究员能够使用网络层的日志来查看恶意软件的传播方式。查看日志时很容易确定 Watchbog 的横向渗透机制,因为使用内部流量监控可以很容易地检测到生成了大量的 SSH 流量。

 

以下 Bash 脚本用于简化横向渗透过程。在受感染的系统上检索 known_hosts 文件的内容,尝试通过 SSH 进入这些系统。并且还会检查 SSH 密钥是否存在,并利用密钥对 known_hosts 文件中的系统进行身份验证。如果成功,将获取先前描述过的 Pastebin URL 内容并启动感染过程。

 

 

图14

通过JENKINS和REDIS服务器进行横向渗透

除了利用 SSH 进行横向渗透外,Watchbog 还试图利用 Python 脚本来扫描主机子网上开放的 Jenkins 和 Redis 端口。如果脚本找到可以攻击的服务器,将尝试使用 curl 或 wget 命令从 Pastebin 中获取有效负载并在目标上执行。

 

该脚本基于以下第71行上的字符串,目标为 CVE-2018-1000861,这是 Staple Web 框架中的漏洞,适用于处理HTTP请求的 Jenkins 2.138.1或2.145以下的版本。可以通过特制的 URL 为攻击者提供 RCE。Orange Tsai 的帖子显示了如何通过使用交叉引用对象绕过ACL策略来利用此漏洞。

 

 

图15

 

尽管脚本中访问的 Pastebin 保存的代码不再可用,但推测有效Payload是先前描述的 XMR-Stak 挖矿程序安装脚本。下面的 Python 脚本也从上述的 XMR-Stak 挖矿程序脚本中下载并执行,该函数名为 “party”。

 

 

图16

 

从上面可以看出,有效Payload变量包含 base64 编码的二进制数据,然后将其解码并写入 /tmp 目录后执行。此 base64 编码的二进制数据包含一个 Pastebin URL(hXXps://pastebin[.]com/raw/DzgYb9mu),用于托管以下 Python 脚本。Python 脚本用于帮助上述漏洞的利用并启动感染过程。

 

以下截图是利用Jenkins漏洞横向传播的Python 脚本

 

 

图17

 

 

图18

 

 

图19

持久化

Watchbog 主要持久性机制似乎一直在使用 /etc/crontab 实现的。以下是 “kerberods” 安装脚本中的 “system” 函数,该函数会让释放器每小时都访问 Pastebins 获得新信息。下面的截图是说明 Watchbog 配置 cron以实现被感染系统持久化控制的方式。

 

 

图20

 

在 Morphus Labs 的 Renato Marinho 写的帖子中,他提到了 “kerberods” 有另一种方式来实现持久化。如果具有 root 特权,将下载一个库并将其加载到操作系统中,钩住(Hook)Glibc 的某些部分修改 Glibc 的行为。这些钩子使挖矿程序可以用任何(包括root)身份运行,并且混淆了与矿池网络连接以及 Redis / Jenkins 服务器扫描的部分。

掩盖踪迹

在以前的 Watchbog 变体中会自动删除证据。我们事件中的 Watchbog 变种延续了这一趋势,变种的Watchbog 以明显的方式实现证据删除 - 删除或覆盖文件和日志。证据删除通常添加到少数 Pastebin 脚本的末尾,Xmr-stak 下载和 SSH 横向渗透脚本是主要例子。这些关键证据的丢失使分析变得困难,但也不是绝对。我们能够依靠用户端集中日志记录来填补这些漏洞,而且主机本身仍然有证据。最明显的是恶意软件变体本身。

结论

容易受到已知 CVE 攻击的 Web 应用程序是攻击者的主要目标。攻击者可以利用漏洞在 Web 服务器和部署 Web 服务器的网络环境中种马。一旦种马成功,攻击者就可以连接到 C2,实现持久化访问并横向渗透。

 

防止挖矿活动最好的方法是确保所有企业 Web 应用程序都是最新的。补丁程序可能会导致业务操作上的问题和延迟,所以维护和测试环境要确保新补丁程序不会引起任何问题也很重要。

 

遵循安全基础知识,可以有效地识别挖矿活动。建立内部网络流量的安全运营,如果发生任何异常,就可以开始识别和调查。在这个例子中,Watchbog 组织的 SSH 流量产生了明显的峰值。

入侵指标(IOC)

Watchbog相关的IOC如下。

哈希(SHA256):

b383d0fdfa5036ccfa5d9c2b43cbfd814bce8778978873057b86678e5295fc61 0b0567c9b45ea0a3ea4267001f0760ccdf2b8224fceaf8979d32fcceb2d6fb7a

 

3A6271A90D0F6CC8A2D31D45D931E8401F13F7377932BA07D871DC42F252B9CA

域名:

aziplcr72qjhzvin[.]onion[.]to

其他:

门罗币钱包(与阿里云帖子的钱包地址相同)

 

47k2wdnyyBoMT6N9ho5Y7uQg1J6gPsTboKP6JXfB5msf3jUUvTfEceK5U7KLnWir5VZPKgUVxpkXnJLmijau3VZ8D2zsyL7


[培训]《安卓高级研修班(网课)》月薪三万计划

最后于 2019-11-19 14:36 被lipss编辑 ,原因:
收藏
点赞3
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回