研究人员调查了如何使用某些黑客工具在受害者网络上横向移动以部署勒索软件。这些工具包含侦察/传播脚本、针对 Red Hat 和 CentOS 的漏洞利用、二进制注入程序等。在本文中,研究人员重点分析蠕虫和勒索软件脚本。
最近发现的 Bash 勒索软件以多种方式激起了研究人员的兴趣,经过调查,研究人员发现攻击链完全以 bash 脚本的形式实现,但脚本似乎仍在开发中。这次攻击的大部分组件主要针对 Red Hat 和 CentOS Linux 发行版。但是,在某些脚本中也包含基于 Debian 的 Linux 发行版。蠕虫和勒索软件脚本还使用消息应用程序 Telegram 的 API 进行命令和控制 (C&C) 通信。研究人员还发现,此攻击的大多数组件在 Virus Total 中的检测数都非常低。Twitter用户@r3dbU7z,最初报告了带有勒索软件信息的黑客工具URL。
在本文的下一部分中,研究人员将分析“api_attack/”目录的内容,其中包含安全Shell (SSH) 蠕虫和勒索软件脚本。
攻击介绍
以下是黑客工具的列表和概述。研究人员观察到其中一些脚本基于开源代码。例如,binaryinject1.so 是名为“libprocesshider”的 rootkit 的修改版本,它使用 ld 预加载程序和“pwd.c”(“CVE-2017-1000253.c”)在 Linux 下隐藏进程,这是一个公开可用的针对 CentOS 7 内核版本 3.10.0-514.21.2.el7.x86_64 和 3.10.0-514.26.1.el7.x86_64 的漏洞利用。
攻击者的黑客工具目录
在所有这些工具中,“api_attack/”的内容引起了研究人员的注意。 “api_attack”目录包含研究人员命名为 DarkRadiation 的各种版本的 Bash 勒索软件,以及负责传播该勒索软件的 SSH 蠕虫。该目录中的“Supermicro_cr_third”脚本似乎是该勒索软件的最完整版本。该脚本使用名为“node-bash-obfuscate”的开源工具进行了混淆,该工具是用于混淆 bash 脚本的 Node.js CLI 工具和库。
攻击者的 /api_attack 黑客工具目录
攻击者的恶意软件托管目录
此目录中的大多数脚本在“病毒总数”中未检测到任何病毒:
检测到的病毒结果
恶意软件分析
在本节中,研究人员将仔细研究蠕虫和勒索软件脚本。
SSH蠕虫
“downloader.sh”是一种 SSH 蠕虫,它接受 base64 编码的配置凭据作为参数。这些凭据要么在受害者的系统上取得初步立足点后由攻击者转储,要么用作针对密码保护较弱的系统的暴力攻击列表。从本质上讲,恶意软件会检查给定的配置是否设置为使用 SSH 密码攻击或 SSH 密钥基础攻击,它还可以针对目标 IP 地址测试 SSH 密码或 SSH 密钥。成功连接后,恶意软件会在远程系统上下载并执行勒索软件。以下是解码后输入到脚本的格式凭证:
以下代码片段演示了该恶意软件的这种行为:
蠕虫入口函数
check_ssh_connection 函数返回代码:0 表示成功连接,代码:254 表示 ping 错误,代码:255 表示 SSH 连接错误,包括密码和密钥。该恶意软件使用 sshpass 实用程序来使用非交互式 SSH 密码身份验证。
在 SSH 内联密码的情况下,恶意软件会设置 sshpass 参数“passwordauthentication=yes”。它将勒索软件脚本存储在“/usr/share/man/man8/”目录中并执行。为了在 SSH 会话终止的情况下保持进程运行,恶意软件使用 screen session 和 nohup 命令。
蠕虫侦察和传播功能
恶意软件通过对其 C&C 服务器的 API 调用获取加密密码 ($crypt_pass),并将其传递给 supermicro_cr.gz 脚本。
请求加密密钥
该恶意软件具有 install_tools 函数,可以在未安装的情况下下载并安装必要的实用程序。基于此功能,研究人员可以看到该蠕虫只下载并安装基于 CentOS 或 RHEL 的 Linux 发行版的必备包,因为它仅使用 Yellowdog Updater, Modified (YUM) 包管理器。其他一些黑客工具以及 DarkRadiation 勒索软件变体仅使用 YUM 来下载和安装必备软件包。
先决条件包安装
最后,恶意软件通过 Telegram 的 API 向攻击者报告扫描/传播结果:
恶意软件将执行状态发送到攻击者的 Telegram 通道。
DarkRadiation 勒索软件
在上一节中,研究人员讨论了 SSH 蠕虫脚本,它接收凭据配置作为 base64 参数,并将其用于目标系统以下载和执行勒索软件。
在本节中查看勒索软件的各种迭代,研究人员调查了名为“supermicro_cr_third”的脚本,它似乎是最新版本。勒索软件是用 bash 脚本编写的,目标是 Red Hat/CentOS 和 Debian Linux 发行版。该恶意软件使用 OpenSSL 的 AES 算法和 CBC 模式来加密各种目录中的文件。它还使用 Telegram 的 API 向攻击者发送感染状态。
研究人员观察到这个脚本正在大量开发中,这个勒索软件的各个版本都相似,只有很小的变化。一些函数被恶意软件开发者注释,而一些函数在某些情况下没有使用(死代码)。在本节中,研究人员将详细讨论该勒索软件的工作原理。
该脚本使用一个名为“node-bash-obfuscate”的开源工具进行了混淆,该工具是一种用于混淆 bash 脚本的 Node.js CLI 工具和库。该工具将 bash 脚本分成块,然后为每个块分配变量名,并用变量引用替换原始脚本,实际上打乱了原始脚本。
以下代码片段演示了如何使用此脚本来混淆 bash 脚本:
node-bash-obfuscate 选项
node-bash-obfuscate 示例输出
supermicro_cr_third分析:
supermicro_cr_third 混淆脚本
执行时,恶意软件会检查它是否以 root 身份执行;如果没有,它会显示“请以 root 身份运行”消息,自行删除并退出。
supermicro_cr_third 主函数
检查脚本是否以 root 身份运行
然后检查是否安装了 curl 和 OpenSSL;如果不是,恶意软件就会下载并安装它们。
supermicro_cr_third 中的必备软件包安装
supermicro_cr_third 中的必备包安装
bot_who 函数是一个 bash 脚本,它使用“who”命令获取当前登录到 Unix 计算机系统的用户的快照,它将结果存储在一个名为“/tmp/.ccw”的隐藏文件中。之后,它每五秒再次执行“who”命令并检查输出的“.ccw”文件。如果它们不相等(新用户登录),恶意软件会通过 Telegram 的 API 向攻击者发送一条消息:
supermicro_bt 脚本
在加密过程之前,勒索软件通过查询“/etc/shadow”文件检索受感染系统上所有可用用户的列表。它用“megapassword”覆盖所有现有用户密码,并删除除“ferrum”之外的所有现有用户。之后,恶意软件从其配置部分创建一个新用户,用户名“ferrum”,密码“MegPw0rD3”。它执行“usermod --shell /bin/nologin”命令来禁用受感染系统上的所有现有shell用户:
supermicro_cr_third 配置
supermicro_cr_third 中的 user_change 函数
一些勒索软件变种试图删除除用户名“ferrum”和“root”之外的所有现有用户:
crypt3.sh 中的 user_change 函数
它还检查 C&C 服务器中是否存在“0.txt”。如果不存在,恶意软件将不执行加密过程并休眠 60 秒,然后再次尝试。必须注意,wget 将使用“--spider”选项调用,以检查给定 URL 中是否存在“0.txt”。
loop_wget_telegram 函数
/check_attack目录
为了加密,勒索软件在 CBC 模式下使用 OpenSSL 的 AES 算法。恶意软件通过蠕虫脚本传递的命令行参数获取加密密码:
supermicro_cr_third 项配置
需要注意的是,其他版本的加密路径可能不同。Super_micro_third使用名为crypt_file.sh的单独脚本进行文件加密。但是,supermicro_cr等其他变体自己进行了文件加密。此外,必须注意的是,勒索软件附加放射性符号(“☢”)作为一个加密文件的文件扩展名。
super_micro_third 加密过程
supermicro_cr 加密函数
恶意软件通过 Telegram 的 API 将加密状态发送给攻击者:
Telegram配置
该恶意软件还会停止并禁用受感染系统上所有正在运行的 Docker 容器,并创建赎金记录:
赎金通知
总结
总体而言,攻击者使用各种黑客工具在受害者网络上横向移动以部署勒索软件。这些黑客工具包含侦察/传播脚本、针对 Red Hat 和 CentOS 的漏洞利用、二进制注入程序 (libprocesshider rootkit) 等。但是,大多数工具在 Virus Total 中的检测数都非常低,似乎有些脚本仍处于开发阶段。
还有其他值得注意的因素,蠕虫和勒索软件脚本能够通过 Telegram API 与攻击者通信并直接访问 C&C 服务器。勒索软件可以删除受感染系统上的所有用户(尽管在某些变体中它保留了 root 用户),并且可以仅为攻击者创建一个帐户。至于文件加密,勒索软件使用 OpenSSL 的 AES 算法来加密具有特定扩展名的文件或给定目录中的所有文件。
在本文中,研究人员重点分析了蠕虫和 supermicro_tr_third 勒索软件脚本。研究人员发现勒索软件被一个名为“node-bash-obfuscate”的开源工具混淆,这是一个用于混淆 bash 脚本的 Node.js CLI 工具和库。
本文翻译自:https://www.trendmicro.com/en_us/research/21/f/bash-ransomware-darkradiation-targets-red-hat--and-debian-based-linux-distributions.html如若转载,请注明原文地址