这个恶意软体家族的研究始于我在我们的用户群中发现了一个从注册表键直接启动 PowerShell代码的恶意任务。当我开始追踪其来源时,没有想到会有这样的惊喜。生活在像捷克这样的小国家,专门针对当地 **捷克** / **斯洛伐克**
受众的情况非常罕见。这位威胁行为者似乎自 2015
年以来就一直在创造恶意软体,且看起来来自斯洛伐克。这位不法分子的技能中包含了一些
RAT
、一些用于 加密挖矿
的打包程序以及几乎必然的 勒索软体
,我将这个恶意软体家族命名为
Certishell
。这位恶意软体的传播方式是通过非法的歌曲和电影复制品,以及涉嫌的游戏和常用工具的破解和密钥生成器(如 GTASA
、 Mafia
、 Avast
、 Microsoft Office
),这些都托管在捷克和斯洛伐克最受欢迎的文件共享服务之一 uloz.to
上。
Certishell 家族可以分为三个不同的部分。
- 具有 C&C 伺服器
sivpici.php5[.]sk
的 RAT(捷克/斯洛伐克俚语意为「你被搞砸了」),包含 AutoIT、C++ 和 Go 版本。 - 从被骇网站下载的挖矿程式,并用任务中的
que.vbs
脚本启动。 - 从被骇网站下载的挖矿程式或勒索软体,并通过隐藏在注册表键中的 PowerShell 命令启动。来自注册表键的命令是从上面的图片中的任务启动的。
上图显示了用户面临的风险比例,可能会遇到其中一个恶意软体家族
Sivpici.php5.sk (2015-2018)
这个家族最古老的部分是一个简单的 RAT,其 C&C 伺服器为 sivpici.php5[.]sk
。它将所有必要的文件放置在用户资料夹内的 .win
文件夹中。
恶意软体安装程序伪装成以下之一:
- 破解软体,如
FixmyPC
- 像
SteamCDKeys
这样分享 Steam 密码的诈骗应用程式 - 名为
Extractor.exe
或Heslo.exe
(Heslo 在捷克/斯洛伐克语中意为 密码 )的音乐 CD 解压缩工具,随附一个受密码保护的音乐文件压缩包。
该恶意可执行文件下载一个名为 UnRAR.exe 的可执行文件和一个包含用 C++、AutoIT 或 Go 写成的简单 RAT 的恶意压缩包。
安装程序
每个安装此恶意软体家族的可执行文件都包含一个类似于下方图片中的脚本,通常选择性地包含
curl.exe
。这个脚本通常显示压缩包的密码或启动另一个应用程序。恶意部分下载一个合法的 RAR 解压缩程序 UnRAR.exe
和一个可能受密码保护的恶意压缩包,并将其解压到 %UserProfile%\.win\
文件夹中。最后,它将解压出的文件之一注册为服务,启动它并允许防火墙中的其中一个二进制文件。
我发现了六种不同的方法用于将脚本打包到可执行二进制中:
- Bat2exe
- Quick Batch File Compiler
编译的 AutoIT 版本
编译的 AutoIT 版本,附有混淆代码
编译的 AutoIT 版本,附有混淆代码并打包为 PELock
编译的 AutoIT 版本,附有混淆代码并用 VMProtect 打包
RAT
这个 RAT 有三个主要版本。所有版本都使用相同的 C&C sivpici.php5[.]sk
和类似的通讯协议。最先进的是编译的 AutoIT脚本。此脚本有十个不同的主要版本。第二个是用 C++ 写的,我们只发现一个主要版本,最后一个是用 Go 写的,同样只有一个主要版本。
第一次运行时,它生成一个随机的字母数字串作为 C&C 的识别码。这个识别码被保存到档案 gen.gen 供下次启动使用。通讯使用 HTTP协议。感染的机器回传以下资料给 C&C:
pc
= ComputerNameos
=SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProductName
的内容uniq
= 生成的识别码,保存于\.win\gen.gen
使用 GET
方法请求 start.php
。
经过一段随机的时间后,恶意软体开始请求命令,使用 GET
方法并附带 uniq
参数。回应是一个数字,在所有版本中都有固定的意思。命令“1” –
“7”的实现如下:
- RAT 从
/urlg.php
下载 URL,并使用uniq
从这个 URL 下载档案packed.rar
,然后 RAT 开始安装阶段中的run.bat
,将包解压到\.win\Lambda
文件夹,并重新启动 RAT。这使得 RAT 能够自我更新并下载任何其他必要的文件。 - 创建截图并通过
POST
方法发送到up.php
。 - 发送所有驱动器中的所有文件名到
up.php
。 - 对选定的 IP 进行 DDoS 攻击,通过
UDP
/HTTP
/PING
。 获取所有安装应用程序的列表,来自
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
将其保存到/.win/installed.txt
并发送到up.php
。获取所有运行中的进程的列表,将其保存到
/.win/processes.txt
并发送到up.php
。收集键盘记录器的日志,将其保存到
\.win\log.txt
并发送到up.php
。
以编译的 AutoIT 脚本形式存在的 RAT 名为 Winhost.exe
。
以下表格显示了不同版本的对比(版本由 RAT 的作者标注)。
| 版本 | 命令 | 注释 | |—|—|—| | debugging | 1 | 命令 2 开启一个显示「222222」的对话框 | | 4 | 1 – 3 | PC 的注册只发生一次在 reg.php
上,并且在连接时只发送 uniq
和 RAT 的版本至 updaver.php
| | 6 | 1 – 4 | 当用户在 PC 上不互动至少 5 秒时,隐藏地打开 /ad.php
在 Internet Explorer 窗口,30 秒后关闭。 | | 7 | 1 – 5 | | | 8 | 1 – 7 | 键盘记录器随 RAT 启动。 | | 9 | 1 – 7 | 键盘记录器有著彩色输出。 | | 10 | 1 – 7 | 键盘记录器是一个独立的可执行文件 ( ~\.win\1.exe
) |
八和九版本中的键盘记录器复制自官方 AutoIT 文档(有一些小改动)
https://www.autoitscript.com/autoit3/docs/libfunctions/_WinAPI_SetWindowsHookEx.htm
版本 9 增加了对按键、鼠标移动和剪贴簿的着色记录。
用 C++ 编写的 RAT 名为 dwms.exe
。它使用 LibCURL 与 C&C 通信。通讯协议相同。uniq
识别码保存在 fr.fr
文件中,而不是 AutoIT 版本中的 gen.gen
。它也通过访问 connect.php
开始通讯,而不是 start.php
。
我设法找到了一个调试版本,只实现了第一个命令,并针对第二和第三个命令只返回「Command 2」和「Command 3」到标准输出。每次命令执行后,它通过将
uniq
和 verzia
(英文中的「版本」)使用 GET
方法发送到 online.php
向 C&C 回应。
「生产」版本标记为版本 A。代码分为两个函数:
LLLoad
下载 C&C 伺服器的 URL 地址,来自 Pastebin,并通过下载/exists.txt
进行测试。RRRun
包含前两个命令,如上所述。它还使用/connect/
路径提供register.php
、load.php
、online.php
和verzia.php
。
为了下载较新版本,它从命令行调用 curl。
另一个不同之处在于,截图是通过 FTP 发送到另一个域名:
freetips.php5[.]sk/public_html/SHOT.bmp
用户名为 sivpici
,密码为 A1B2C3D4
。
用 Go 写的 RAT 只有第一个命令实现,但它下载 /cnct/ad.txt
,并打开受害者计算机上包含的
URL,因此我们推测它可能也可以作为广告软体。
IECache、bitly、pastebin (2016-2018)
这个加密挖矿程序的安装方式类似于前面部分中的 RAT。安装使用相同的文件夹,脚本名称相同。它通常作为从 uloz.to
下载的音乐和电影的非法复制品的解压缩工具。它使用 PowerShell 从 bit.ly 缩短的地址下载并执行脚本。最终阶段是挖矿程式
IECache.exe
,通常是 XMRig。
Heslo.txt.exe、Crack.exe…
有很多各式各样的程序下载来自捷克和斯洛伐克的 bit.ly 短链并执行它们。这些程序包括:GTA SA 破解、Mafia、微软
Office、模拟人生、乐高星际大战,以及音乐和电影的解压缩工具。这些程序通常会向受害者展示一条消息,然后在隐藏窗口中运行恶意脚本。
解压缩工具使用 UnRAR 来解压缩压缩包,并显示给受害者的压缩包密码。
用 Python 编写的一个音乐专辑解压缩工具,用
Pyinstaller 打包。它试图使用 UnRAR.exe 解压音乐,如果失败则显示密码「1234」。
另一方面,破解程序只会显示错误消息。
Counter-Strike Global Offensive 的修补程序结果。在 Sourceforge下载并安装恶意软体后,显示了上述图片中的错误消息。
所有安装文件都将执行以下命令,并附上一些 bit.ly 短链网站:
有 VBA 脚本调用它,基本上由 C 、 .Net 编写的程序, AutoIT 脚本, Golang 程序,
Rust 程序, Redlang 程序,以及不同的 python 和 bat 打包程序,其中一些使用 UPX 、
MPRESS 、 VMprotect 和 PELock 。
Red 语言
AutoIT
Pyinstaller
Bat 混淆器
Rust
下载的脚本
由隐藏在 bit.ly
短链后的网站上的脚本创建了至少两个新脚本,que.vbs
和 run.bat
。
该脚本还创建了名为 Winmgr
和 Winservice
的两个服务之一,启动 que.vbs
。Que.vbs 只启动
run.bat
,该脚本下载 whats.txt
,内容为下载和启动挖矿程序 IECache.exe
的脚本。
que.vbs 哈希值:
6f2efc19263a3f4b4f8ea8d9fd643260dce5bef599940dae02b4689862bbb362
run.bat 哈希值:
1ad309c8ee17718fb5aacf2587bd51bddb393c0240ee63faf7f890b7093db222
run.bat
的内容
在这个案例中,pastebin 包含了两行(第二行为了更好的可读性而拆分)
pastebin 的内容
挖矿程序
挖矿程序被保存为 IECache.exe
或 ctfmon.exe
。
第一个挖矿程序(来自 2018 年 6 月)只是 XMRig,内部包含所有命令行选项。
我发现的大多数此类挖矿程序都是用 VMProtect
或 Themida/Winlicense
打包的。
更有趣的是(来自 2018 年 6 月至 7 月的一个编译 AutoIT 脚本),该脚本使用 VMProtect
打包。在这里,我们看到作者说斯洛伐克语:
这个脚本包含作为变量的 XMRig 的 Base64 编码字符串(在某些情况下是 LZMA 压缩)。挖矿程序在内存中解码并启动。
ODBASUJ64A
是 “ 解码 base64
” 而 ODLZMUJA
是 “ LZMA 解压缩 ”。
在某些版本中,该脚本会检查用户的活动,并启动不同选项的挖矿程序以最大化利润,减少被抓的风险。
_PUSTITAM 是在内存中执行二进制文件
较新的样本(自 2018 年 8 月起)使用 或 XOR加密在内存中进行隐藏,以及注入到挂起的进程中,以隐藏自己以避免被防病毒软体侦测。
有趣的文件
Sourceforge 和 Github
某些样本使用 Sourceforge 和 Github 下载恶意内容,而不是小型的、可能被骇的网站。
它从 Github 的用户 W33v3ly 的存储库及 Sourceforge 的用户 Dieworld 下载内容。在 Github上,攻击者曾经犯了一个错误,将 Systemcall.exe
和 TestDLL.bin
推送到了错误的存储库。
Systemcall.exe 哈希值:
e9d96c6de650ada54b3788187132f525094ff7266b87c98d3dd1398c2d5c41a
TestDLL.bin 哈希值:
1d2eda5525725f919cb4ef4412272f059abf4b6f25de5dc3b0fca4ce6ef5dd8e
Systemcall.exe
是一个没有「MZ」开头的 PE 文件,且 Test.dll
在 PE 文件之前包含一些随机字节。该 dll 包含经
TEA 加密的 XMRig,而 Systemcall.exe
使用 sRDI 载入并运行 Test.dll
。
Steam Giver
这个用 .Net 编写的小应用程式显示了一些被盗的 Steam 帐号。
恶意部分下载并安装以下脚本,并下载 UnRAR 及 begin.rar
。
Install.vbs
创建一个名为 WinD2 的任务,在每次 PC 启动时启动 inv.vbs
。Inv.vbs
启动
runner.bat
,该批处理启动 %temp%/Microsoft/NisSrve.exe
,该程序是从 begin.rar
中用
UnRAR.exe
解压缩出来的。
免费下注提示
投注者也成为了攻击目标。我们发现了一个包含以下说明文件的恶意文件:
该二进制文件只会启动一个 cmd,并将脚本作为参数。
自 2018 年以来的所有操作均来自注册表键
在 2018 年之后,我观察到这个恶意软体家族的更新版本。只要能有一个作为计划任务的指令,并将足够的数据保存在注册表键中,就不需要任何脚本文件。
感染向量与前面情况相同。受害者下载并运行一个可执行文件,该文件从一个被骇网站上下载了一个用 bit.ly 缩短的 PowerShell脚本。这次的脚本不同,它创建了以下任务:
这个任务读取注册表键 Shell
中的值,该键位于 HKLM\Software\a
,并执行其内容。该脚本还会创建注册表键。
让我们专注于注册表键 Shell
的值。在下方图片中,你会看到我在一台受感染的机器上找到的值。
经过解码和解压后,我们得到一段混淆的脚本:
在两层字串格式化和替换之后,我们得到了另一个经过压缩的 base64 编码脚本:
在 base64 字串中是恶意代码,会测试连接并直接从互联网执行代码。
总的来说,我在现场发现了大约 40 个不同的 Shell
键值,这些键中包含的代码类似并含有不同的 URL,且以相同或更少的方式进行混淆。
一些 pastebin 网址仍然有效。例如,其中一个包含以下脚本,向 C&C伺服器发送有关显示卡的信息,决定在受感染的计算机上安装什么内容。我尚未找到任何活跃的 C&C 伺服器。
勒索软体
另一个最终阶段是从注册表键运行的名为 Athos.exe 的勒索软体。它首先检查一些来自
https://blog.sevagas.com/IMG/pdf/BypassAVDynamics.pdf
的策略,以检查它是否在沙盒中运行。在第六次启动时,它将勒索软体注入到另一个进程中,该进程从网页 googleprovider[.]ru
获取 ID和加密密钥。然后,它使用 AES-CFB 对所有文件进行加密并显示保存在 imgur上的以下消息(https://i.imgur[.]com/cKkSBSI.jpg
)。
翻译: 你的文件已被加密。如果你想要恢复它们,你需要在桌面上的 Athos_ID.txt 中找到 ID。请妥善保管你的
ID,否则你的文件将无法恢复!!你可以通过网站 www.g… 来恢复文件。
我们还发现了名为 King Ouroboros 的 AutoIT 勒索软体,已翻译成斯洛伐克语。该恶意软体被编辑为使用 Windows 用户的 GUID作为加密密钥,并从不同的伺服器下载额外内容,而不是原始的 King Ouroboros。
勒索软体 哈希值:
90d99c4fe7f81533fb02cf0f1ff296cc1b2d88ea5c4c8567142bb455f435ee5b
结论
这篇文章中描述的大多数方法并不新颖,在某些情况下我能找到它们的源头。最有趣的方法是将 PowerShell 脚本隐藏到注册表键中。
据我了解,作者为斯洛伐克语使用者,这与受感染文件仅发布在 Uloz.to 的事实相符,因此受害者仅来自捷克共和国和斯洛伐克。
最终载荷的变化很大。我发现了三种不同的
RAT,几种不同的加密挖矿程序和勒索软体,都是由该作者创建的,还有许多在互联网上「可用」的其他类型。最初的安装程序,其功能仅是调用一个命令,使用了各种工具创建,其中一些相当冷门。
为了防范这类威胁,仅从可信来源下载软体,并使用安全软体,例如 ,即可为您提供安全保障,以防万一遭遇威胁。
潜在的入侵指标 (IoC)
- 存储库: https://github.com/avast/ioc/tree/master/Certishell
- SHA-256 列表: https://github.com/avast/ioc/blob/master/Certishell/samples.sha256
- URI: https://github.com/avast/ioc/blob/master/Certishell/network.txt
标签为
、、
分享:XFacebook